X3D Model Documentation: spine.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
  3  <X3D profile='Interactive' version='4.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  4       <head>
  5            <meta name='titlecontent=' spine.x3d '/>
  6            <meta name='descriptioncontent='The spinal column, also known as the vertebral column, spine or backbone, is the part of the axial skeleton in humans and othervertebrate animals. The spinal column is a segmented column of vertebrae that surrounds and protects the spinal cord. The vertebrae are separated by intervertebral discs in a series of cartilaginous joints.'/>
  7            <meta name='creatorcontent='Don Brutzman'/>
  8            <meta name='createdcontent='4 April 2026'/>
  9            <meta name='modifiedcontent='23 April 2026'/>
 10            <meta name='referencecontent='https://en.wikipedia.org/wiki/Spinal_column'/>
 11            <meta name='specificationSectioncontent='X3D 4.0 Architecture, ISO/IEC 19775-1:202x draft version 4.1, clause 4 Concepts, section 4.11.6.6 LOA‑5 hierarchy'/>
 12            <meta name='specificationUrlcontent='https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5'/>
 13            <meta name='generatorcontent='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='generatorcontent=' X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html '/>
 15            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/spine.x3d '/>
 16            <meta name='licensecontent='../license.html'/>
 17       </head>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: AxesDisplay, c1, c2, c2disc, c3, c3disc, c4, c4disc, c5, c5disc, c6, c6disc, c7, c7disc, CenterOfRotationForJoint, HiddenLight, l1, l1disc, l2, l2disc, l3, l3disc, l4, l4disc, l5, l5disc, SkullLocalOffset, t1, t10, t10disc, t11, t11disc, t12, t12disc, t1disc, t2, t2disc, t3, t3disc, t4, t4disc, t5, t5disc, t6, t6disc, t7, t7disc, t8, t8disc, t9, t9disc, UserTouchSensor, UserTouchState

Index for Viewpoint and ViewpointGroup nodes: HiddenViewpoint, ViewFromAbove, ViewFromBehind, ViewFromBelow, ViewFromFront, ViewFromLeft, ViewFromRight, ViewpointGroup_spine

