1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
|
3 | <X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'> |
4 | <head> |
5 | <meta name='title' content='FishSchool.x3d'/> |
6 | <meta name='description' content='Fish Schooling Demo'/> |
7 | <meta name='creator' content='Stewart Liles, Sean Hynes'/> |
8 | <meta name='created' content='25 September 1998'/> |
9 | <meta name='modified' content='14 December 2024'/> |
10 | <meta name='reference' content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf'/> |
11 | <meta name='reference' content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Teaching3d-KelpForestCaseStudy.pdf'/> |
12 | <meta name='accessRights' content='All content has permissions for free use. Please provide credit to the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute.'/> |
13 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/FishSchool.x3d'/> |
14 | <meta name='reference' content='Audacity, https://www.audacityteam.org'/> |
15 | <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/> |
16 | <meta name='license' content='../license.html'/> |
17 | </head> |
18 | <Scene> |
19 | <WorldInfo title='FishSchool.x3d'/> |
20 | <NavigationInfo speed='5.0' type='"EXAMINE"' visibilityLimit='250.0'/> |
21 | <Viewpoint description='Close to School - FS' position='0.0 1.0 75.0'/> |
22 | <Viewpoint description='Nose on Glass - FS' fieldOfView='1.0' position='0.0 1.0 30.0'/> |
23 | <Viewpoint description='Fish Feeding - FS' fieldOfView='1.0' orientation='1.0 0.0 0.0 -1.57' position='0.0 40.0 0.0'/> |
24 | <Viewpoint description='Left Side - FS' fieldOfView='1.0' orientation='0.0 1.0 0.0 -1.57' position='-40.0 0.0 0.0'/> |
25 | <Viewpoint description='Right Side - FS' fieldOfView='1.0' orientation='0.0 1.0 0.0 1.57' position='40.0 0.0 0.0'/> |
26 | <Viewpoint description='Middle Looking Out - FS' jump='false' orientation='0.0 1.0 0.0 2.2' position='0.0 0.0 0.0'/> |
27 | <SpotLight ambientIntensity='1.0' direction='0.0 -1.0 0.0' location='0.0 50.0 0.0'/> |
28 | <Sound location='0 0.1 0' maxBack='50' maxFront='50' minBack='50' minFront='50'> |
29 | <!-- updated original Sound2 as Sound3 using Audacity --> |
30 | <AudioClip description='Sound for Fish' loop='true' url=' "Sound3.wav" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Sound3.wav" "Sound2.wav" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Sound2.wav" '/> |
31 | </Sound> |
32 |
<!-- ROUTE information for GlobalClock node:
[from fraction_changed to BoidScript.GlobalTick
]
-->
<TimeSensor DEF='GlobalClock' loop='true'/> |
33 | <Shape> |
34 | <Appearance> |
35 | <Material/> |
36 | </Appearance> |
37 | <IndexedLineSet coordIndex='0 1 2 3 0 -1 4 5 6 7 4 -1 0 4 -1 1 5 -1 2 6 -1 3 7'> |
38 | <Coordinate point='-30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 -30.0 -30.0 30.0 -30.0 -30.0 -30.0 30.0 30.0 -30.0 30.0 30.0 -30.0 -30.0 -30.0 -30.0 -30.0'/> |
39 | </IndexedLineSet> |
40 | </Shape> |
41 | <Fog color='0.1 0.3 0.1' visibilityRange='70.0'/> |
42 | |
43 | <Viewpoint description='Fish 0 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
44 |
<!-- Inline
FishIN is a DEF node that has 9 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9 --> <Inline DEF='FishIN' url=' "Fish.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Fish.x3d" "Fish.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Fish.wrl" '/> |
45 | </Transform> |
46 | |
47 | <Viewpoint description='Fish 1 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
48 | <Inline USE='FishIN'/> |
49 | </Transform> |
50 | |
51 | <Viewpoint description='Fish 2 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
52 | <Inline USE='FishIN'/> |
53 | </Transform> |
54 | |
55 | <Viewpoint description='Fish 3 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
56 | <Inline USE='FishIN'/> |
57 | </Transform> |
58 | |
59 | <Viewpoint description='Fish 4 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
60 | <Inline USE='FishIN'/> |
61 | </Transform> |
62 | |
63 | <Viewpoint description='Fish 5 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
64 | <Inline USE='FishIN'/> |
65 | </Transform> |
66 | |
67 | <Viewpoint description='Fish 6 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
68 | <Inline USE='FishIN'/> |
69 | </Transform> |
70 | |
71 | <Viewpoint description='Fish 7 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
72 | <Inline USE='FishIN'/> |
73 | </Transform> |
74 | |
75 | <Viewpoint description='Fish 8 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
76 | <Inline USE='FishIN'/> |
77 | </Transform> |
78 | |
79 | <Viewpoint description='Fish 9 view' fieldOfView='1.8' position='0.0 1.0 -0.5'/> |
80 | <Inline USE='FishIN'/> |
81 | </Transform> |
82 | <!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) --> |
83 |
<!-- ROUTE information for BoidScript node:
[from GlobalClock.fraction_changed to GlobalTick
]
-->
<Script DEF='BoidScript' directOutput='true' mustEvaluate='true' url=' "FishSchoolCode/Demo.class" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/FishSchoolCode/Demo.class" '> |
84 | <field name='GlobalTick' type='SFFloat' accessType='inputOnly'/> |
85 | <field name='B9' type='SFNode' accessType='initializeOnly'> |
86 | <Transform USE='Fish9'/> |
87 | </field> |
88 | <field name='B8' type='SFNode' accessType='initializeOnly'> |
89 | <Transform USE='Fish8'/> |
90 | </field> |
91 | <field name='B7' type='SFNode' accessType='initializeOnly'> |
92 | <Transform USE='Fish7'/> |
93 | </field> |
94 | <field name='B6' type='SFNode' accessType='initializeOnly'> |
95 | <Transform USE='Fish6'/> |
96 | </field> |
97 | <field name='B5' type='SFNode' accessType='initializeOnly'> |
98 | <Transform USE='Fish5'/> |
99 | </field> |
100 | <field name='B4' type='SFNode' accessType='initializeOnly'> |
101 | <Transform USE='Fish4'/> |
102 | </field> |
103 | <field name='B3' type='SFNode' accessType='initializeOnly'> |
104 | <Transform USE='Fish3'/> |
105 | </field> |
106 | <field name='B2' type='SFNode' accessType='initializeOnly'> |
107 | <Transform USE='Fish2'/> |
108 | </field> |
109 | <field name='B1' type='SFNode' accessType='initializeOnly'> |
110 | <Transform USE='Fish1'/> |
111 | </field> |
112 | <field name='B0' type='SFNode' accessType='initializeOnly'> |
113 | <Transform USE='Fish0'/> |
114 | </field> |
115 | </Script> |
116 | < ROUTE fromNode='GlobalClock' fromField='fraction_changed' toNode='BoidScript' toField='GlobalTick'/> |
117 | </Scene> |
118 | </X3D> |
Event Graph ROUTE Table with 1 ROUTE connection total, showing X3D event-model relationships for this scene.
Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.
GlobalClock
TimeSensor fraction_changed SFFloat |
BoidScript
Script GlobalTick SFFloat |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->