<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
<X3D profile='Immersive' version='3.1' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.1.xsd'>
  <head>
    <meta content='LS-KelpForestMain.x3d' name='title'/>
    <meta content='An example use of the LoadSensor node in the Kelp Forest world.' name='description'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='1 June 1998' name='created'/>
    <meta content='8 October 2007' name='modified'/>
    <meta content='http://web.nps.navy.mil/~brutzman/kelp' name='reference'/>
    <meta content='http://web.nps.navy.mil/~brutzman/kelp/KelpForestDesignPaper.pdf' name='reference'/>
    <meta content='Kelp Forest 3D models' name='subject'/>
    <meta content='All content has permissions for free use. Please provide credit to the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute.' name='accessRights'/>
    <meta content='http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d' name='reference'/>
    <meta content='http://x3dGraphics.com/examples/X3dForWebAuthors/Chapter12-EnvironmentSensorSound/LS-KelpForestMain.x3d' name='identifier'/>
    <meta content='X3D-Edit, https://savage.nps.edu/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo info='"kelpForestMain3.4.wrl" "Model of the Monterey Bay Aquarium Kelp Forest" "DTG of last updated: 111500Jun98" "Added: " "Updated: kelpTank2.9.wrl; " "Created by Naval Postgraduate School students under the supervision of Don Brutzman" "Feel free to copy anything you wish - just give credit where it is due" "http://www.stl.nps.navy.mil/~brutzman/kelp"' title='NPS Virtual Kelp Forest Exhibit'/>
    <NavigationInfo speed='3.0'/>
    <ExternProtoDeclare name='ViewPositionOrientation' url='"ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "/www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "/www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "file:///c:/www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation"'>
      <field accessType='inputOutput' name='enabled' type='SFBool'/>
      <field accessType='initializeOnly' name='traceEnabled' type='SFBool'/>
      <field accessType='inputOnly' name='set_traceEnabled' type='SFBool'/>
      <field accessType='outputOnly' name='position_changed' type='SFVec3f'/>
      <field accessType='outputOnly' name='orientation_changed' type='SFRotation'/>
      <field accessType='outputOnly' name='outputViewpointString' type='MFString'/>
    </ExternProtoDeclare>
    <ProtoInstance name='ViewPositionOrientation'>
      <fieldValue name='enabled' value='false'/>
    </ProtoInstance>
    <ExternProtoDeclare name='WaypointInterpolator' url='"../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator"'>
      <field accessType='initializeOnly' name='description' type='SFString'/>
      <field accessType='initializeOnly' name='waypoints' type='MFVec3f'/>
      <field accessType='initializeOnly' name='pitchUpDownForVerticalWaypoints' type='SFBool'/>
      <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
      <field accessType='initializeOnly' appinfo='Units m/sec. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.' name='legSpeeds' type='MFFloat'/>
      <field accessType='initializeOnly' appinfo='Units in seconds. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.' name='legDurations' type='MFTime'/>
      <field accessType='initializeOnly' appinfo='Units m/sec.' name='defaultSpeed' type='SFFloat'/>
      <field accessType='initializeOnly' appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.' name='turningRate' type='SFFloat'/>
      <field accessType='outputOnly' appinfo='Output calculation combining all leg durations units in seconds.' name='totalDuration' type='SFTime'/>
      <!-- exposed PositionInterpolator and OrientationInterpolator settings: -->
      <field accessType='inputOnly' name='set_fraction' type='SFFloat'/>
      <field accessType='outputOnly' name='position_changed' type='SFVec3f'/>
      <field accessType='outputOnly' name='orientation_changed' type='SFRotation'/>
      <field accessType='inputOutput' name='lineColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='highlightSegmentColors must contain two color values for each endpoint of the highlight segment.' name='highlightSegmentColor' type='SFColor'/>
      <field accessType='inputOutput' name='transparency' type='SFFloat'/>
      <field accessType='initializeOnly' appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)' name='labelDisplayMode' type='SFString'/>
      <field accessType='initializeOnly' appinfo='allowed values: altitude depth (negate Y value) none' name='heightLabel' type='SFString'/>
      <field accessType='initializeOnly' name='labelOffset' type='SFVec3f'/>
      <field accessType='initializeOnly' name='labelFontSize' type='SFFloat'/>
      <field accessType='initializeOnly' name='labelColor' type='SFColor'/>
      <field accessType='initializeOnly' name='traceEnabled' type='SFBool'/>
      <field accessType='initializeOnly' appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization' name='outputInitializationComputations' type='SFBool'/>
      <field accessType='inputOutput' appinfo='default color for vertical drop-line segments' name='verticalDropLineColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='1.0 is completely transparent 0.0 is completely opaque.' name='verticalDropLineTransparency' type='SFFloat'/>
    </ExternProtoDeclare>
    <Group DEF='Viewpoints'>
      <Viewpoint description='Kelp Forest Monterey Bay Aquarium' position='0.0 -5.0 45.0'/>
      <Viewpoint description='Side Windows' fieldOfView='0.5' orientation='0.0 1.0 0.0 0.9' position='25.0 -4.0 15.0'/>
      <Viewpoint description='Star Fish' orientation='0.0 1.0 0.0 1.25' position='14.0 -5.75 1.0'/>
      <Viewpoint description='Inside Tank' orientation='0.0 1.0 0.0 3.14' position='0.0 -5.0 -7.0'/>
      <Viewpoint description='Top floor' fieldOfView='1.04719' orientation='-0.3 1.0 0.3 1.57079' position='12.5 5.0 -2.0'/>
      <Viewpoint description='Bird&apos;s Eye View' orientation='1.0 0.0 0.0 -1.57' position='0.0 19.0 -3.5'/>
      <Viewpoint description='Pump House' fieldOfView='0.6' orientation='0.0 1.0 0.0 1.3' position='-5.0 1.0 0.0'/>
    </Group>
    <Group DEF='Root'>
      <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0.0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0.0 0.5 1.0 0.0 0.0 1.0 0.0 0.0 1.0'/>
      <Inline DEF='LoadIntro' url='"IntroductionMessage.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.wrl" "IntroductionMessage.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.x3d"'/>
      <Collision enabled='false'>
        <Transform>
          <Inline DEF='LoadLefty' url='"SharkLeftyLocale.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.wrl" "SharkLeftyLocale.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.x3d"'/>
        </Transform>
        <Transform>
          <Inline DEF='LoadLucy' url='"SharkLucyLocale.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.wrl" "SharkLucyLocale.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.x3d"'/>
        </Transform>
        <Transform translation='0 0 0'>
          <Inline DEF='LoadTank' url='"KelpTank.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.wrl" "KelpTank.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.x3d"'/>
        </Transform>
        <Transform scale='0.54 0.75 0.52' translation='0.3 -2.88 7.3'>
          <Inline DEF='LoadFloor' url='"RockFloor.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.wrl" "RockFloor.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d"'/>
        </Transform>
        <Transform DEF='K2_LOCALE' translation='-4.0 0.0 1.0'>
          <Transform DEF='K2_MIDWATER' scale='0.2 0.2 0.2' translation='-1.0 -4.0 -4.0'>
            <Inline DEF='LoadSardine' url='"SardineSchool.wrz" "SardineSchool/SardineSchool.wrz" "SardineSchool.wrl" "SardineSchool/SardineSchool.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.wrl" "SardineSchool.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.x3d"'/>
          </Transform>
          <Transform DEF='K2_FLOOR' rotation='0.0 1.0 0.0 0.44' scale='0.5 0.9 0.5' translation='-1.9 -8.5 -1.5'>
            <Inline DEF='KelpExamplesNoBase' url='"KelpExamplesNoBase.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.wrl" "KelpExamplesNoBase.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.x3d"'/>
          </Transform>
        </Transform>
        <Transform DEF='K4_LOCALE' translation='-2.5 0.0 -2.5'>
          <Transform DEF='K4_MIDWATER' translation='-10.0 -2.0 -2.0'>
            <Inline DEF='LoadHalfMoon' url='"HalfMoonGroup.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.wrl" "HalfMoonGroup.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.x3d"'/>
          </Transform>
          <Transform DEF='K4_FLOOR' rotation='0.0 1.0 0.0 -0.3' scale='0.5 0.8 0.5' translation='-1.5 -7.5 0.5'>
            <Inline USE='KelpExamplesNoBase'/>
          </Transform>
        </Transform>
        <Transform DEF='K7_LOCALE' translation='2.0 0.0 -2.5'>
          <Transform DEF='K7_MIDWATER' scale='0.25 0.25 0.25' translation='2.0 -4.0 0.0'>
            <Inline DEF='LoadRubberLip' url='"RubberLipGroup.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.wrl" "RubberLipGroup.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.x3d"'/>
          </Transform>
          <Transform DEF='K7_FLOOR' scale='0.5 0.85 0.5' translation='0.0 -7.75 0.0'>
            <Inline USE='KelpExamplesNoBase'/>
          </Transform>
        </Transform>
        <Transform DEF='K10_LOCALE' translation='7.0 0.0 2.0'>
          <Transform DEF='K10_DEEP' translation='0.0 -5.0 0.0'>
            <Inline DEF='LoadStripedPerch' url='"StripedSurfPerch.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.wrl" "StripedSurfPerch.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.x3d"'/>
          </Transform>
          <Transform DEF='K10_FLOOR' rotation='0.0 1.0 0.0 0.16' scale='0.5 0.75 0.5' translation='-1.0 -7.0 -1.0'>
            <Inline USE='KelpExamplesNoBase'/>
          </Transform>
        </Transform>
        <Transform DEF='K11_LOCALE' translation='8.0 0.0 -2.0'>
          <Transform DEF='K11_MIDWATER' rotation='0.0 1.0 0.0 0.3' translation='2.19 -7.0 0.15'>
            <Inline DEF='LoadSeaStar' url='"SeaStarSimple.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.wrl" "SeaStarSimple.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.x3d"'/>
          </Transform>
          <Transform DEF='K11_DEEP' rotation='0.0 1.0 0.0 0.9' translation='1.0 -5.0 0.0'>
            <Inline DEF='LoadBlackPerch' url='"BlackSurfPerch.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.wrl" "BlackSurfPerch.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.x3d"'/>
          </Transform>
          <Transform DEF='K11_FLOOR' rotation='0.0 1.0 0.0 0.3' scale='0.5 0.75 0.5' translation='-0.3 -7.0 0.0'>
            <Inline USE='KelpExamplesNoBase'/>
          </Transform>
          <Transform translation='1.3 -5.0 3.0'>
            <Inline DEF='LoadSeaStar2' url='"SeaStarGroup.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.wrl" "SeaStarGroup.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.x3d"'/>
          </Transform>
        </Transform>
        <Transform DEF='R2_LOCALE' translation='-1.0 0.0 -1.0'>
          <Transform DEF='R2_MIDWATER' translation='-1.0 -6.0 -2.0'>
            <Inline DEF='LoadRockFish' url='"BlueRockFish.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.wrl" "BlueRockFish.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.x3d"'/>
          </Transform>
          <Transform DEF='R2_DEEP' translation='1.0 -6.5 -1.0'>
            <Inline DEF='LoadPerch' url='"KelpSurfPerch.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.wrl" "KelpSurfPerch.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.x3d"'/>
          </Transform>
        </Transform>
        <Transform DEF='R3_LOCALE' translation='3.0 0.0 -4.0'>
          <Transform DEF='R3_MIDWATER' translation='0.0 -6.0 0.0'>
            <Inline DEF='LoadGaribaldi' url='"Garibaldi.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.wrl" "Garibaldi.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.x3d"'/>
          </Transform>
        </Transform>
        <Transform DEF='R5_LOCALE' translation='8.0 0.0 -2.0'>
          <Transform DEF='R5_SHALLOW' translation='-2.0 -2.0 0.0'>
            <Inline DEF='LoadBass' url='"KelpBass.wrl" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.wrl" "KelpBass.x3d" "http://x3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.x3d"'/>
          </Transform>
        </Transform>
        <TimeSensor DEF='WAVE_CLOCK' cycleInterval='5.5' enabled='false' loop='true'/>
        <PositionInterpolator DEF='LEFT_SHALLOW_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.056 -0.085 0.0 0.08 -0.12 0.0 0.056 -0.085 0.0 0.0 0.0 0.0 -0.056 0.085 0.0 -0.08 0.12 0.0 -0.056 0.085 0.0 0.0 0.0 0.0'/>
        <PositionInterpolator DEF='LEFT_DEEP_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.035 -0.035 0.0 0.05 -0.05 0.0 0.035 -0.035 0.0 0.0 0.0 0.0 -0.035 0.035 0.0 -0.05 0.05 0.0 -0.035 0.035 0.0 0.0 0.0 0.0'/>
        <PositionInterpolator DEF='CENTER_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.106 0.0 0.0 0.15 0.0 0.0 0.106 0.0 0.0 0.0 0.0 0.0 -0.106 0.0 0.0 -0.15 0.0 0.0 -0.106 0.0 0.0 0.0 0.0 0.0'/>
        <PositionInterpolator DEF='RIGHT_SHALLOW_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.056 0.085 0.0 0.08 0.12 0.0 0.056 0.085 0.0 0.0 0.0 0.0 -0.056 -0.085 0.0 -0.08 -0.12 0.0 -0.056 -0.085 0.0 0.0 0.0 0.0'/>
        <PositionInterpolator DEF='RIGHT_DEEP_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.035 0.035 0.0 0.05 0.05 0.0 0.035 0.035 0.0 0.0 0.0 0.0 -0.035 -0.035 0.0 -0.05 -0.05 0.0 -0.035 -0.035 0.0 0.0 0.0 0.0'/>
      </Collision>
    </Group>
    <ROUTE fromField='fraction_changed' fromNode='WAVE_CLOCK' toField='set_fraction' toNode='CENTER_WAVE'/>
    <ROUTE fromField='value_changed' fromNode='CENTER_WAVE' toField='set_translation' toNode='K7_MIDWATER'/>
    <ROUTE fromField='value_changed' fromNode='RIGHT_DEEP_WAVE' toField='set_translation' toNode='K2_MIDWATER'/>
    <ROUTE fromField='value_changed' fromNode='CENTER_WAVE' toField='set_translation' toNode='K4_MIDWATER'/>
    <ROUTE fromField='value_changed' fromNode='LEFT_DEEP_WAVE' toField='set_translation' toNode='K10_DEEP'/>
    <ROUTE fromField='value_changed' fromNode='LEFT_DEEP_WAVE' toField='set_translation' toNode='K11_DEEP'/>
    <ROUTE fromField='value_changed' fromNode='RIGHT_SHALLOW_WAVE' toField='set_translation' toNode='R2_MIDWATER'/>
    <ROUTE fromField='value_changed' fromNode='RIGHT_DEEP_WAVE' toField='set_translation' toNode='R2_DEEP'/>
    <ROUTE fromField='value_changed' fromNode='CENTER_WAVE' toField='set_translation' toNode='R3_MIDWATER'/>
    <ROUTE fromField='value_changed' fromNode='RIGHT_SHALLOW_WAVE' toField='set_translation' toNode='R5_SHALLOW'/>
    <TimeSensor DEF='MasterClock' loop='true'/>
    <Group DEF='Nancy'>
      <!-- Scale used on Nancy underwater to approximate the defraction magnification of the plexiglass window. -->
      <Transform DEF='NancyTransform' rotation='-0.45 0.77 -0.45 1.82' scale='1.3 1.3 1.3' translation='3 -6.5 -2'>
        <Inline DEF='LoadNancy' url='"../HumanoidAnimation/NancyDiving.wrl" "http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyDiving.wrl" "../HumanoidAnimation/NancyDiving.x3d" "http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyDiving.x3d"'/>
      </Transform>
      <TimeSensor DEF='JEFFSCLOCK' cycleInterval='100' loop='true'/>
      <ProtoInstance DEF='NancyInterpolator' name='WaypointInterpolator'>
        <fieldValue name='description' value='Nancy track'/>
        <fieldValue name='waypoints' value='-5.5 -5.7 -.2 -7.7 -2.7 -1.7 6 -3 -3 2 -2 -2 1 -4 -1 -2 -2 -2 -5.5 -5.7 -.2'/>
        <fieldValue name='defaultSpeed' value='0.5'/>
        <fieldValue name='pitchUpDownForVerticalWaypoints' value='true'/>
        <fieldValue name='labelDisplayMode' value='none'/>
        <fieldValue name='lineColor' value='0 0 0'/>
        <fieldValue name='labelColor' value='0 0.8 0.8'/>
        <fieldValue name='labelOffset' value='0 -1.6 0'/>
        <fieldValue name='labelFontSize' value='6'/>
        <fieldValue name='traceEnabled' value='false'/>
        <fieldValue name='transparency' value='1'/>
        <fieldValue name='turningRate' value='18'/>
        <!-- totalDuration is a computed output -->
      </ProtoInstance>
    </Group>
    <ROUTE fromField='fraction_changed' fromNode='JEFFSCLOCK' toField='set_fraction' toNode='NancyInterpolator'/>
    <ROUTE fromField='position_changed' fromNode='NancyInterpolator' toField='set_translation' toNode='NancyTransform'/>
    <ROUTE fromField='orientation_changed' fromNode='NancyInterpolator' toField='set_rotation' toNode='NancyTransform'/>
    <LoadSensor DEF='LoadTracking' enabled='true'>
      <Inline USE='LoadIntro' containerField='watchList'/>
      <Inline USE='LoadLefty' containerField='watchList'/>
      <Inline USE='LoadLucy' containerField='watchList'/>
      <Inline USE='LoadTank' containerField='watchList'/>
      <Inline USE='LoadFloor' containerField='watchList'/>
      <Inline USE='LoadSardine' containerField='watchList'/>
      <Inline USE='KelpExamplesNoBase' containerField='watchList'/>
      <Inline USE='LoadHalfMoon' containerField='watchList'/>
      <Inline USE='LoadRubberLip' containerField='watchList'/>
      <Inline USE='LoadStripedPerch' containerField='watchList'/>
      <Inline USE='LoadSeaStar' containerField='watchList'/>
      <Inline USE='LoadBlackPerch' containerField='watchList'/>
      <Inline USE='LoadSeaStar2' containerField='watchList'/>
      <Inline USE='LoadRockFish' containerField='watchList'/>
      <Inline USE='LoadPerch' containerField='watchList'/>
      <Inline USE='LoadGaribaldi' containerField='watchList'/>
      <Inline USE='LoadBass' containerField='watchList'/>
      <Inline USE='LoadNancy' containerField='watchList'/>
    </LoadSensor>
    <Script DEF='Display' url='"LoadSensor-KelpForest.js" "http://x3dGraphics.com/examples/X3dForWebAuthors/Chapter12-EnvironmentSensorSound/LoadSensor-KelpForest.js"'>
      <field accessType='inputOnly' name='progress' type='SFFloat'/>
    </Script>
    <ROUTE fromField='progress' fromNode='LoadTracking' toField='progress' toNode='Display'/>
  </Scene>
</X3D>