{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Immersive",
    "@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":"DesignPatternsApparelMedicalSkinLayers.x3d"
          },
          {
            "@name":"description",
            "@content":"Design patterns for skin and apparel using HAnim2 standard in X3D4"
          },
          {
            "@name":"creator",
            "@content":"Don Brutzman"
          },
          {
            "@name":"creator",
            "@content":"Joe D. Williams"
          },
          {
            "@name":"creator",
            "@content":"Dick Puk"
          },
          {
            "@name":"created",
            "@content":"23 December 2022"
          },
          {
            "@name":"modified",
            "@content":"18 May 2024"
          },
          {
            "@name":"reference",
            "@content":"DesignPatternsApparelVariations.txt"
          },
          {
            "@name":"reference",
            "@content":"HAnim2 Part 1, HAnim architecture, 4.3 Humanoid object https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#HumanoidObject"
          },
          {
            "@name":"reference",
            "@content":"HAnim2 Part 1, HAnim architecture, E.4 Multiple humanoids per file https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/Guidelines.html#MultipleHumanoidsPerFile"
          },
          {
            "@name":"reference",
            "@content":"X3D4 Architecture, clause 26 HAnim component, 26.3.2 HAnimHumanoid https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimHumanoid"
          },
          {
            "@name":"warning",
            "@content":"Under development. This template example does not produce renderable HAnim models."
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayers.x3d"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@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":"HAnimHumanoid skin design patterns for apparel, medical"
            }
          },
          { "Background":
            {
              "@skyColor":[0,0.6,0.6]
            }
          },
          { "Group":
            {
              "@DEF":"MultipleHumanoids",
              "-value":[
                { "MetadataString":
                  {
                    "@name":"HAnimArchitecture",
                    "@reference":"https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/Guidelines.html#MultipleHumanoidsPerFile",
                    "@value":["E.4 Multiple humanoids per file"]
                  }
                }
              ],
              "-children":[
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SimpleSkeleton",
                    "@DEF":"a_SimpleSkeleton",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum",
                                "-children":[
                                  { "Shape":
                                    {
                                      "@DEF":"JointVisualization"
                                    }
                                  },
                                  { "Shape":
                                    {
                                      "@DEF":"SegmentVisualization"
                                    }
                                  },
                                  { "HAnimSite":
                                    {
                                      "@name":"feature01_tip",
                                      "@DEF":"a_feature01_tip",
                                      "-children":[
                                        { "Shape":
                                          {
                                            "@DEF":"SiteVisualization"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SimpleSkeletonMesh",
                    "@DEF":"b_SimpleSkeletonMesh",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum",
                                "-children":[
                                  { "Shape":
                                    {
                                      "-geometry":
                                        { "IndexedFaceSet":
                                          {
                                            "@DEF":"SegmentBoneMesh"
                                          }
                                        }
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SkinIndexedGeometry",
                    "@DEF":"c_SkinIndexedGeometry",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-skin":[
                      { "IndexedFaceSet":
                        {
                          "@DEF":"SkinMeshIFS"
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SkinShapeIndexedGeometry",
                    "@DEF":"d_SkinShapeIndexedGeometry",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-skin":[
                      { "Shape":
                        {
                          "-geometry":
                            { "IndexedFaceSet":
                              {
                                "@USE":"SkinMeshIFS"
                              }
                            }
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SkinSwitchShapeIndexedGeometry",
                    "@DEF":"e_SkinSwitchShapeIndexedGeometry",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-children":[
                      {
                        "#comment":"TODO show X3D4.0 addition of <Switch DEF='AlternativeSkins' containerField='skin'>"
                      }
                    ],
                    "-skin":[
                      { "Shape":
                        {
                          "-geometry":
                            { "IndexedFaceSet":
                              {
                                "@DEF":"IndexedSkinMeshIFS",
                                "-coord":
                                  { "Coordinate":
                                    {
                                      "@DEF":"SkinMeshCoordinate"
                                    }
                                  }
                              }
                            }
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"similarly for LOD"
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"SynthesizedSkinShapeIndexedTwoPartGeometry",
                    "@DEF":"f_SynthesizedSkinShapeIndexedTwoPartGeometry",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-skin":[
                      { "Shape":
                        {
                          "-geometry":
                            { "IndexedFaceSet":
                              {
                                "@DEF":"TwoPartIndexedSkinMesh",
                                "-coord":
                                  { "Coordinate":
                                    {
                                      "@DEF":"TwoPartSkinMesh"
                                    }
                                  }
                              }
                            }
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"ApparelSkinIndexedGeometryMultipleShapes",
                    "@DEF":"g_ApparelSkinIndexedGeometryMultipleShapes",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-skin":[
                      { "Shape":
                        {
                        }
                      }
                    ],
                    "-children":[
                      {
                        "#comment":"allow multiple Shape nodes with containerField='apparel', one for each layer of clothing"
                      },
                      {
                        "#comment":"TODO proposed for X3D4.1 <Shape containerField='apparel'/>"
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                },
                { "HAnimHumanoid":
                  {
                    "@name":"AnatomySkinIndexedGeometryMultipleShapes",
                    "@DEF":"h_AnatomySkinIndexedGeometryMultipleShapes",
                    "@version":"2.0",
                    "-skeleton":[
                      { "HAnimJoint":
                        {
                          "@name":"humanoid_root",
                          "-children":[
                            { "HAnimSegment":
                              {
                                "@name":"sacrum"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "-children":[
                      {
                        "#comment":"allow multiple Shape nodes with containerField='skin', one for each layer of skin"
                      }
                    ],
                    "-skin":[
                      { "Shape":
                        {
                        }
                      }
                    ]
                  }
                },
                {
                  "#comment":"=============================="
                }
              ]
            }
          },
          { "Viewpoint":
            {
              "@DEF":"ViewHelpText",
              "@description":"Select text to see website",
              "@position":[0,0,12]
            }
          },
          {
            "#comment":"Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip"
          },
          { "Anchor":
            {
              "@description":"DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approaches",
              "@parameter":["target=blank"],
              "@url":["https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayersIndex.html"],
              "-children":[
                { "Shape":
                  {
                    "-children":[
                      {
                        "#comment":"TODO adjust Text string and Box size, then set Material transparency='1'"
                      }
                    ],
                    "-geometry":
                      { "Text":
                        {
                          "@string":["DesignPatternsApparelMedicalSkinLayers.x3d","explores potential apparel approaches"],
                          "-fontStyle":
                            { "FontStyle":
                              {
                                "@family":["SANS"],
                                "@justify":["MIDDLE","MIDDLE"],
                                "@size":0.6,
                                "@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":[11,2,0.001]
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-material":
                            { "Material":
                              {
                                "@transparency":1
                              }
                            }
                        }
                      }
                  }
                }
              ]
            }
          }
        ]
    }
  }
}