-->
 18       <Scene>
 19            <WorldInfo title='spine.x3d'/>
 20            <NavigationInfo type='"EXAMINE"'/>
 21            <Background skyColor='0.858824 1 0.94902'/>
 22            <!-- user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint -->
 23 
          <!-- ROUTE information for UserTouchSensor node:  [from isActive to UserTouchState.set_boolean ] -->
          <TouchSensor DEF='UserTouchSensordescription='spine, vertebrae and cartilage'/>
 24            <Transform DEF='SkullLocalOffsetcenter='0 1.35 0translation='0 1.35 0'>
 25                 <ViewpointGroup DEF='ViewpointGroup_spinedescription='spine modelretainUserOffsets='truecontainerField='children'>
 26                      <Viewpoint DEF='ViewFromFrontdescription='spine facenearDistance='0.001position='0 0 1.1retainUserOffsets='true'/>
 27                      <Viewpoint DEF='ViewFromBehinddescription='spine from left sidenearDistance='0.001orientation='0 1 0 1.5708position='1.1 0 0retainUserOffsets='true'/>
 28                      <Viewpoint DEF='ViewFromLeftdescription='spine from behindnearDistance='0.001orientation='0 1 0 3.1416position='0 0 -1.1retainUserOffsets='true'/>
 29                      <Viewpoint DEF='ViewFromRightdescription='spine from right sidenearDistance='0.001orientation='0 1 0 -1.5708position='-1.1 0 0retainUserOffsets='true'/>
 30                      <Viewpoint DEF='ViewFromAbovedescription='spine from abovenearDistance='0.001orientation='1 0 0 -1.5708position='0 0.8 0retainUserOffsets='true'/>
 31                      <Viewpoint DEF='ViewFromBelowdescription='spine from belownearDistance='0.001orientation='1 0 0 1.5708position='0 -0.8 0retainUserOffsets='true'/>
 32                 </ViewpointGroup>
 33                 <!-- nevertheless, TouchSensor interfaces from each of the Inline models are closer, taking priority and overriding this interface -->
 34 
               <!-- ROUTE information for UserTouchState node:  [from UserTouchSensor.isActive to set_boolean ] [from toggle to HiddenViewpoint.set_bind ] [from toggle to HiddenLight.on ] [from toggle to CenterOfRotationForJoint.visible ] -->
               <BooleanToggle DEF='UserTouchStatecontainerField='children'/>
 35                 < ROUTE  fromNode='UserTouchSensor' fromField='isActive' toNode='UserTouchState' toField='set_boolean'/>
 36 
               <!-- ROUTE information for HiddenViewpoint node:  [from UserTouchState.toggle to set_bind ] -->
               <Viewpoint DEF='HiddenViewpointnearDistance='0.001position='0 0 0.2retainUserOffsets='true'>
 37                      <NavigationInfo containerField='navigationInfotransitionType='"ANIMATE"type='"EXAMINE"'/>
 38                 </Viewpoint>
 39                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='HiddenViewpoint' toField='set_bind'/>
 40 
               <!-- ROUTE information for HiddenLight node:  [from UserTouchState.toggle to on ] -->
               <DirectionalLight DEF='HiddenLightambientIntensity='1color='0.1 0.1 1on='false'/>
 41                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='HiddenLight' toField='on'/>
 42 
               <!-- ROUTE information for CenterOfRotationForJoint node:  [from UserTouchState.toggle to visible ] -->
               <Transform DEF='CenterOfRotationForJointvisible='false'>
 43                      <!-- insert computations for joint center of rotation here -->
 44                      <Inline DEF='AxesDisplaydescription='RGB display axes showing XYZ direction in local coordinate systemvisible='false'   url=' "AxesDisplay.x3d"'/>
 45                 </Transform>
 46                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='CenterOfRotationForJoint' toField='visible'/>
 47            </Transform>
 48            <!-- order is from base of spine to skull, matching LOA-5 hierarch Figure 4.16 -->
 49            <!-- sacrum.x3d handled separately -->
 50            <Inline DEF='l5'   url=' "l5.x3d"'/>
 51            <Inline DEF='l5disc'   url=' "l5disc.x3d"'/>
 52            <Inline DEF='l4'   url=' "l4.x3d"'/>
 53            <Inline DEF='l4disc'   url=' "l4disc.x3d"'/>
 54            <Inline DEF='l3'   url=' "l3.x3d"'/>
 55            <Inline DEF='l3disc'   url=' "l3disc.x3d"'/>
 56            <Inline DEF='l2'   url=' "l2.x3d"'/>
 57            <Inline DEF='l2disc'   url=' "l2disc.x3d"'/>
 58            <Inline DEF='l1'   url=' "l1.x3d"'/>
 59            <Inline DEF='l1disc'   url=' "l1disc.x3d"'/>
 60            <Inline DEF='t12'   url=' "t12.x3d"'/>
 61            <Inline DEF='t12disc'   url=' "t12disc.x3d"'/>
 62            <Inline DEF='t11'   url=' "t11.x3d"'/>
 63            <Inline DEF='t11disc'   url=' "t11disc.x3d"'/>
 64            <Inline DEF='t10'   url=' "t10.x3d"'/>
 65            <Inline DEF='t10disc'   url=' "t10disc.x3d"'/>
 66            <Inline DEF='t9'   url=' "t9.x3d"'/>
 67            <Inline DEF='t9disc'   url=' "t9disc.x3d"'/>
 68            <Inline DEF='t8'   url=' "t8.x3d"'/>
 69            <Inline DEF='t8disc'   url=' "t8disc.x3d"'/>
 70            <Inline DEF='t7'   url=' "t7.x3d"'/>
 71            <Inline DEF='t7disc'   url=' "t7disc.x3d"'/>
 72            <Inline DEF='t6'   url=' "t6.x3d"'/>
 73            <Inline DEF='t6disc'   url=' "t6disc.x3d"'/>
 74            <Inline DEF='t5'   url=' "t5.x3d"'/>
 75            <Inline DEF='t5disc'   url=' "t5disc.x3d"'/>
 76            <Inline DEF='t4'   url=' "t4.x3d"'/>
 77            <Inline DEF='t4disc'   url=' "t4disc.x3d"'/>
 78            <Inline DEF='t3'   url=' "t3.x3d"'/>
 79            <Inline DEF='t3disc'   url=' "t3disc.x3d"'/>
 80            <Inline DEF='t2'   url=' "t2.x3d"'/>
 81            <Inline DEF='t2disc'   url=' "t2disc.x3d"'/>
 82            <Inline DEF='t1'   url=' "t1.x3d"'/>
 83            <Inline DEF='t1disc'   url=' "t1disc.x3d"'/>
 84            <Inline DEF='c7'   url=' "c7.x3d"'/>
 85            <Inline DEF='c7disc'   url=' "c7disc.x3d"'/>
 86            <Inline DEF='c6'   url=' "c6.x3d"'/>
 87            <Inline DEF='c6disc'   url=' "c6disc.x3d"'/>
 88            <Inline DEF='c5'   url=' "c5.x3d"'/>
 89            <Inline DEF='c5disc'   url=' "c5disc.x3d"'/>
 90            <Inline DEF='c4'   url=' "c4.x3d"'/>
 91            <Inline DEF='c4disc'   url=' "c4disc.x3d"'/>
 92            <Inline DEF='c3'   url=' "c3.x3d"'/>
 93            <Inline DEF='c3disc'   url=' "c3disc.x3d"'/>
 94            <Inline DEF='c2'   url=' "c2.x3d"'/>
 95            <Inline DEF='c2disc'   url=' "c2disc.x3d"'/>
 96            <Inline DEF='c1'   url=' "c1.x3d"'/>
 97            <!-- TODO missing <Inline DEF='c1disc' url='"c1disc.x3d"'/> -->
 98       </Scene>
 99  </X3D>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: AxesDisplay, c1, c2, c2disc, c3, c3disc, c4, c4disc, c5, c5disc, c6, c6disc, c7, c7disc, CenterOfRotationForJoint, HiddenLight, l1, l1disc, l2, l2disc, l3, l3disc, l4, l4disc, l5, l5disc, SkullLocalOffset, t1, t10, t10disc, t11, t11disc, t12, t12disc, t1disc, t2, t2disc, t3, t3disc, t4, t4disc, t5, t5disc, t6, t6disc, t7, t7disc, t8, t8disc, t9, t9disc, UserTouchSensor, UserTouchState

Index for Viewpoint and ViewpointGroup nodes: HiddenViewpoint, ViewFromAbove, ViewFromBehind, ViewFromBelow, ViewFromFront, ViewFromLeft, ViewFromRight, ViewpointGroup_spine

-->
X3D Tooltips element index: Background, BooleanToggle, DirectionalLight, head, Inline, meta, NavigationInfo, ROUTE, Scene, TouchSensor, Transform, Viewpoint, ViewpointGroup, WorldInfo, X3D,
plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 4 ROUTE connections 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.

UserTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
UserTouchState
BooleanToggle
set_boolean
SFBool
then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
HiddenViewpoint
Viewpoint
set_bind
SFBool
  then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
HiddenLight
DirectionalLight
on
SFBool
  then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
CenterOfRotationForJoint
Transform
visible
SFBool

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets.
Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/spineIndex.html -->
<!-- SourceForge version control Version control at    
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/spine.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode DEF='idNamefield='value'/> matches XML terminology <XmlElement DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->