{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Interactive",
    "@version":"4.0",
    "@xsd:noNamespaceSchemaLocation":"https://www.web3d.org/specifications/x3d-4.0.xsd",
    "JSON schema":"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json",
    "head": {
        "meta": [
          {
            "@name":"title",
            "@content":"spine.x3d"
          },
          {
            "@name":"description",
            "@content":"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."
          },
          {
            "@name":"creator",
            "@content":"Don Brutzman"
          },
          {
            "@name":"created",
            "@content":"4 April 2026"
          },
          {
            "@name":"modified",
            "@content":"4 April 2026"
          },
          {
            "@name":"reference",
            "@content":"https://en.wikipedia.org/wiki/Spinal_column"
          },
          {
            "@name":"specificationSection",
            "@content":"X3D 4.0 Architecture, ISO/IEC 19775-1:202x draft version 4.1, clause 4 Concepts, section 4.11.6.6 LOA‑5 hierarchy"
          },
          {
            "@name":"specificationUrl",
            "@content":"https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@name":"generator",
            "@content":"X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/spine.x3d"
          },
          {
            "@name":"license",
            "@content":"../license.html"
          },
          {
            "@name":"translated",
            "@content":"15 April 2026"
          },
          {
            "@name":"generator",
            "@content":"X3dToJson.xslt, https://www.web3d.org/x3d/stylesheets/X3dToJson.html"
          },
          {
            "@name":"reference",
            "@content":"X3D JSON encoding: https://www.web3d.org/wiki/index.php/X3D_JSON_Encoding"
          }
        ]
    },
    "Scene": {
        "-children":[
          { "WorldInfo":
            {
              "@title":"spine.x3d"
            }
          },
          { "NavigationInfo":
            {
              "@type":["EXAMINE"]
            }
          },
          { "Background":
            {
              "@skyColor":[0.858824,1,0.94902]
            }
          },
          {
            "#comment":"user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint"
          },
          { "TouchSensor":
            {
              "@DEF":"UserTouchSensor",
              "@description":"spine, vertebrae and cartilage"
            }
          },
          { "Transform":
            {
              "@DEF":"SkullLocalOffset",
              "@center":[0,1.35,0],
              "@translation":[0,1.35,0],
              "-children":[
                { "ViewpointGroup":
                  {
                    "@DEF":"ViewpointGroup_spine",
                    "@description":"spine model",
                    "@retainUserOffsets":true,
                    "-children":[
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromFront",
                          "@description":"spine face",
                          "@nearDistance":0.001,
                          "@position":[0,0,1.1],
                          "@retainUserOffsets":true
                        }
                      },
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromBehind",
                          "@description":"spine from left side",
                          "@nearDistance":0.001,
                          "@orientation":[0,1,0,1.5708],
                          "@position":[1.1,0,0],
                          "@retainUserOffsets":true
                        }
                      },
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromLeft",
                          "@description":"spine from behind",
                          "@nearDistance":0.001,
                          "@orientation":[0,1,0,3.1416],
                          "@position":[0,0,-1.1],
                          "@retainUserOffsets":true
                        }
                      },
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromRight",
                          "@description":"spine from right side",
                          "@nearDistance":0.001,
                          "@orientation":[0,1,0,-1.5708],
                          "@position":[-1.1,0,0],
                          "@retainUserOffsets":true
                        }
                      },
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromAbove",
                          "@description":"spine from above",
                          "@nearDistance":0.001,
                          "@orientation":[1,0,0,-1.5708],
                          "@position":[0,0.8,0],
                          "@retainUserOffsets":true
                        }
                      },
                      { "Viewpoint":
                        {
                          "@DEF":"ViewFromBelow",
                          "@description":"spine from below",
                          "@nearDistance":0.001,
                          "@orientation":[1,0,0,1.5708],
                          "@position":[0,-0.8,0],
                          "@retainUserOffsets":true
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"nevertheless, TouchSensor interfaces from each of the Inline models are closer, taking priority and overriding this interface"
                },
                { "Viewpoint":
                  {
                    "@DEF":"HiddenViewpoint",
                    "@nearDistance":0.001,
                    "@position":[0,0,0.2],
                    "@retainUserOffsets":true,
                    "-navigationInfo":[
                      { "NavigationInfo":
                        {
                          "@transitionType":["ANIMATE"],
                          "@type":["EXAMINE"]
                        }
                      }
                    ]
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"isActive",
                    "@fromNode":"UserTouchSensor",
                    "@toField":"set_bind",
                    "@toNode":"HiddenViewpoint"
                  }
                },
                { "DirectionalLight":
                  {
                    "@DEF":"HiddenLight",
                    "@ambientIntensity":1,
                    "@color":[0.1,0.1,1],
                    "@on":false
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"isOver",
                    "@fromNode":"UserTouchSensor",
                    "@toField":"on",
                    "@toNode":"HiddenLight"
                  }
                }
              ]
            }
          },
          {
            "#comment":"order is from base of spine to skull, matching LOA-5 hierarch Figure 4.16"
          },
          {
            "#comment":"sacrum.x3d handled separately"
          },
          { "Inline":
            {
              "@DEF":"l5",
              "@url":["l5.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l5disc",
              "@url":["l5disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l4",
              "@url":["l4.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l4disc",
              "@url":["l4disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l3",
              "@url":["l3.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l3disc",
              "@url":["l3disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l2",
              "@url":["l2.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l2disc",
              "@url":["l2disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l1",
              "@url":["l1.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"l1disc",
              "@url":["l1disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t12",
              "@url":["t12.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t12disc",
              "@url":["t12disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t11",
              "@url":["t11.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t11disc",
              "@url":["t11disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t10",
              "@url":["t10.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t10disc",
              "@url":["t10disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t9",
              "@url":["t9.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t9disc",
              "@url":["t9disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t8",
              "@url":["t8.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t8disc",
              "@url":["t8disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t7",
              "@url":["t7.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t7disc",
              "@url":["t7disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t6",
              "@url":["t6.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t6disc",
              "@url":["t6disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t5",
              "@url":["t5.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t5disc",
              "@url":["t5disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t4",
              "@url":["t4.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t4disc",
              "@url":["t4disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t3",
              "@url":["t3.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t3disc",
              "@url":["t3disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t2",
              "@url":["t2.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t2disc",
              "@url":["t2disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t1",
              "@url":["t1.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"t1disc",
              "@url":["t1disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c7",
              "@url":["c7.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c7disc",
              "@url":["c7disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c6",
              "@url":["c6.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c6disc",
              "@url":["c6disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c5",
              "@url":["c5.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c5disc",
              "@url":["c5disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c4",
              "@url":["c4.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c4disc",
              "@url":["c4disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c3",
              "@url":["c3.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c3disc",
              "@url":["c3disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c2",
              "@url":["c2.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c2disc",
              "@url":["c2disc.x3d"]
            }
          },
          { "Inline":
            {
              "@DEF":"c1",
              "@url":["c1.x3d"]
            }
          },
          {
            "#comment":"TODO missing <Inline DEF='c1disc' url='\"c1disc.x3d\"'/>"
          }
        ]
    }
  }
}