{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Immersive",
    "@version":"3.0",
    "@xsd:noNamespaceSchemaLocation":"https://www.web3d.org/specifications/x3d-3.0.xsd",
    "JSON schema":"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json",
    "head": {
        "meta": [
          {
            "@name":"title",
            "@content":"ExplosionPrototype.x3d"
          },
          {
            "@name":"description",
            "@content":"Prototype of an explosion (Ball of fire)"
          },
          {
            "@name":"creator",
            "@content":"Alan Hudson, Yumetech, Inc"
          },
          {
            "@name":"created",
            "@content":"27 July 2006"
          },
          {
            "@name":"modified",
            "@content":"28 November 2019"
          },
          {
            "@name":"Image",
            "@content":"ExplosionPrototypeExample.png"
          },
          {
            "@name":"MovingImage",
            "@content":"ExplosionExampleVideo.mov"
          },
          {
            "@name":"reference",
            "@content":"ExplosionExample.x3d"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/Savage/Tools/Explosions/ExplosionPrototype.x3d"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@name":"license",
            "@content":"../../license.html"
          },
          {
            "@name":"translated",
            "@content":"26 March 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":"ExplosionPrototype.x3d"
            }
          },
          { "ProtoDeclare":
            {
              "@name":"Explosion",
              "@appinfo":"Simple explosion animation of a sphere covered with a flame texture, plus a sound effect",
              "ProtoInterface": {
                  "field": [
                    {
                      "@name":"detonateTime",
                      "@accessType":"inputOnly",
                      "@appinfo":"time event to trigger explosion",
                      "@type":"SFTime"
                    },
                    {
                      "@name":"size",
                      "@accessType":"inputOutput",
                      "@appinfo":"size of explosion sphere",
                      "@type":"SFVec3f",
                      "@value":[1.0,1.0,1.0]
                    }
                  ]
              },
              "ProtoBody": {
                  "-children":[
                    { "Group":
                      {
                        "-children":[
                          { "Transform":
                            {
                              "@DEF":"TRANS",
                              "@scale":[0.0010,0.0010,0.0010],
                              "-children":[
                                { "Transform":
                                  {
                                    "IS": {
                                        "connect": [
                                          {
                                            "@nodeField":"scale",
                                            "@protoField":"size"
                                          }
                                        ]
                                    },
                                    "-children":[
                                      { "Shape":
                                        {
                                          "-appearance":
                                            { "Appearance":
                                              {
                                                "-material":
                                                  { "Material":
                                                    {
                                                      "@DEF":"MAT",
                                                      "@diffuseColor":[1.0,0.0,0.0]
                                                    }
                                                  },
                                                "-texture":
                                                  { "ImageTexture":
                                                    {
                                                      "@url":["../../../Savage/Tools/Explosions/flametexture.jpg","https://www.web3d.org/x3d/content/examples/Savage/Tools/Explosions/flametexture.jpg"]
                                                    }
                                                  },
                                                "-textureTransform":
                                                  { "TextureTransform":
                                                    {
                                                      "@DEF":"TT"
                                                    }
                                                  }
                                              }
                                            },
                                          "-geometry":
                                            { "IndexedFaceSet":
                                              {
                                                "@coordIndex":[0,1,2,-1,2,1,3,-1,2,3,4,-1,4,3,5,-1,4,5,6,-1,6,5,7,-1,6,7,8,-1,8,7,9,-1,8,9,10,-1,1,11,3,-1,3,11,12,-1,3,12,5,-1,5,12,13,-1,5,13,7,-1,7,13,14,-1,7,14,9,-1,11,15,12,-1,12,15,16,-1,12,16,13,-1,13,16,17,-1,13,17,14,-1,15,18,16,-1,16,18,19,-1,16,19,17,-1,19,18,20,-1,10,9,21,-1,21,9,22,-1,21,22,23,-1,23,22,24,-1,23,24,25,-1,25,24,26,-1,25,26,27,-1,27,26,28,-1,27,28,29,-1,9,14,22,-1,22,14,30,-1,22,30,24,-1,24,30,31,-1,24,31,26,-1,26,31,32,-1,26,32,28,-1,14,17,30,-1,30,17,33,-1,30,33,31,-1,31,33,34,-1,31,34,32,-1,17,19,33,-1,33,19,35,-1,33,35,34,-1,35,19,20,-1,10,36,8,-1,8,36,37,-1,8,37,6,-1,6,37,38,-1,6,38,4,-1,4,38,39,-1,4,39,2,-1,2,39,40,-1,2,40,0,-1,36,41,37,-1,37,41,42,-1,37,42,38,-1,38,42,43,-1,38,43,39,-1,39,43,44,-1,39,44,40,-1,41,45,42,-1,42,45,46,-1,42,46,43,-1,43,46,47,-1,43,47,44,-1,45,48,46,-1,46,48,49,-1,46,49,47,-1,49,48,50,-1,29,51,27,-1,27,51,52,-1,27,52,25,-1,25,52,53,-1,25,53,23,-1,23,53,54,-1,23,54,21,-1,21,54,36,-1,21,36,10,-1,51,55,52,-1,52,55,56,-1,52,56,53,-1,53,56,57,-1,53,57,54,-1,54,57,41,-1,54,41,36,-1,55,58,56,-1,56,58,59,-1,56,59,57,-1,57,59,45,-1,57,45,41,-1,58,60,59,-1,59,60,48,-1,59,48,45,-1,48,60,50,-1,61,62,63,-1,63,62,64,-1,63,64,65,-1,65,64,66,-1,65,66,67,-1,67,66,68,-1,67,68,69,-1,69,68,1,-1,69,1,0,-1,62,70,64,-1,64,70,71,-1,64,71,66,-1,66,71,72,-1,66,72,68,-1,68,72,11,-1,68,11,1,-1,70,73,71,-1,71,73,74,-1,71,74,72,-1,72,74,15,-1,72,15,11,-1,73,75,74,-1,74,75,18,-1,74,18,15,-1,18,75,20,-1,29,28,76,-1,76,28,77,-1,76,77,78,-1,78,77,79,-1,78,79,80,-1,80,79,81,-1,80,81,82,-1,82,81,62,-1,82,62,61,-1,28,32,77,-1,77,32,83,-1,77,83,79,-1,79,83,84,-1,79,84,81,-1,81,84,70,-1,81,70,62,-1,32,34,83,-1,83,34,85,-1,83,85,84,-1,84,85,73,-1,84,73,70,-1,34,35,85,-1,85,35,75,-1,85,75,73,-1,75,35,20,-1,0,40,69,-1,69,40,86,-1,69,86,67,-1,67,86,87,-1,67,87,65,-1,65,87,88,-1,65,88,63,-1,63,88,89,-1,63,89,61,-1,40,44,86,-1,86,44,90,-1,86,90,87,-1,87,90,91,-1,87,91,88,-1,88,91,92,-1,88,92,89,-1,44,47,90,-1,90,47,93,-1,90,93,91,-1,91,93,94,-1,91,94,92,-1,47,49,93,-1,93,49,95,-1,93,95,94,-1,95,49,50,-1,61,89,82,-1,82,89,96,-1,82,96,80,-1,80,96,97,-1,80,97,78,-1,78,97,98,-1,78,98,76,-1,76,98,51,-1,76,51,29,-1,89,92,96,-1,96,92,99,-1,96,99,97,-1,97,99,100,-1,97,100,98,-1,98,100,55,-1,98,55,51,-1,92,94,99,-1,99,94,101,-1,99,101,100,-1,100,101,58,-1,100,58,55,-1,94,95,101,-1,101,95,60,-1,101,60,58,-1,60,95,50,-1],
                                                "@creaseAngle":0.5,
                                                "@texCoordIndex":[0,1,2,-1,2,1,3,-1,2,3,4,-1,4,3,5,-1,4,5,6,-1,6,5,7,-1,6,7,8,-1,8,7,9,-1,8,9,10,-1,1,11,3,-1,3,11,12,-1,3,12,5,-1,5,12,13,-1,5,13,7,-1,7,13,14,-1,7,14,9,-1,11,15,12,-1,12,15,16,-1,12,16,13,-1,13,16,17,-1,13,17,14,-1,15,18,16,-1,16,18,19,-1,16,19,17,-1,19,18,20,-1,10,9,21,-1,21,9,22,-1,21,22,23,-1,23,22,24,-1,23,24,25,-1,25,24,26,-1,25,26,27,-1,27,26,28,-1,27,28,29,-1,9,14,22,-1,22,14,30,-1,22,30,24,-1,24,30,31,-1,24,31,26,-1,26,31,32,-1,26,32,28,-1,14,17,30,-1,30,17,33,-1,30,33,31,-1,31,33,34,-1,31,34,32,-1,17,19,33,-1,33,19,35,-1,33,35,34,-1,35,19,20,-1,10,36,8,-1,8,36,37,-1,8,37,6,-1,6,37,38,-1,6,38,4,-1,4,38,39,-1,4,39,2,-1,2,39,40,-1,2,40,0,-1,36,41,37,-1,37,41,42,-1,37,42,38,-1,38,42,43,-1,38,43,39,-1,39,43,44,-1,39,44,40,-1,41,45,42,-1,42,45,46,-1,42,46,43,-1,43,46,47,-1,43,47,44,-1,45,48,46,-1,46,48,49,-1,46,49,47,-1,49,48,50,-1,29,51,27,-1,27,51,52,-1,27,52,25,-1,25,52,53,-1,25,53,23,-1,23,53,54,-1,23,54,21,-1,21,54,36,-1,21,36,10,-1,51,55,52,-1,52,55,56,-1,52,56,53,-1,53,56,57,-1,53,57,54,-1,54,57,41,-1,54,41,36,-1,55,58,56,-1,56,58,59,-1,56,59,57,-1,57,59,45,-1,57,45,41,-1,58,60,59,-1,59,60,48,-1,59,48,45,-1,48,60,50,-1,61,62,63,-1,63,62,64,-1,63,64,65,-1,65,64,66,-1,65,66,67,-1,67,66,68,-1,67,68,69,-1,69,68,1,-1,69,1,0,-1,62,70,64,-1,64,70,71,-1,64,71,66,-1,66,71,72,-1,66,72,68,-1,68,72,11,-1,68,11,1,-1,70,73,71,-1,71,73,74,-1,71,74,72,-1,72,74,15,-1,72,15,11,-1,73,75,74,-1,74,75,18,-1,74,18,15,-1,18,75,20,-1,29,28,76,-1,76,28,77,-1,76,77,78,-1,78,77,79,-1,78,79,80,-1,80,79,81,-1,80,81,82,-1,82,81,62,-1,82,62,61,-1,28,32,77,-1,77,32,83,-1,77,83,79,-1,79,83,84,-1,79,84,81,-1,81,84,70,-1,81,70,62,-1,32,34,83,-1,83,34,85,-1,83,85,84,-1,84,85,73,-1,84,73,70,-1,34,35,85,-1,85,35,75,-1,85,75,73,-1,75,35,20,-1,0,40,69,-1,69,40,86,-1,69,86,67,-1,67,86,87,-1,67,87,65,-1,65,87,88,-1,65,88,63,-1,63,88,89,-1,63,89,61,-1,40,44,86,-1,86,44,90,-1,86,90,87,-1,87,90,91,-1,87,91,88,-1,88,91,92,-1,88,92,89,-1,44,47,90,-1,90,47,93,-1,90,93,91,-1,91,93,94,-1,91,94,92,-1,47,49,93,-1,93,49,95,-1,93,95,94,-1,95,49,50,-1,61,89,82,-1,82,89,96,-1,82,96,80,-1,80,96,97,-1,80,97,78,-1,78,97,98,-1,78,98,76,-1,76,98,51,-1,76,51,29,-1,89,92,96,-1,96,92,99,-1,96,99,97,-1,97,99,100,-1,97,100,98,-1,98,100,55,-1,98,55,51,-1,92,94,99,-1,99,94,101,-1,99,101,100,-1,100,101,58,-1,100,58,55,-1,94,95,101,-1,101,95,60,-1,101,60,58,-1,60,95,50,-1],
                                                "-coord":
                                                  { "Coordinate":
                                                    {
                                                      "@point":[1.0,0.0,0.0,0.970142,0.242536,0.0,0.970142,0.0,0.242536,0.904534,0.301511,0.301511,0.83205,0.0,0.5547,0.666667,0.333333,0.666667,0.5547,0.0,0.83205,0.301511,0.301511,0.904534,0.242536,0.0,0.970142,0.0,0.242536,0.970142,0.0,0.0,1.0,0.83205,0.5547,0.0,0.666667,0.666667,0.333333,0.333333,0.666667,0.666667,0.0,0.5547,0.83205,0.5547,0.83205,0.0,0.301511,0.904534,0.301511,0.0,0.83205,0.5547,0.242536,0.970142,0.0,0.0,0.970142,0.242536,0.0,1.0,0.0,-0.242536,0.0,0.970142,-0.301511,0.301511,0.904534,-0.5547,0.0,0.83205,-0.666667,0.333333,0.666667,-0.83205,0.0,0.5547,-0.904534,0.301511,0.301511,-0.970142,0.0,0.242536,-0.970142,0.242536,0.0,-1.0,0.0,0.0,-0.333333,0.666667,0.666667,-0.666667,0.666667,0.333333,-0.83205,0.5547,0.0,-0.301511,0.904534,0.301511,-0.5547,0.83205,0.0,-0.242536,0.970142,0.0,0.0,-0.242536,0.970142,0.301511,-0.301511,0.904534,0.666667,-0.333333,0.666667,0.904534,-0.301511,0.301511,0.970142,-0.242536,0.0,0.0,-0.5547,0.83205,0.333333,-0.666667,0.666667,0.666667,-0.666667,0.333333,0.83205,-0.5547,0.0,0.0,-0.83205,0.5547,0.301511,-0.904534,0.301511,0.5547,-0.83205,0.0,0.0,-0.970142,0.242536,0.242536,-0.970142,0.0,0.0,-1.0,0.0,-0.970142,-0.242536,0.0,-0.904534,-0.301511,0.301511,-0.666667,-0.333333,0.666667,-0.301511,-0.301511,0.904534,-0.83205,-0.5547,0.0,-0.666667,-0.666667,0.333333,-0.333333,-0.666667,0.666667,-0.5547,-0.83205,0.0,-0.301511,-0.904534,0.301511,-0.242536,-0.970142,0.0,0.0,0.0,-1.0,0.0,0.242536,-0.970142,0.242536,0.0,-0.970142,0.301511,0.301511,-0.904534,0.5547,0.0,-0.83205,0.666667,0.333333,-0.666667,0.83205,0.0,-0.5547,0.904534,0.301511,-0.301511,0.970142,0.0,-0.242536,0.0,0.5547,-0.83205,0.333333,0.666667,-0.666667,0.666667,0.666667,-0.333333,0.0,0.83205,-0.5547,0.301511,0.904534,-0.301511,0.0,0.970142,-0.242536,-0.970142,0.0,-0.242536,-0.904534,0.301511,-0.301511,-0.83205,0.0,-0.5547,-0.666667,0.333333,-0.666667,-0.5547,0.0,-0.83205,-0.301511,0.301511,-0.904534,-0.242536,0.0,-0.970142,-0.666667,0.666667,-0.333333,-0.333333,0.666667,-0.666667,-0.301511,0.904534,-0.301511,0.904534,-0.301511,-0.301511,0.666667,-0.333333,-0.666667,0.301511,-0.301511,-0.904534,0.0,-0.242536,-0.970142,0.666667,-0.666667,-0.333333,0.333333,-0.666667,-0.666667,0.0,-0.5547,-0.83205,0.301511,-0.904534,-0.301511,0.0,-0.83205,-0.5547,0.0,-0.970142,-0.242536,-0.301511,-0.301511,-0.904534,-0.666667,-0.333333,-0.666667,-0.904534,-0.301511,-0.301511,-0.333333,-0.666667,-0.666667,-0.666667,-0.666667,-0.333333,-0.301511,-0.904534,-0.301511]
                                                    }
                                                  },
                                                "-texCoord":
                                                  { "TextureCoordinate":
                                                    {
                                                      "@point":[0.75,1.0,0.25,0.922021,0.5,0.922021,0.375,0.859781,0.5,0.812833,0.426208,0.73228,0.5,0.687167,0.448792,0.597491,0.5,0.577979,0.46101,0.5,0.5,0.5,0.25,0.812833,0.323792,0.73228,0.375,0.608173,0.406417,0.5,0.25,0.687167,0.301208,0.597491,0.343584,0.5,0.25,0.577979,0.28899,0.5,0.25,0.5,0.5,0.422021,0.448792,0.402509,0.5,0.312833,0.426208,0.26772,0.5,0.187167,0.375,0.140219,0.5,0.0779793,0.25,0.0779793,0.25,0.0,0.375,0.391827,0.323792,0.26772,0.25,0.187167,0.301208,0.402509,0.25,0.312833,0.25,0.422021,0.53899,0.5,0.551208,0.597491,0.573792,0.73228,0.625,0.859781,0.75,0.922021,0.593584,0.5,0.625,0.608173,0.676208,0.73228,0.75,0.812833,0.656416,0.5,0.698792,0.597491,0.75,0.687167,0.71101,0.5,0.75,0.577979,0.75,0.5,0.75,0.0779793,0.625,0.140219,0.573792,0.26772,0.551208,0.402509,0.75,0.187167,0.676208,0.26772,0.625,0.391827,0.75,0.312833,0.698792,0.402509,0.75,0.422021,1.0,0.5,0.0389897,0.5,1.0,0.577979,0.0512081,0.597491,1.0,0.687167,0.0737917,0.73228,1.0,0.812833,0.125,0.859781,1.0,0.922021,0.0935835,0.5,0.125,0.608173,0.176208,0.73228,0.156416,0.5,0.198792,0.597491,0.21101,0.5,0.0,0.0779793,0.125,0.140219,0.0,0.187167,0.0737917,0.26772,0.0,0.312833,0.0512082,0.402509,0.0,0.422021,0.176208,0.26772,0.125,0.391827,0.198792,0.402509,0.875,0.859781,0.926208,0.73228,0.948792,0.597491,0.96101,0.5,0.823792,0.73228,0.875,0.608173,0.906416,0.5,0.801208,0.597491,0.843584,0.5,0.78899,0.5,0.948792,0.402509,0.926208,0.26772,0.875,0.140219,0.875,0.391827,0.823792,0.26772,0.801208,0.402509]
                                                    }
                                                  }
                                              }
                                            }
                                        }
                                      }
                                    ]
                                  }
                                },
                                { "TimeSensor":
                                  {
                                    "@DEF":"TIMER",
                                    "@cycleInterval":3.0,
                                    "IS": {
                                        "connect": [
                                          {
                                            "@nodeField":"startTime",
                                            "@protoField":"detonateTime"
                                          }
                                        ]
                                    }
                                  }
                                },
                                { "PositionInterpolator":
                                  {
                                    "@DEF":"SCALE_INTERP",
                                    "@key":[0.0,1.0],
                                    "@keyValue":[0.0010,0.0010,0.0010,1.0,1.0,1.0]
                                  }
                                },
                                { "ScalarInterpolator":
                                  {
                                    "@DEF":"TRANSPARENCY_INTERP",
                                    "@key":[0.0,1.0],
                                    "@keyValue":[0.0,1.0]
                                  }
                                },
                                { "ScalarInterpolator":
                                  {
                                    "@DEF":"ROTATION_INTERP",
                                    "@key":[0.0,1.0],
                                    "@keyValue":[0.0,1.57075]
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"fraction_changed",
                                    "@fromNode":"TIMER",
                                    "@toField":"set_fraction",
                                    "@toNode":"SCALE_INTERP"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"fraction_changed",
                                    "@fromNode":"TIMER",
                                    "@toField":"set_fraction",
                                    "@toNode":"TRANSPARENCY_INTERP"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"fraction_changed",
                                    "@fromNode":"TIMER",
                                    "@toField":"set_fraction",
                                    "@toNode":"ROTATION_INTERP"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"value_changed",
                                    "@fromNode":"SCALE_INTERP",
                                    "@toField":"set_scale",
                                    "@toNode":"TRANS"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"value_changed",
                                    "@fromNode":"TRANSPARENCY_INTERP",
                                    "@toField":"set_transparency",
                                    "@toNode":"MAT"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"value_changed",
                                    "@fromNode":"ROTATION_INTERP",
                                    "@toField":"set_rotation",
                                    "@toNode":"TT"
                                  }
                                }
                              ]
                            }
                          },
                          { "Sound":
                            {
                              "@maxBack":100,
                              "@maxFront":100,
                              "@minBack":10,
                              "@minFront":10,
                              "-source":
                                { "AudioClip":
                                  {
                                    "@description":"Normal Explosion",
                                    "@url":["NormalExplosion.wav","https://www.web3d.org/x3d/content/examples/Savage/Tools/Explosions/NormalExplosion.wav"],
                                    "IS": {
                                        "connect": [
                                          {
                                            "@nodeField":"startTime",
                                            "@protoField":"detonateTime"
                                          }
                                        ]
                                    }
                                  }
                                }
                            }
                          }
                        ]
                      }
                    }
                  ]
              }
            }
          },
          {
            "#comment":"===================="
          },
          { "Background":
            {
              "@groundAngle":[1.57],
              "@groundColor":[0.6,0.9,0.6,0.6,0.9,0.6],
              "@skyColor":[0.6,0.6,0.9]
            }
          },
          { "Anchor":
            {
              "@description":"Explosion Example",
              "@parameter":["target=_blank"],
              "@url":["ExplosionExample.wrl","https://www.web3d.org/x3d/content/examples/Savage/Tools/Explosions/ExplosionExample.wrl","MultipleTimerExplodingBuildingExample.x3d","https://www.web3d.org/x3d/content/examples/Savage/Tools/Explosions/ExplosionExample.x3d"],
              "-children":[
                { "Shape":
                  {
                    "-geometry":
                      { "Text":
                        {
                          "@string":["ExplosionPrototype","is a prototype definition file","Click this text to see","ExplosionExample"],
                          "-fontStyle":
                            { "FontStyle":
                              {
                                "@justify":["MIDDLE","MIDDLE"]
                              }
                            }
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-material":
                            { "Material":
                              {
                                "@diffuseColor":[0.2,0.2,0.8]
                              }
                            }
                        }
                      }
                  }
                }
              ]
            }
          }
        ]
    }
  }
}