<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>We now have a recovered example of skin mesh:</div><div><ul><li>Joe shared an earlier model that was humongous
(over 50,000 coordinate x-y-z values and over 50,000 color r-g-b values)... using X3D-Edt global search and replace for some values (with sixteen digits of precision, mostly imperceptible) and some node-editing panes, I was able to reduce precision to 4 digits after decimal place. Now sharable, still with same number of coordinates and colors</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTcolorsIndex.html">Humanoid Animation X3D Examples Archive, Medical, Body Skin Indexed Face Set NISTcolors</a></li><li>Joe D. Williams applied colors to this large mesh, helping to identify different sections</li><li>Screenshots from browser rendering using X_ITE</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTcolorsIndex.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTcolorsIndex.html</a></li></ul><div><img src="cid:ii_mnnlugbi2" alt="image.png" width="224" height="123" style="margin-right: 0px;"><br></div><div><br></div><div>The original example is a single giant mesh so the structures (including eyeballs) are not very extractable. Perhaps someday we will have the capability to assign vertex indices to a set of HAnimJoint nodes in an HAnimHumanoid for animation. Plain mesh also available:</div></div><div><ul><li>X3D Example Archives: Humanoid Animation, Medical, Body Skin Indexed Face Set NIST</li><li>Human body skin made of IndexedFaceSet polygons, gender neutral, semi-transparent for use with MedicalMetadata and MedicalMetadataViewer.x3d.</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTIndex.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTIndex.html</a></li></ul><div><img src="cid:ii_mnnltjow1" alt="image.png" width="224" height="138" style="margin-right: 0px;"><br></div>Further progress on LOA5:</div><div><br></div><div>Have implemented all bones in LOA5 using Inline nodes. Have similarly animated implemented all bones in LOA5 using InlineGeometry nodes, with careful work continuing to recenter/translate each of those meshes.</div><div><ul><li>X3D Example Archives: Humanoid Animation, Bones, All Bones LOA 5 Skeletons</li><li>Two HAnim LOA4 skeletons that integrate all bones using HAnimJoint and HAnimSegment nodes, composing either external models or individual meshes. Left-side HAnimHumanoid skeleton created with Inline nodes where translation, center, Appearance, and Material values are defined in each external model. Right-side HAnimHumanoid skeleton shows InlineGeometry loading of meshes, with alternate translation, center, Appearance and Material values defined locally. All units are in meters.</li><li><span style="color:rgb(0,0,0);font-family:"Times New Roman""><</span><span class="element" style="color:navy;font-family:"Times New Roman"">meta</span><span style="color:rgb(0,0,0);font-family:"Times New Roman""> </span><span class="gmail-attribute" style="color:green;font-family:"Times New Roman"">name</span><span style="color:rgb(0,0,0);font-family:"Times New Roman"">='</span><b class="gmail-warning" style="color:rgb(204,85,0);background:rgb(255,250,160);font-family:"Times New Roman""> warning </b><span style="color:rgb(0,0,0);font-family:"Times New Roman"">' </span><span class="gmail-attribute" style="color:green;font-family:"Times New Roman"">content</span><span style="color:rgb(0,0,0);font-family:"Times New Roman"">='</span><b class="gmail-warning" style="color:rgb(204,85,0);background:rgb(255,250,160);font-family:"Times New Roman""> work in progress </b><span style="color:rgb(0,0,0);font-family:"Times New Roman"">'/> (recentering bones one at a time in right-hand blue mesh skeleton)</span></li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html</a></li><li>Original HAnimHumanoid model JinLOA4 also shown for height and size comparison.</li></ul><div><img src="cid:ii_mnnlqphu0" alt="image.png" width="224" height="126" style="margin-right: 0px;"><br></div></div><div><br></div><div>The HAnim draft specification received some small revisions for precision to match this implementation + evaluation effort. The key point for adding LOA-5 is that we can include all bones and relevant cartilage, plus further head-related features (e.g. ears, tongue, etc.) to align with emerging work on avatar commonality by Metaverse Standards Forum (MSF). Given the excellent progress, we will discuss correctness/completeness and elevation of several sections from Editors Note to Prose.</div><div><ul><li>HAnim Architecture draft v2.1, claus 4 Concepts, <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5" style="font-family:Verdana,Arial,Helvetica,sans-serif"><span class="editorsNote" title="under discussion" style="background-color:lightcyan">4.11.6.6 LOA‑5 hierarchy</span></a></li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5</a></li></ul><div>Many thanks to Michalis Kamburelis for implementing InlineGeometry node, which gives us another browser for testing. Super helpful complement to the already-excellent Sunrize X_ITE tool as well.</div><div><br></div><div><span class="sewj4k8hjyo4v2k"></span><span class="sewnguneqy4cvml"></span><span class="sewj4k8hjyo4v2k"></span><span class="sewnguneqy4cvml"></span><img src="cid:ii_mnnmcz805" alt="image.png" width="224" height="151" style="margin-right: 0px;"><span class="sewj4k8hjyo4v2k"></span><span class="sewnguneqy4cvml"></span><br></div><div><br></div><div>Many thanks to Joe Williams for close work together on design and implementation of these highly detailed models.</div></div><div><br></div><div>Have fun with HAnim and X3D! 😀 👉 🚶🏿♂️</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Mar 17, 2026 at 4:00 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Summary: we now have nearly every bone in the human body easily available.</div><div><br></div><div>Several weeks of careful refinements and fine-tuning are now complete, including rename of directory name (from Skeleton to Bones) since everything in there is a collection of bones. Further touchup questions comments are always welcome.</div><div><ul><li>X3D Example Archives: Humanoid Animation, Bones (279 models total)</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones</a></li></ul><div><table id="m_-8094019106042363470gmail-ChapterPackageDescription" align="center" width="85%" summary="" border="0" cellpadding="0" style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><tbody><tr align="center"><td><table border="0" width="100%"><tbody><tr><td align="left" rowspan="2" cellpadding="10"></td><td><p>The Bones example models are simple geometric shapes of bones and cartilage, with no HAnim structural nodes included. They are suitable for composition and reuse in HAnim models by loading via either Inline or InlineGeometry nodes.</p><p>These models are improved versions of Shape geometry found in the <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/index.html" target="_blank">originals subdirectory</a> with naming changes recorded in <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/CHANGELOG.md" target="_blank">CHANGELOG.md</a>.</p><p>These examples were first published in <a href="https://www.web3d.org/x3d/content/examples/Basic/Medical" target="_blank">X3D Example Archives: Basic, Medical</a> and support the work of the <a href="https://www.web3d.org/working-groups/hanim" target="_blank">Web3D Humanoid Animation (HAnim) Working Group</a>.</p><p>The majority of these bones are connected to animatable joints and can be found, with the same names, in HAnim Level of Articulation (LOA)-4, defined at <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy4" target="_blank">Humanoid Animation (HAnim) Architecture specification draft version 4.1, clause 4 Concepts, section 4.11.6.5 LOA‑4 hierarchy</a>. Of future note: a number of models listed here (such as teeth and cartilage) might someday get added to the HAnim Specification in a new section defining LOA-5.</p><p>TODO: rename cartilage models; continue adding models for LOA-4 segments that are combinations of bones. Missing: c1disc.x3d r_patella.x3d l_patella.x3d l_tarsal_distal_phalanx_5.x3d l_carpal.x3d r_carpal.x3d.</p></td></tr></tbody></table></td></tr></tbody></table></div></div><div>There are also nice native-X3D user interface within each individual bone that allows simple in-depth exploration of large collections.</div><div><ul><li>TouchSensor selection isOver: display bone name as tooltip, show a scoped blue light highlighting the Shape of interest</li><li>TouchSensor selection isActive: bind a hidden Viewpoint providing a close-up view of selected bone or tooth</li></ul><div>Based on group discussion, we collected cap and root for each tooth together and renamed each according to functionality plus ID numbers from both U.S. UNS and international ISO standards. You can view the top row of teeth as part of the skull model, and bottom teeth as part of the jaw.x3d model.</div></div><div><ul><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/jawX_ITE.html" target="_blank">jaw.x3d</a> for lower row of teeth, and <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/skullX_ITE.html" target="_blank">skull.x3d</a> for upper row of teeth</li><li><a href="https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg" target="_blank">https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg</a></li></ul></div><div>So.... we do not need to copy/paste large geometry shapes anymore when a bone is needed. Continuing work will begin streamlining a number of skeleton models in the archives, first using Inline and then InlineGeometry to dem bones.</div><div><br></div><div>This excellent asset is ready for re-use. Again thanks for all contributions to this collected asset over the past 12 years, especially Joe Williams, John Carlson and Damon Hernandez.</div><div><br></div><div>Have fun with HAnim and X3D! 😀 🦴 🩻</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div>p.s. the initial work-in-progress message follows, with corrected directory name applied.<div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 9, 2026 at 2:12 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com" target="_blank">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>I have done a ton of work on the bone models, with excellent results so far. Thanks Joe for keeping a close eye on this heavy lifting!</div><div><br></div><div>Perhaps half of the nearly 300 models have been renamed to match the HAnim segment names. Example: loscoxae.x3d renamed to l_hip.x3d</div><div><br></div><div>Updated build is now available at</div><div><ul><li style="margin-left:15px">X3D Example Archives: Humanoid Animation, Bones</li><li style="margin-left:15px"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones</a></li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">The Skeleton examples are simple geometric shapes of bones and cartilage, with no HAnim structural nodes included. They are suitable for composition and reuse in HAnim models by loading via either Inline or InlineGeometry nodes.</p><p style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">These models are improved versions of Shape geometry found in the <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/index.html" target="_blank">originals subdirectory</a> with naming changes recorded in <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/CHANGELOG.md" target="_blank">CHANGELOG.md</a>.</p></blockquote></div><div>Am keen to show multiple improvements afternoon on our group call.</div><div><ul><li style="margin-left:15px">Renamed models for consistency with HAnim specification, retaining all originals unmodified</li><li style="margin-left:15px">Consistent reuse is possible with Inline, gaining TouchSensor identification and possibly other features</li><li style="margin-left:15px">Alternative reuse is also possible using InlineGeometry, solely retrieving geometry mesh</li></ul><div><b>Current design approach for model retrieval</b>, which we can continue to use:</div></div><div><ul><li style="margin-left:15px">HAnimHumanoid</li><ul><li style="margin-left:15px">HAnimJoint</li><ul><li style="margin-left:15px">HAnimSegment</li><ul><li style="margin-left:15px"><b>Inline</b> <span style="background-color:rgb(255,242,204)">HumanoidAnimation/Bones/c1.x3d</span></li></ul></ul></ul></ul><div>Aside from teeth and cartilage, which still need normalization, the names are pretty stable now. Thus we can begin updating our various skeleton models, and avoid error-prone copying of large blocks of geometry in the future.</div><div><br></div><div>Now let's look at the scene-graph pattern within the models themselves. Inside each model is the structure</div><div><ul><li style="margin-left:15px">WorldInfo title="c1.x3d"</li><li style="margin-left:15px">TouchSensor description="c1"</li><li style="margin-left:15px">Transform
DEF="c1"</li><ul><li style="margin-left:15px">Shape</li><ul><li style="margin-left:15px">Appearance</li><ul><li style="margin-left:15px">Material DEF="BoneMaterial" (or CartilageMaterial or ToothMaterial) ...</li></ul><li style="margin-left:15px">IndexedFaceSet DEF="c1_geometry"</li><ul><li style="margin-left:15px">Coordinate DEF="c1_coordinate" </li><li style="margin-left:15px"># these coordinates are high in the air for a particular human</li></ul></ul></ul></ul></div><div><div>Next... am thinking we might further center the geometry in these models by moving the offset values currently contained in the Coordinate values, without breaking the essential HAnim design requirements. </div></div><div><br></div><div>Possible, compatible alternative design for models:</div></div><div><ul><li style="margin-left:15px">WorldInfo title="c1.x3d"</li><li style="margin-left:15px">TouchSensor description="c1"</li><li style="margin-left:15px"><span style="background-color:rgb(255,255,255)">Transform
DEF="c1" </span><span style="background-color:rgb(255,242,204)">translation="offset values x, y, z"</span></li><ul><li style="margin-left:15px"><span style="background-color:rgb(255,242,204)"># translate this model Shape back by adding offset values, high in the air for a particular human</span></li><li style="margin-left:15px"><span style="background-color:rgb(255,242,204)">Viewpoint description="c1" position="appropriate local viewing offset"</span></li><li style="margin-left:15px">Shape</li><ul><li style="margin-left:15px">Appearance</li><ul><li style="margin-left:15px">Material DEF="BoneMaterial" ...</li></ul><li style="margin-left:15px">IndexedFaceSet DEF="c1_geometry"</li><ul><li style="margin-left:15px">Coordinate DEF="c1_coordinate" </li><li style="margin-left:15px"><span style="background-color:rgb(255,242,204)"># these coordinate values have offset values subtracted, thus centered around local origin</span></li></ul></ul></ul></ul>This modification would let our current model-reuse approach continue without change.</div><div><br></div><div>These models are primarily individual bones, such as each part of the head, or caps & roots of each tooth.</div></div></div></blockquote><div><br></div><div> (these Transform adjustments were subsequently computed and applied.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div><div>Joe and I will work on composite examples, for example chest.x3d and skull.x3d. Here are two initial composite examples which we have reviewed:</div><div><ul><li>X3D Example Archives: Humanoid Animation, Skeleton, teeth Bottom Row Comparison</li><li>bottom row of teeth caps and roots, comparing Inline model loading (on left) to duplicative copies of rescaled geometry used previously (on right)</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethBottomRowComparisonIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethBottomRowComparisonIndex.html</a></li></ul><div>and</div></div><div><ul><li>X3D Example Archives: Humanoid Animation, Skeleton, teeth Top Row Comparison</li><li>top row of teeth, comparing Inline model loading (on left) to duplicative copies of rescaled geometry used previously (on right)</li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethTopRowComparisonIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethTopRowComparisonIndex.html</a></li></ul></div><div>Meanwhile, and perhaps significantly at some future point this modification will also allow other HAnimHumanoid models to use InlineGeometry to position the model where they want inside an HAnimSegment. This means that even-more advanced HAnimHumanoid models of different sizes might easily re-use these model assets.</div><div><br></div><div><b>Potential compatible additional future approach for model retrieval:</b></div><div><ul><li style="margin-left:15px">HAnimHumanoid</li><ul><li style="margin-left:15px">HAnimJoint</li><ul><li style="margin-left:15px">HAnimSegment</li><ul><li style="margin-left:15px"><span style="background-color:rgb(217,234,211)">Transform # position, scale for current human's dimensions</span></li><ul><li style="margin-left:15px"><span style="background-color:rgb(217,234,211)">Shape</span></li><ul><li style="margin-left:15px"><span style="background-color:rgb(217,234,211)">Appearance</span></li><li style="margin-left:15px"><span style="background-color:rgb(217,234,211)"><b>InlineGeometry </b>HumanoidAnimation/Skeleton/c1.x3d# c1_geometry (which is centered at local origin)</span></li></ul></ul></ul></ul></ul></ul></div><div>or maybe even moving values into HAnimJoint - that will be a good experiment.</div><div><br></div><div>Evolution for group discussion:</div><div><ol><li>Does anyone know of preferable standard naming/numbering for teeth? Several schemes are out there.</li><li>Adding segment (bone) diagrams to the HAnim specification will be useful. </li><li>We might also consider defining an LOA-5 for teeth and cartilage, since (very) slight animation for those is possible too.</li></ol></div><div>So, it is an interesting and steady progression of possible HAnim capability. Happy to discuss when convenient,.</div><div><br></div><div>We are making excellent progress, I think. Looking forward to demonstrations today, thanks for considering the possibilities.</div></div><div><br></div><div>Have fun with the HAnim skeleton! 😃 🦴 🩻</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div></div>
</blockquote></div></div></div>
</blockquote></div>