<div dir="ltr">Terrific work renaming Don. I think we may need HAnimHumanoid, HAnimJoints and HAnimSegments, to complete the work. Happy to help with that, but I will likely use AI/LLM. I can also provide preliminary joints here, subject to more review, and renaming of .x3d urls if you have a list of file names to rename the existing urls to.<div><br><div><a href="https://github.com/coderextreme/medicalbones/blob/main/0scaled/0skeleton1AImapped.x3d">medicalbones/0scaled/0skeleton1AImapped.x3d at main · coderextreme/medicalbones</a></div><div><br></div><div><br></div><div> I prepared meiotic joints to try to fix the doppelganger issue in my .x3d to .glb problem, but probably made it worse, that has been fixed, so it might be important to revisit if we need dual joints in actuality. Humanoid/Medical/AnimatedAssembledHumanSkeleton.x3d offers complementary work, of course.</div></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Mar 17, 2026 at 6: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_5141750897538615102gmail-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>