{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Immersive",
    "@version":"3.3",
    "@xsd:noNamespaceSchemaLocation":"https://www.web3d.org/specifications/x3d-3.3.xsd",
    "JSON schema":"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json",
    "head": {
        "meta": [
          {
            "@name":"title",
            "@content":"BoxSwitch.x3d"
          },
          {
            "@name":"creator",
            "@content":"Don Brutzman"
          },
          {
            "@name":"created",
            "@content":"30 December 2015"
          },
          {
            "@name":"modified",
            "@content":"14 July 2025"
          },
          {
            "@name":"description",
            "@content":"Demonstrate simple Switch animation by sequencing through a set of Box nodes that are each covered by a different ImageTexture."
          },
          {
            "@name":"Image",
            "@content":"CubeWithLabeledSidesViewpointSequencer.png"
          },
          {
            "@name":"MovingImage",
            "@content":"BoxSwitch.mp4"
          },
          {
            "@name":"reference",
            "@content":"CubeWithLabeledSides.x3d"
          },
          {
            "@name":"drawing",
            "@content":"images/CubeSideImages.pdf"
          },
          {
            "@name":"drawing",
            "@content":"images/CubeSideImages.vsd"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/BoxSwitch.x3d"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@name":"license",
            "@content":"../license.html"
          },
          {
            "@name":"translated",
            "@content":"31 August 2025"
          },
          {
            "@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":"BoxSwitch.x3d"
            }
          },
          { "Background":
            {
              "@skyColor":[0.8,0.8,0.9]
            }
          },
          { "NavigationInfo":
            {
            }
          },
          { "Switch":
            {
              "@DEF":"BoxSwitcher",
              "@whichChoice":-1,
              "-children":[
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@DEF":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/RedImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/RedImage.png"]
                              }
                            }
                        }
                      }
                  }
                },
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@USE":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/GreenImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/GreenImage.png"]
                              }
                            }
                        }
                      }
                  }
                },
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@USE":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/TurquoiseImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/TurquoiseImage.png"]
                              }
                            }
                        }
                      }
                  }
                },
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@USE":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/YellowImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/YellowImage.png"]
                              }
                            }
                        }
                      }
                  }
                },
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@USE":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/WhiteImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/WhiteImage.png"]
                              }
                            }
                        }
                      }
                  }
                },
                { "Shape":
                  {
                    "-geometry":
                      { "Box":
                        {
                          "@USE":"UnitBox"
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-texture":
                            { "ImageTexture":
                              {
                                "@url":["images/GreyImage.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/GreyImage.png"]
                              }
                            }
                        }
                      }
                  }
                }
              ]
            }
          },
          {
            "#comment":"Animated Box"
          },
          { "TimeSensor":
            {
              "@DEF":"Clock",
              "@cycleInterval":12,
              "@loop":true
            }
          },
          { "IntegerSequencer":
            {
              "@DEF":"Sequencer",
              "@key":[0,0.1667,0.3333,0.5,0.6667,0.8333,1],
              "@keyValue":[0,1,2,3,4,5,0]
            }
          },
          { "ROUTE":
            {
              "@fromField":"fraction_changed",
              "@fromNode":"Clock",
              "@toField":"set_fraction",
              "@toNode":"Sequencer"
            }
          },
          { "ROUTE":
            {
              "@fromField":"value_changed",
              "@fromNode":"Sequencer",
              "@toField":"whichChoice",
              "@toNode":"BoxSwitcher"
            }
          },
          { "Viewpoint":
            {
              "@DEF":"OrbitingView",
              "@description":"Orbiting view",
              "@orientation":[0,1,0,-1.57],
              "@position":[-8,0,0]
            }
          },
          {
            "#comment":"Animated Viewpoint, orbiting about the origin"
          },
          { "PositionInterpolator":
            {
              "@DEF":"CircularPathPositionInterpolator",
              "@key":[0,0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.19444,0.22222,0.25,0.27778,0.30556,0.33333,0.36111,0.38889,0.41667,0.44444,0.47222,0.5,0.52778,0.55556,0.58333,0.61111,0.63889,0.66667,0.69444,0.72222,0.75,0.77778,0.80556,0.83333,0.86111,0.88889,0.91667,0.94444,0.97222,1],
              "@keyValue":[0,0,8,1.389,0,7.878,2.736,0,7.518,4,0,6.928,5.142,0,6.128,6.128,0,5.142,6.928,0,4,7.518,0,2.736,7.878,0,1.389,8,0,0,7.878,0,-1.389,7.518,0,-2.736,6.928,0,-4,6.128,0,-5.142,5.142,0,-6.128,4,0,-6.928,2.736,0,-7.518,1.389,0,-7.878,0,0,-8,-1.389,0,-7.878,-2.736,0,-7.518,-4,0,-6.928,-5.142,0,-6.128,-6.128,0,-5.142,-6.928,0,-4,-7.518,0,-2.736,-7.878,0,-1.389,-8,0,-0,-7.878,0,1.389,-7.518,0,2.736,-6.928,0,4,-6.128,0,5.142,-5.142,0,6.128,-4,0,6.928,-2.736,0,7.518,-1.389,0,7.878,0,0,8]
            }
          },
          { "ROUTE":
            {
              "@fromField":"fraction_changed",
              "@fromNode":"Clock",
              "@toField":"set_fraction",
              "@toNode":"CircularPathPositionInterpolator"
            }
          },
          { "ROUTE":
            {
              "@fromField":"value_changed",
              "@fromNode":"CircularPathPositionInterpolator",
              "@toField":"position",
              "@toNode":"OrbitingView"
            }
          },
          { "OrientationInterpolator":
            {
              "@DEF":"CenterFacingOrientationInterpolator",
              "@key":[0,0.3333,0.6667,1],
              "@keyValue":[0,1,0,0,0,1,0,2.094395,0,1,0,4.18879,0,1,0,0]
            }
          },
          { "ROUTE":
            {
              "@fromField":"fraction_changed",
              "@fromNode":"Clock",
              "@toField":"set_fraction",
              "@toNode":"CenterFacingOrientationInterpolator"
            }
          },
          { "ROUTE":
            {
              "@fromField":"value_changed",
              "@fromNode":"CenterFacingOrientationInterpolator",
              "@toField":"orientation",
              "@toNode":"OrbitingView"
            }
          },
          {
            "#comment":"Additional Viewpoints"
          },
          { "Viewpoint":
            {
              "@description":"Front view",
              "@orientation":[0,1,0,1.57],
              "@position":[8,0,0]
            }
          },
          { "Viewpoint":
            {
              "@description":"Back view",
              "@orientation":[0,1,0,-1.57],
              "@position":[-8,0,0]
            }
          },
          { "Viewpoint":
            {
              "@description":"Left view",
              "@position":[0,0,8]
            }
          },
          { "Viewpoint":
            {
              "@description":"Right view",
              "@orientation":[0,1,0,3.1416],
              "@position":[0,0,-8]
            }
          },
          { "Viewpoint":
            {
              "@description":"Top view",
              "@orientation":[1,0,0,-1.57],
              "@position":[0,8,0]
            }
          },
          { "Viewpoint":
            {
              "@description":"Bottom view",
              "@orientation":[1,0,0,1.57],
              "@position":[0,-8,0]
            }
          }
        ]
    }
  }
}