{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Full",
    "@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":"LocalFogEffectsTest.x3d"
          },
          {
            "@name":"creator",
            "@content":"Sungmin Kwon and Don Brutzman"
          },
          {
            "@name":"reference",
            "@content":"http://www.wiley.com/legacy/compbooks/vrml2sbk/ch23/23fig02b.htm"
          },
          {
            "@name":"created",
            "@content":"8 July 2018"
          },
          {
            "@name":"modified",
            "@content":"29 October 2023"
          },
          {
            "@name":"warning",
            "@content":"under development, LocalFog specification functionality review in progress on x3d-public@web3D.org"
          },
          {
            "@name":"Image",
            "@content":"LocalFogEffectsTestViewFarInstantReality.png"
          },
          {
            "@name":"Image",
            "@content":"LocalFogEffectsTestViewGroundInstantReality.png"
          },
          {
            "@name":"Image",
            "@content":"LocalFogEffectsTestViewNearInstantReality.png"
          },
          {
            "@name":"reference",
            "@content":"LocalFogEffectsPresentation.pdf"
          },
          {
            "@name":"reference",
            "@content":"LocalFogEffectsPresentation.pptx"
          },
          {
            "@name":"description",
            "@content":"Test Scene of LocalFog Node: Moving LocalFog having visibilityRange=40 and Linear attenuation. Attenuation should be vary depending on LocalFog center."
          },
          {
            "@name":"reference",
            "@content":"https://www.web3d.org/x3d/tooltips/X3dTooltips.html#LocalFog"
          },
          {
            "@name":"reference",
            "@content":"https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter23Fog/Figure23_2bLinearFogVisibility40.x3d"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/LocalFog/LocalFogEffectsTest.x3d"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@name":"license",
            "@content":"../../license.html"
          },
          {
            "@name":"translated",
            "@content":"25 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":"LocalFogEffectsTest.x3d"
            }
          },
          { "Background":
            {
              "@groundColor":[0.5,0.5,0],
              "@skyColor":[0.8,0.8,1]
            }
          },
          { "Group":
            {
              "@DEF":"StationaryObjects",
              "-children":[
                { "Viewpoint":
                  {
                    "@description":"Far View of LocalFog",
                    "@orientation":[1,0,0,-1.57],
                    "@position":[0,115,0]
                  }
                },
                { "Viewpoint":
                  {
                    "@description":"Top View of LocalFog",
                    "@orientation":[1,0,0,-1.57],
                    "@position":[0,35,0]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Front View of LocalFog",
                    "@position":[0,3,60]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close1 View of LocalFog",
                    "@position":[0,3,35]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close2 View of LocalFog",
                    "@position":[0,3,27]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close3 View of LocalFog",
                    "@position":[0,3,19]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close4 View of LocalFog",
                    "@position":[0,3,11]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close5 View of LocalFog",
                    "@position":[0,3,3]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close6 View of LocalFog",
                    "@position":[0,3,-5]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Close7 View of LocalFog",
                    "@position":[0,3,-13]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Left View of LocalFog",
                    "@orientation":[0,1,0,-1.57],
                    "@position":[-40,3,0]
                  }
                },
                { "Viewpoint":
                  {
                    "@centerOfRotation":[0,3,0],
                    "@description":"Right View of LocalFog",
                    "@orientation":[0,1,0,1.57],
                    "@position":[40,3,0]
                  }
                },
                { "Transform":
                  {
                    "@DEF":"TextForNoLocalFogArea",
                    "@translation":[8,8,30],
                    "-children":[
                      { "Billboard":
                        {
                          "@axisOfRotation":[0,0,0],
                          "-children":[
                            { "Shape":
                              {
                                "-children":[
                                  {
                                    "#comment":"TODO adjust Text string and Box size, then set Material transparency='1'"
                                  }
                                ],
                                "-geometry":
                                  { "Text":
                                    {
                                      "@string":["Columns","Outside","LocalFog"],
                                      "-fontStyle":
                                        { "FontStyle":
                                          {
                                            "@family":["SANS"],
                                            "@justify":["MIDDLE","MIDDLE"],
                                            "@size":2,
                                            "@style":"BOLD"
                                          }
                                        }
                                    }
                                  },
                                "-appearance":
                                  { "Appearance":
                                    {
                                      "-material":
                                        { "Material":
                                          {
                                            "@diffuseColor":[0.9,0.9,0.9]
                                          }
                                        }
                                    }
                                  }
                              }
                            },
                            { "Shape":
                              {
                                "-children":[
                                  {
                                    "#comment":"Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible."
                                  }
                                ],
                                "-geometry":
                                  { "Box":
                                    {
                                      "@size":[9,6,0.001]
                                    }
                                  },
                                "-appearance":
                                  { "Appearance":
                                    {
                                      "-material":
                                        { "Material":
                                          {
                                            "@transparency":0.8
                                          }
                                        }
                                    }
                                  }
                              }
                            },
                            {
                              "#comment":"Author TODO: for interactive scenes, the TouchSensor output is easily applied as an animation trigger by adding a DEF name and a connecting ROUTE."
                            },
                            { "TouchSensor":
                              {
                                "@description":"These columns are normal, because they are outside LocalFog."
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                { "Transform":
                  {
                    "@DEF":"TextofLocalFog",
                    "@translation":[-8,8,30],
                    "-children":[
                      { "Billboard":
                        {
                          "@axisOfRotation":[0,0,0],
                          "-children":[
                            { "Shape":
                              {
                                "-children":[
                                  {
                                    "#comment":"TODO adjust Text string and Box size, then set Material transparency='1'"
                                  }
                                ],
                                "-geometry":
                                  { "Text":
                                    {
                                      "@string":["Columns","Inside","LocalFog"],
                                      "-fontStyle":
                                        { "FontStyle":
                                          {
                                            "@family":["SANS"],
                                            "@justify":["MIDDLE","MIDDLE"],
                                            "@size":2,
                                            "@style":"BOLD"
                                          }
                                        }
                                    }
                                  },
                                "-appearance":
                                  { "Appearance":
                                    {
                                      "-material":
                                        { "Material":
                                          {
                                            "@diffuseColor":[0.9,0.9,0.9]
                                          }
                                        }
                                    }
                                  }
                              }
                            },
                            { "Shape":
                              {
                                "-children":[
                                  {
                                    "#comment":"Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible."
                                  }
                                ],
                                "-geometry":
                                  { "Box":
                                    {
                                      "@size":[9,6,0.001]
                                    }
                                  },
                                "-appearance":
                                  { "Appearance":
                                    {
                                      "-material":
                                        { "Material":
                                          {
                                            "@transparency":0.8
                                          }
                                        }
                                    }
                                  }
                              }
                            },
                            {
                              "#comment":"Author TODO: for interactive scenes, the TouchSensor output is easily applied as an animation trigger by adding a DEF name and a connecting ROUTE."
                            },
                            { "TouchSensor":
                              {
                                "@description":"LocalFog of these columns should vary depending on center of LocalFog."
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                { "Transform":
                  {
                    "@DEF":"ColumnsOfLocalFogArea",
                    "@translation":[8,-0.1,0],
                    "-children":[
                      {
                        "#comment":"Columns outside LocalFog subtree"
                      },
                      { "Inline":
                        {
                          "@DEF":"Columns",
                          "@url":["../../../Vrml2Sourcebook/Chapter23Fog/Figure23_1FogTestWorld.x3d","https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter23Fog/Figure23_1FogTestWorld.x3d","../../../Vrml2Sourcebook/Chapter23Fog/Figure23_1FogTestWorld.wrl","https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter23Fog/Figure23_1FogTestWorld.wrl"]
                        }
                      }
                    ]
                  }
                },
                { "Transform":
                  {
                    "@DEF":"GreenBaseGroundOutLine",
                    "@translation":[0,-0.4,0],
                    "-children":[
                      { "Shape":
                        {
                          "-geometry":
                            { "Box":
                              {
                                "@size":[100,0.3,100]
                              }
                            },
                          "-appearance":
                            { "Appearance":
                              {
                                "-material":
                                  { "Material":
                                    {
                                      "@ambientIntensity":0.5,
                                      "@emissiveColor":[0.2,0.8,0.2]
                                    }
                                  }
                              }
                            }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          { "Group":
            {
              "@DEF":"MovingObjectsWithLocalFog",
              "-children":[
                {
                  "#comment":"Transform of Local Fog: Moving back and forth along z axis"
                },
                { "Transform":
                  {
                    "@DEF":"BackandForthTransform",
                    "-children":[
                      {
                        "#comment":"Moving Local Fog"
                      },
                      { "LocalFog":
                        {
                          "@visibilityRange":40
                        }
                      },
                      {
                        "#comment":"Columns inside Local Fog"
                      },
                      { "Transform":
                        {
                          "@DEF":"ColumnsGroundAndTextInLocalFog",
                          "@translation":[-8,-0.1,0],
                          "-children":[
                            { "Transform":
                              {
                                "@DEF":"ForthandBackTransform",
                                "-children":[
                                  { "Inline":
                                    {
                                      "@USE":"Columns"
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@DEF":"GreenBaseGround",
                                      "@translation":[8,-0.1,0],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-geometry":
                                              { "Box":
                                                {
                                                  "@size":[90,0.3,90]
                                                }
                                              },
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "-material":
                                                    { "Material":
                                                      {
                                                        "@ambientIntensity":0.5,
                                                        "@emissiveColor":[0.2,0.8,0.2]
                                                      }
                                                    }
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                { "TimeSensor":
                  {
                    "@DEF":"BackandForthTimeInterval",
                    "@cycleInterval":8,
                    "@loop":true
                  }
                },
                {
                  "#comment":"Moving z axis"
                },
                { "PositionInterpolator":
                  {
                    "@DEF":"BackandForthPosition",
                    "@key":[0,0.25,0.5,0.75,1],
                    "@keyValue":[0,0,30,0,0,0,0,0,-30,0,0,0,0,0,30]
                  }
                },
                { "PositionInterpolator":
                  {
                    "@DEF":"ForthandBackPosition",
                    "@key":[0,0.25,0.5,0.75,1],
                    "@keyValue":[0,0,-30,0,0,0,0,0,30,0,0,0,0,0,-30]
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"fraction_changed",
                    "@fromNode":"BackandForthTimeInterval",
                    "@toField":"set_fraction",
                    "@toNode":"BackandForthPosition"
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"fraction_changed",
                    "@fromNode":"BackandForthTimeInterval",
                    "@toField":"set_fraction",
                    "@toNode":"ForthandBackPosition"
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"value_changed",
                    "@fromNode":"BackandForthPosition",
                    "@toField":"translation",
                    "@toNode":"BackandForthTransform"
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"value_changed",
                    "@fromNode":"ForthandBackPosition",
                    "@toField":"translation",
                    "@toNode":"ForthandBackTransform"
                  }
                }
              ]
            }
          },
          { "Group":
            {
              "@DEF":"MovingObjectsNoFog",
              "-children":[
                {
                  "#comment":"Transform of Local Fog: Moving back and forth along z axis"
                },
                { "Transform":
                  {
                    "@DEF":"BackandForthTransform2",
                    "-children":[
                      {
                        "#comment":"Center of Local Fog"
                      },
                      { "Transform":
                        {
                          "@DEF":"TextofLocalFogCenter",
                          "@rotation":[1,0,0,0],
                          "@translation":[0,2,2],
                          "-children":[
                            { "Billboard":
                              {
                                "@axisOfRotation":[0,0,0],
                                "-children":[
                                  { "Shape":
                                    {
                                      "-appearance":
                                        { "Appearance":
                                          {
                                            "-material":
                                              { "Material":
                                                {
                                                  "@diffuseColor":[0.8,0.8,0]
                                                }
                                              }
                                          }
                                        },
                                      "-geometry":
                                        { "Text":
                                          {
                                            "@string":["LocalFog","Center"],
                                            "-fontStyle":
                                              { "FontStyle":
                                                {
                                                  "@DEF":"CenterFontStyle",
                                                  "@justify":["MIDDLE","MIDDLE"],
                                                  "@style":"BOLD"
                                                }
                                              }
                                          }
                                        }
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      { "Shape":
                        {
                          "@DEF":"LocalFogCenter",
                          "-appearance":
                            { "Appearance":
                              {
                                "-material":
                                  { "Material":
                                    {
                                      "@diffuseColor":[1,1,0]
                                    }
                                  }
                              }
                            },
                          "-geometry":
                            { "Sphere":
                              {
                                "@radius":0.5
                              }
                            }
                        }
                      },
                      {
                        "#comment":"3D Boundary of Local Fog"
                      },
                      { "Transform":
                        {
                          "@DEF":"LocalFog3dBoundary",
                          "@scale":[40,40,40],
                          "@translation":[0,0.1,0],
                          "-children":[
                            { "Group":
                              {
                                "@DEF":"SphereMeshHorizontal",
                                "-children":[
                                  { "Shape":
                                    {
                                      "-appearance":
                                        { "Appearance":
                                          {
                                            "@DEF":"BoundaryAppearance",
                                            "-material":
                                              { "Material":
                                                {
                                                  "@DEF":"BoundaryLineMaterial",
                                                  "@emissiveColor":[0.1,0.1,0.5]
                                                }
                                              }
                                          }
                                        },
                                      "-geometry":
                                        { "Circle2D":
                                          {
                                          }
                                        }
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,0.25],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.97
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,0.5],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.87
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,0.75],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.66
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,-0.25],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.97
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,-0.5],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.87
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  { "Transform":
                                    {
                                      "@translation":[0,0,-0.75],
                                      "-children":[
                                        { "Shape":
                                          {
                                            "-appearance":
                                              { "Appearance":
                                                {
                                                  "@USE":"BoundaryAppearance"
                                                }
                                              },
                                            "-geometry":
                                              { "Circle2D":
                                                {
                                                  "@radius":0.66
                                                }
                                              }
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            },
                            { "Transform":
                              {
                                "@rotation":[1,0,0,1.57],
                                "-children":[
                                  { "Group":
                                    {
                                      "@USE":"SphereMeshHorizontal"
                                    }
                                  }
                                ]
                              }
                            },
                            { "Transform":
                              {
                                "@rotation":[0,1,0,1.57],
                                "-children":[
                                  { "Group":
                                    {
                                      "@USE":"SphereMeshHorizontal"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        "#comment":"2D Boundary of Local Fog"
                      },
                      { "Transform":
                        {
                          "@DEF":"LocalFogBoundary",
                          "@rotation":[1,0,0,1.57],
                          "@translation":[0,0.1,0],
                          "-children":[
                            { "Shape":
                              {
                                "-appearance":
                                  { "Appearance":
                                    {
                                      "-material":
                                        { "Material":
                                          {
                                            "@USE":"BoundaryLineMaterial"
                                          }
                                        },
                                      "-lineProperties":
                                        { "LineProperties":
                                          {
                                            "@linewidthScaleFactor":3
                                          }
                                        }
                                    }
                                  },
                                "-geometry":
                                  { "Circle2D":
                                    {
                                      "@radius":40
                                    }
                                  }
                              }
                            },
                            { "Transform":
                              {
                                "@DEF":"CrossHatchRotation",
                                "@rotation":[0,0,1,0.785],
                                "-children":[
                                  { "Shape":
                                    {
                                      "-appearance":
                                        { "Appearance":
                                          {
                                            "-material":
                                              { "Material":
                                                {
                                                  "@USE":"BoundaryLineMaterial"
                                                }
                                              }
                                          }
                                        },
                                      "-geometry":
                                        { "LineSet":
                                          {
                                            "@vertexCount":[2,2,2,2,2,2],
                                            "-coord":
                                              { "Coordinate":
                                                {
                                                  "@point":[40,0,0,-40,0,0,0,40,0,0,-40,0,20,34.599998,0,20,-34.599998,0,-20,34.599998,0,-20,-34.599998,0,34.599998,20,0,-34.599998,20,0,34.599998,-20,0,-34.599998,-20,0]
                                                }
                                              }
                                          }
                                        }
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      { "Transform":
                        {
                          "@DEF":"TextofLocalFogBoundary",
                          "@rotation":[1,0,0,0],
                          "@translation":[0,0.5,40],
                          "-children":[
                            { "Billboard":
                              {
                                "@axisOfRotation":[0,0,0],
                                "-children":[
                                  { "Shape":
                                    {
                                      "-appearance":
                                        { "Appearance":
                                          {
                                            "-material":
                                              { "Material":
                                                {
                                                  "@diffuseColor":[0.2,0.2,1]
                                                }
                                              }
                                          }
                                        },
                                      "-geometry":
                                        { "Text":
                                          {
                                            "@string":["Visibility Range of LocalFog"],
                                            "-fontStyle":
                                              { "FontStyle":
                                                {
                                                  "@USE":"CenterFontStyle"
                                                }
                                              }
                                          }
                                        }
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                { "ROUTE":
                  {
                    "@fromField":"value_changed",
                    "@fromNode":"BackandForthPosition",
                    "@toField":"translation",
                    "@toNode":"BackandForthTransform2"
                  }
                }
              ]
            }
          },
          { "Group":
            {
              "@DEF":"ControlButtons",
              "-children":[
                {
                  "#comment":"HUD : Colormap Part"
                },
                {
                  "#comment":"Simple Heads-Up Display (HUD) Prototype Manages the display of a HUD and maintains its position on the screen. Changes to fieldOfView (in Viewpoint node) will change screen position Fields: hudSize Size of HUD (initializeOnly - SFVec3f) default=\"1 1 .01\" hudColor Color of HUD (inputOutput - SFColor) default=\"1 1 1\" screenOffset Offset of HUD. This field positions the HUD on the display screen (inputOutput - SFVec3f) default=\"0 0 0\" hudGeometry Geometry to be placed on the HUD. Origin is center of HUD. (inputOutput - MFNode) default = [] position_changed Current viewer location (outputOnly - SFVec3f) orientation_changed Current viewer orientation (outputOnly - SFRotation)"
                },
                { "ExternProtoDeclare":
                  {
                    "@name":"HeadsUpDisplay",
                    "@appinfo":"Heads-up display (HUD) keeps child geometry aligned on screen in a consistent location",
                    "@url":["../../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay","https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay","../../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay","https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay"],
                    "field": [
                      {
                        "@name":"screenOffset",
                        "@accessType":"inputOutput",
                        "@appinfo":"offset position for HUD relative to current view location, default 0 0 -5",
                        "@type":"SFVec3f"
                      },
                      {
                        "@name":"children",
                        "@accessType":"inputOutput",
                        "@appinfo":"X3D content positioned at HUD offset",
                        "@type":"MFNode"
                      },
                      {
                        "@name":"position_changed",
                        "@accessType":"outputOnly",
                        "@appinfo":"HUD position update (in world coordinates) relative to original location",
                        "@type":"SFVec3f"
                      },
                      {
                        "@name":"orientation_changed",
                        "@accessType":"outputOnly",
                        "@appinfo":"HUD orientation update relative to original location",
                        "@type":"SFRotation"
                      }
                    ]
                  }
                },
                { "ProtoInstance":
                  {
                    "@name":"HeadsUpDisplay",
                    "@DEF":"HeadsUpDisplayInstance",
                    "-children":[
                      {
                        "#comment":"example: upper left-hand corner of screen (x=-2, y=1) and set back z=-5 from user view"
                      }
                    ],
                    "fieldValue": [
                      {
                        "@name":"screenOffset",
                        "@value":[0,0,-5]
                      },
                      {
                        "@name":"children",
                        "-children":[
                          { "Transform":
                            {
                              "@DEF":"PauseButton",
                              "@translation":[1.13,1.7,0],
                              "-children":[
                                { "Shape":
                                  {
                                    "-children":[
                                      {
                                        "#comment":"Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible."
                                      }
                                    ],
                                    "-geometry":
                                      { "Box":
                                        {
                                          "@size":[0.4,0.25,0.001]
                                        }
                                      },
                                    "-appearance":
                                      { "Appearance":
                                        {
                                          "-material":
                                            { "Material":
                                              {
                                                "@diffuseColor":[1,0.5,0.5]
                                              }
                                            }
                                        }
                                      }
                                  }
                                },
                                { "Transform":
                                  {
                                    "@translation":[-0.06,-0.06,0.2],
                                    "-children":[
                                      { "Shape":
                                        {
                                          "-geometry":
                                            { "Text":
                                              {
                                                "@string":["Pause"],
                                                "-fontStyle":
                                                  { "FontStyle":
                                                    {
                                                      "@family":["SANS"],
                                                      "@justify":["MIDDLE","MIDDLE"],
                                                      "@size":0.12,
                                                      "@style":"BOLD"
                                                    }
                                                  }
                                              }
                                            },
                                          "-appearance":
                                            { "Appearance":
                                              {
                                                "-material":
                                                  { "Material":
                                                    {
                                                      "@emissiveColor":[0.894118,0.819608,1]
                                                    }
                                                  }
                                              }
                                            }
                                        }
                                      }
                                    ]
                                  }
                                },
                                { "TouchSensor":
                                  {
                                    "@DEF":"PauseButtonSensor",
                                    "@description":"Pause"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"touchTime",
                                    "@fromNode":"PauseButtonSensor",
                                    "@toField":"pauseTime",
                                    "@toNode":"BackandForthTimeInterval"
                                  }
                                }
                              ]
                            }
                          },
                          { "Transform":
                            {
                              "@DEF":"ResumeButton",
                              "@translation":[1.6,1.7,0],
                              "-children":[
                                { "Shape":
                                  {
                                    "-geometry":
                                      { "Box":
                                        {
                                          "@size":[0.45,0.25,0.001]
                                        }
                                      },
                                    "-appearance":
                                      { "Appearance":
                                        {
                                          "-material":
                                            { "Material":
                                              {
                                                "@diffuseColor":[0.5,1,0.5]
                                              }
                                            }
                                        }
                                      }
                                  }
                                },
                                { "Transform":
                                  {
                                    "@translation":[-0.06,-0.06,0.2],
                                    "-children":[
                                      { "Shape":
                                        {
                                          "-geometry":
                                            { "Text":
                                              {
                                                "@string":["Resume"],
                                                "-fontStyle":
                                                  { "FontStyle":
                                                    {
                                                      "@family":["SANS"],
                                                      "@justify":["MIDDLE","MIDDLE"],
                                                      "@size":0.12,
                                                      "@style":"BOLD"
                                                    }
                                                  }
                                              }
                                            },
                                          "-appearance":
                                            { "Appearance":
                                              {
                                                "-material":
                                                  { "Material":
                                                    {
                                                      "@emissiveColor":[0.894118,0.819608,1]
                                                    }
                                                  }
                                              }
                                            }
                                        }
                                      }
                                    ]
                                  }
                                },
                                { "TouchSensor":
                                  {
                                    "@DEF":"ResumeButtonSensor",
                                    "@description":"Resume"
                                  }
                                },
                                { "ROUTE":
                                  {
                                    "@fromField":"touchTime",
                                    "@fromNode":"ResumeButtonSensor",
                                    "@toField":"resumeTime",
                                    "@toNode":"BackandForthTimeInterval"
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
    }
  }
}