<div><div dir="auto">Referred to x3d-public for answers.</div><div dir="auto"><br></div><div dir="auto">Question on EXPORT within a file and multiple EXPORTs for one DEF</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">---------- Forwarded message ---------<br>From: <strong class="gmail_sendername" dir="auto">John Carlson</strong> <span dir="auto"><<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>></span><br>Date: Mon, Apr 13, 2026 at 8:08 PM<br>Subject: Re: draft prose for HAnim Level of Articulation LOA-5<br><br></div><br><br><div><div dir="auto">One thing I don’t know is if the same HAnimHumanoid localDEF can be EXPORTed multiple times with renamed AS values, but it seems like an anti pattern, but useful if your customers have some kind of naming requirement, or you have legacy clients.</div><div dir="auto"><br></div><div dir="auto">I’m also wondering if EXPORTs can be chained within the same file. Can you EXPORT, and create an effective USEable value or alias in the local scene at the same time?</div><div dir="auto"><br></div><div dir="auto">Such things are in the specification, I’m guessing.</div></div><div></div><div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2026 at 7:10 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Fine questions to wonder about. Please look at the example.</div><div><ul><li>HAnim spec requires a consistent set of DEF labels that each match each name field, consistent for any HAnimHumanoid</li><li>Multiple HAnimHumanoid models can exist in the same X3D scene (as current example shows with DEF=hanim_* and DEF=hanimMesh*</li><li>Each can be EXPORTed and IMPORTed as is, without changes, or</li><li>Each EXPORT and IMPORT also has the option to rename if desired.</li></ul><div>A ton of bookkeeping to keep track of... this is why we are trying to simplify the task and let browsers automate child connections when unambiguous.</div></div><div><br></div><div>We will continue building examples of detailed capability, hopefully with simpler and simpler execution each time.</div></div><div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="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><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2026 at 4:18 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@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="auto">Can we also make the assumption that only the HAnimHumanoid needs to be DEFed?</div><div dir="auto"><br></div><div dir="auto">wondering!</div><div dir="auto"><br></div><div dir="auto">John <br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2026 at 4:10 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>Next short step in progress:</div><div><br></div><div>I have added a series of EXPORT statements to one of the LOA5 skeletons, as follows:</div><div><ul><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html" target="_blank">Humanoid Animation X3D Examples Archive, Bones, All Bones LOA 5 Skeletons</a></li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html</a></li></ul><div>see line 3286 of documentation</div><ul><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3286" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3286</a></li></ul><table id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-LineNumberTable.bottom" style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><tbody><tr><td><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3286" style="font-family:monospace" target="_blank">3286</a><span style="font-family:monospace"> </span> <a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3286"></a><span title="XML comment"><font size="2"><!-- right-hand side --></font></span></td></tr></tbody></table><table id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-LineNumberTable.bottom" style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><tbody><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3287" target="_blank">3287</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3287"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanimMesh_AllBonesSkeleton"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanimMesh_AllBonesSkeleton" style="color:maroon" target="_blank">hanimMesh_AllBonesSkeleton</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3288" target="_blank">3288</a> </font></td><td><font size="2"> <a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3288"></a><span title="XML comment"><!-- left-hand side --></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3289" target="_blank">3289</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3289"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_AllBonesSkeleton"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_AllBonesSkeleton" style="color:maroon" target="_blank">hanim_AllBonesSkeleton</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeleton</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3290" target="_blank">3290</a> </font></td><td><font size="2"> <a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3290"></a><span style="background-color:rgb(255,250,160)"><span title="XML comment"><!-- TODO propose that, similar to removing requirement for definition of USE nodes for HAnimHumanoid children, similarly propose eliminating requirement for EXPORT statements corresponding to child HAnimJoint HAnimSegment HAnimSite nodes --></span></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3291" target="_blank">3291</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3291"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_c1"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_c1" style="color:maroon" target="_blank">hanim_c1</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh_hanim_c1</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3292" target="_blank">3292</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3292"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_c1disc"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_c1disc" style="color:maroon" target="_blank">hanim_c1disc</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh_hanim_c1disc</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3293" target="_blank">3293</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3293"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_c2"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_c2" style="color:maroon" target="_blank">hanim_c2</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh_hanim_c2</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3294" target="_blank">3294</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3294"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_c2disc"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_c2disc" style="color:maroon" target="_blank">hanim_c2disc</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh_hanim_c2disc</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="2"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#3295" target="_blank">3295</a> </font></td><td><font size="2"><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-3295"></a><a id="m_5974556919442382012m_8954003595153878868m_-4553096397927882591m_550241416563653613m_-5708652910504049456m_-6928764217692225810m_-1044239127657045651gmail-EXPORT_hanim_c3"></a> <span title="EXPORT exposes a local node to ROUTE events when the current model is Inlined by an external model" style="background-color:rgb(255,238,255)"><<span style="color:navy">EXPORT</span> <span style="color:green">localDEF</span>='<a title="go to the original DEF node definition" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5Skeletons.html#hanim_c3" style="color:maroon" target="_blank">hanim_c3</a>' <span style="color:green">AS</span>='<span style="color:maroon">AllBonesSkeletonMesh_hanim_c3</span>'/></span></font></td></tr></tbody></table><br></div><div>etc.</div><div><br></div><div>This sets the stage for animation.</div><div><br></div><div>Discussion point: I think we can make the case that if an HAnimHumanoid node is EXPORTed from a scene, the browser can also IMPORT/EXPORT every joint segment and site automatically. This dramatically simplifies humanoid Inline/IMPORT of other skeletons, and is quite similar to our simplification of not requiring USE nodes for every joint segment and site.</div></div><div dir="ltr"><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><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 29, 2026 at 9:07 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>Have made progress on LOA-5 spec, as hoped, building on last week's review discussion on the HAnim Bones example archives. Some refinements were made tonight to align composite models to match the following LOA-5 proposal.</div><div><ul><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/index.html" target="_blank">Humanoid Animation X3D Examples Archive, Bones</a></li><li><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/index.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/index.html</a></li></ul></div><div><br></div><div>Thanks Joe for an in-depth review session this evening, very productive. I think the ideas for LOA-5 are now ready for group review and discussion on our Monday weekly call.</div><div><br></div><div><ul><li>HAnim Architecture draft version 2.1, clause 4 Concepts</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" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html</a></li></ul><div><ul style="font-size:13.5424px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><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" target="_blank"><span title="under discussion" style="background-color:lightcyan">4.11.6.6 LOA‑5 hierarchy</span></a></li><li style="margin-top:4px"><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" target="_blank">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><h3 style="margin-top:14px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="work in progress" style="background-color:yellow"><font size="2">4.11.6.6 LOA‑5 hierarchy</font></span></h3><div title="work in progress" style="background-color:lightcyan;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><p>UNDER REVIEW. Following group discussion, next step is to copy the LOA-4 hierarchy diagram and include additional bones and cartilage to create an LOA-5 hierarchy diagram. Note that we are defining regular names for these bones, but do not need to define additional joints since such animation varies in subtle and physiologically complex ways.</p></div><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="work in progress" style="background-color:yellow">LOA-5 defines the names of additional bones and cartilage sections, providing further detail for the segments defined in LOA-4. The rationale for these additions are provided in <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#MedicalDesign" target="_blank">4.2.7 Medical design considerations</a>.</span></p><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="work in progress" style="background-color:yellow">The LOA‑5 hierarchy forming the basic set of <span style="font-weight:bold">Joint</span> objects is specified in <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#f-BasicSetJointHierarchy4" target="_blank">Figure 4.16</a> with the segment names listed after the joints to which they are attached.</span> <span title="LOA5" style="background-color:lightcyan">Component bones and cartilage that are considered part of a segment are listed in parenthesis.</span></p><p style="color:rgb(0,0,0);font-family:univers,arial,sans-serif;margin-top:18px;margin-bottom:18px"><span title="LOA5" style="background-color:lightcyan">EXAMPLE <code>r_knee : r_calf (r_tibia, r_fibula)</code></span></p><pre style="color:rgb(0,0,0);border:1px solid;border-radius:5px;padding:4px"><br>humanoid_root : sacrum
sacroiliac : pelvis <span title="LOA5" style="background-color:lightcyan">(l_hip_bone, r_hip_bone, pubic_symphysis, coccyx)</span>
| l_hip : l_thigh <span title="LOA5" style="background-color:lightcyan">(l_patella)</span>
| | l_knee : l_calf <span title="LOA5" style="background-color:lightcyan">(l_tibia, l_fibula)</span>
| | l_talocrural : l_talus
| | l_talocalcaneonavicular : l_navicular
| | | l_cuneonavicular_1 : l_cuneiform_1
| | | | l_tarsometatarsal_1 : l_metatarsal_1
| | | | l_metatarsophalangeal_1 : l_tarsal_proximal_phalanx_1
| | | | l_tarsal_interphalangeal_1 : l_tarsal_distal_phalanx_1
| | | l_cuneonavicular_2 : l_cuneiform_2
| | | | l_tarsometatarsal_2 : l_metatarsal_2
| | | | l_metatarsophalangeal_2 : l_tarsal_proximal_phalanx_2
| | | | l_tarsal_proximal_interphalangeal_2 : l_tarsal_middle_phalanx_2
| | | | l_tarsal_distal_interphalangeal_2 : l_tarsal_distal_phalanx_2
| | | l_cuneonavicular_3 : l_cuneiform_3
| | | l_tarsometatarsal_3 : l_metatarsal_3
| | | l_metatarsophalangeal_3 : l_tarsal_proximal_phalanx_3
| | | l_tarsal_proximal_interphalangeal_3 : l_tarsal_middle_phalanx_3
| | | l_tarsal_distal_interphalangeal_3 : l_tarsal_distal_phalanx_3
| | l_calcaneocuboid : l_calcaneus
| | l_transversetarsal : l_cuboid
| | l_tarsometatarsal_4 : l_metatarsal_4
| | | l_metatarsophalangeal_4 : l_tarsal_proximal_phalanx_4
| | | l_tarsal_proximal_interphalangeal_4 : l_tarsal_middle_phalanx_4
| | | l_tarsal_distal_interphalangeal_4 : l_tarsal_distal_phalanx_4
| | l_tarsometatarsal_5 : l_metatarsal_5
| | l_metatarsophalangeal_5 : l_tarsal_proximal_phalanx_5
| | l_tarsal_proximal_interphalangeal_5 : l_tarsal_middle_phalanx_5
| | l_tarsal_distal_interphalangeal_5 : l_tarsal_distal_phalanx_5
| r_hip : r_thigh <span title="LOA5" style="background-color:lightcyan">(r_patella)</span>
| r_knee : r_calf <span title="LOA5" style="background-color:lightcyan">(r_tibia, r_fibula)</span>
| r_talocrural : r_talus
| r_talocalcaneonavicular : r_navicular
| | r_cuneonavicular_1 : r_cuneiform_1
| | | r_tarsometatarsal_1 : r_metatarsal_1
| | | r_metatarsophalangeal_1 : r_tarsal_proximal_phalanx_1
| | | r_tarsal_interphalangeal_1 : r_tarsal_distal_phalanx_1
| | r_cuneonavicular_2 : r_cuneiform_2
| | | r_tarsometatarsal_2 : r_metatarsal_2
| | | r_metatarsophalangeal_2 : r_tarsal_proximal_phalanx_2
| | | r_tarsal_proximal_interphalangeal_2 : r_tarsal_middle_phalanx_2
| | | r_tarsal_distal_interphalangeal_2 : r_tarsal_distal_phalanx_2
| | r_cuneonavicular_3 : r_cuneiform_3
| | r_tarsometatarsal_3 : r_metatarsal_3
| | r_metatarsophalangeal_3 : r_tarsal_proximal_phalanx_3
| | r_tarsal_proximal_interphalangeal_3 : r_tarsal_middle_phalanx_3
| | r_tarsal_distal_interphalangeal_3 : r_tarsal_distal_phalanx_3
| r_calcaneocuboid : r_calcaneus
| r_transversetarsal : r_cuboid
| r_tarsometatarsal_4 : r_metatarsal_4
| | r_metatarsophalangeal_4 : r_tarsal_proximal_phalanx_4
| | r_tarsal_proximal_interphalangeal_4 : r_tarsal_middle_phalanx_4
| | r_tarsal_distal_interphalangeal_4 : r_tarsal_distal_phalanx_4
| r_tarsometatarsal_5 : r_metatarsal_5
| r_metatarsophalangeal_5 : r_tarsal_proximal_phalanx_5
| r_tarsal_proximal_interphalangeal_5 : r_tarsal_middle_phalanx_5
| r_tarsal_distal_interphalangeal_5 : r_tarsal_distal_phalanx_5
vl5 : l5 <span title="LOA5" style="background-color:lightcyan">(l5disc)</span>
vl4 : l4 <span title="LOA5" style="background-color:lightcyan">(l4disc)</span>
vl3 : l3 <span title="LOA5" style="background-color:lightcyan">(l3disc)</span>
vl2 : l2 <span title="LOA5" style="background-color:lightcyan">(l2disc)</span>
vl1 : l1 <span title="LOA5" style="background-color:lightcyan">(l1disc)</span>
vt12 : t12 <span title="LOA5" style="background-color:lightcyan">(t12disc, l_rib12, r_rib12)</span>
vt11 : t11 <span title="LOA5" style="background-color:lightcyan">(t11disc, l_rib11, r_rib11)</span>
vt10 : t10 <span title="LOA5" style="background-color:lightcyan">(t10disc, l_rib10, r_rib10)</span>
vt9 : t9 <span title="LOA5" style="background-color:lightcyan">(t9disc, l_rib9, r_rib9)</span>
vt8 : t8 <span title="LOA5" style="background-color:lightcyan">(t8disc, l_rib8, r_rib8)</span>
vt7 : t7 <span title="LOA5" style="background-color:lightcyan">(t7disc, l_rib7, r_rib7)</span>
vt6 : t6 <span title="LOA5" style="background-color:lightcyan">(t6disc, l_rib6, r_rib6)</span>
vt5 : t5 <span title="LOA5" style="background-color:lightcyan">(t5disc, l_rib5, r_rib5)</span>
vt4 : t4 <span title="LOA5" style="background-color:lightcyan">(t4disc, l_rib4, r_rib4)</span>
vt3 : t3 <span title="LOA5" style="background-color:lightcyan">(t3disc, l_rib3, r_rib3)</span>
vt2 : t2 <span title="LOA5" style="background-color:lightcyan">(t2disc, l_rib2, r_rib2)</span>
vt1 : t1 <span title="LOA5" style="background-color:lightcyan">(t1disc, l_rib1, r_rib1)</span>
vc7 : c7 <span title="LOA5" style="background-color:lightcyan">(c7disc, sternum, plus 10 pieces of cartilage on either side of sternum)</span>
| vc6 : c6 <span title="LOA5" style="background-color:lightcyan">(c6disc)</span>
| vc5 : c5 <span title="LOA5" style="background-color:lightcyan">(c5disc)</span>
| vc4 : c4 <span title="LOA5" style="background-color:lightcyan">(c4disc)</span>
| vc3 : c3 <span title="LOA5" style="background-color:lightcyan">(c3disc)</span>
| vc2 : c2 <span title="LOA5" style="background-color:lightcyan">(c2disc)</span>
| vc1 : c1 <span title="LOA5" style="background-color:lightcyan">(c1disc)</span>
| skullbase : skull <span title="LOA5" style="background-color:lightcyan">(8 cranial bones, 14 facial bones, 16 upper teeth)</span>
| l_eyelid_joint : l_eyelid
| r_eyelid_joint : r_eyelid
| l_eyeball_joint : l_eyeball
| r_eyeball_joint : r_eyeball
| l_eyebrow_joint : l_eyebrow
| r_eyebrow_joint : r_eyebrow
| temporomandibular : jaw <span title="LOA5" style="background-color:lightcyan">(mandible, 16 lower teeth)</span>
l_sternoclavicular : l_clavicle
| l_acromioclavicular : l_scapula
| l_shoulder : l_upperarm
| l_elbow : l_forearm <span title="LOA5" style="background-color:lightcyan">(l_radius, l_ulna)</span>
| l_radiocarpal : l_carpal <span title="LOA5" style="background-color:lightcyan">(4 additional carpal bones)</span>
| l_midcarpal_1 : l_trapezium
| | l_carpometacarpal_1 : l_metacarpal_1
| | l_metacarpophalangeal_1 : l_carpal_proximal_phalanx_1
| | l_carpal_interphalangeal_1 : l_carpal_distal_phalanx_1
| l_midcarpal_2 : l_trapezoid
| | l_carpometacarpal_2 : l_metacarpal_2
| | l_metacarpophalangeal_2 : l_carpal_proximal_phalanx_2
| | l_carpal_proximal_interphalangeal_2 : l_carpal_middle_phalanx_2
| | l_carpal_distal_interphalangeal_2 : l_carpal_distal_phalanx_2
| l_midcarpal_3 : l_capitate
| | l_carpometacarpal_3 : l_metacarpal_3
| | l_metacarpophalangeal_3 : l_carpal_proximal_phalanx_3
| | l_carpal_proximal_interphalangeal_3 : l_carpal_middle_phalanx_3
| | l_carpal_distal_interphalangeal_3 : l_carpal_distal_phalanx_3
| l_midcarpal_4_5 : l_hamate
| l_carpometacarpal_4 : l_metacarpal_4
| | l_metacarpophalangeal_4 : l_carpal_proximal_phalanx_4
| | l_carpal_proximal_interphalangeal_4 : l_carpal_middle_phalanx_4
| | l_carpal_distal_interphalangeal_4 : l_carpal_distal_phalanx_4
| l_carpometacarpal_5 : l_metacarpal_5
| l_metacarpophalangeal_5 : l_carpal_proximal_phalanx_5
| l_carpal_proximal_interphalangeal_5 : l_carpal_middle_phalanx_5
| l_carpal_distal_interphalangeal_5 : l_carpal_distal_phalanx_5
r_sternoclavicular : r_clavicle
r_acromioclavicular : r_scapula
r_shoulder : r_upperarm
r_elbow : r_forearm <span title="LOA5" style="background-color:lightcyan">(r_radius, r_ulna)</span>
r_radiocarpal : r_carpal <span title="LOA5" style="background-color:lightcyan">(4 additional carpal bones)</span>
r_midcarpal_1 : r_trapezium
| r_carpometacarpal_1 : r_metacarpal_1
| r_metacarpophalangeal_1 : r_carpal_proximal_phalanx_1
| r_carpal_interphalangeal_1 : r_carpal_distal_phalanx_1
r_midcarpal_2 : r_trapezoid
| r_carpometacarpal_2 : r_metacarpal_2
| r_metacarpophalangeal_2 : r_carpal_proximal_phalanx_2
| r_carpal_proximal_interphalangeal_2 : r_carpal_middle_phalanx_2
| r_carpal_distal_interphalangeal_2 : r_carpal_distal_phalanx_2
r_midcarpal_3 : r_capitate
| r_carpometacarpal_3 : r_metacarpal_3
| r_metacarpophalangeal_3 : r_carpal_proximal_phalanx_3
| r_carpal_proximal_interphalangeal_3 : r_carpal_middle_phalanx_3
| r_carpal_distal_interphalangeal_3 : r_carpal_distal_phalanx_3
r_midcarpal_4_5 : r_hamate
r_carpometacarpal_4 : r_metacarpal_4
| r_metacarpophalangeal_4 : r_carpal_proximal_phalanx_4
| r_carpal_proximal_interphalangeal_4 : r_carpal_middle_phalanx_4
| r_carpal_distal_interphalangeal_4 : r_carpal_distal_phalanx_4
r_carpometacarpal_5 : r_metacarpal_5
r_metacarpophalangeal_5 : r_carpal_proximal_phalanx_5
r_carpal_proximal_interphalangeal_5 : r_carpal_middle_phalanx_5
r_carpal_distal_interphalangeal_5 : r_carpal_distal_phalanx_5</pre><div style="text-align:center;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><p style="font-weight:bold;margin-top:18px"><span title="work in progress" style="background-color:yellow">Figure 4.16 — Basic set of Joint:Segment hierarchy for LOA‑5</span></p></div><p style="color:rgb(0,0,0);font-family:univers,arial,sans-serif;margin-top:18px;margin-bottom:18px"><span title="LOA5" style="background-color:lightcyan"><code></code></span></p><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="LOA5" style="background-color:lightcyan">TODO. Define all bones not specifically listed above, e.g. teeth, skull and carpal bones, etc.</span></p><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="LOA5" style="background-color:rgb(255,255,255)"><font size="3"><br></font></span></p><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><span title="LOA5" style="background-color:rgb(255,255,255)">Also moved the rationale section up, with a little editing to reflect progress this week:</span></p><p style="font-size:16px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"></p><ul><li><b>4.2.7 Medical design considerations</b></li><li><span title="LOA5" style="background-color:lightcyan"><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#MedicalDesign" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#MedicalDesign</a></span></li></ul><p></p></div></div></div><div><div title="under consideration" style="background-color:lightcyan;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><h2 style="margin-top:18px"><font size="2">4.2.7 Medical design considerations</font></h2><p>TODO. List considerations influencing HAnim design regarding potential use in medical applications and records.</p><p>Describing this rationale supports the potential addition of <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" target="_blank">LOA‑5 hierarchy</a>.</p></div><div title="under discussion" style="background-color:lightcyan;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><p>Editors note, under consideration: adding additional bones that typically are not animated.</p><p>The <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones" target="_blank">X3D Example Archives: Humanoid Animation, Bones</a> now contains a comprehensive collection of human bone and tooth models, also including some cartilage models.</p><p>Most of the models provide geometry meshes for individual bones. Some model definitions with names matching LOA-4 segments uses Inline to compose multiple individual bones.</p><ul><li style="margin-top:4px">Example: <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/r_forearmIndex.html" target="_blank">r_forearm</a> includes <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/r_radiusIndex.html" target="_blank">r_radius</a> and <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/r_ulnaIndex.html" target="_blank">r_ulna</a> bones.</li><li style="margin-top:4px">Example: <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/jawIndex.html" target="_blank">jaw</a> includes <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/mandibleIndex.html" target="_blank">mandible</a> (lower jaw or jawbone) and also includes all of the lower teeth.</li><li style="margin-top:4px">Example: <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/skullIndex.html" target="_blank">skull</a> includes occipital bone, two temporal bones, two parietal bones, the sphenoid, ethmoid and frontal bones. The bones of the facial skeleton (14) are the vomer, two inferior nasal conchae, two nasal bones, two maxilla, two palatine bones, two zygomatic bones, and two lacrimal bones. This composite model also includes all of the upper teeth.</li></ul><p>Idea: LOA-5 might add and insert other unlisted bones and fused bones, teeth, cartilage, etc. that might not be used for regular animation but do have medical or anatomical interest. The archives include most of the relevant example bone models already.</p><ul><li style="margin-top:4px">These bone models are already named appropriately to match naming conventions for segments in each LOA hierarchy.</li><li style="margin-top:4px">Bones making up the <span style="font-family:monospace">skullbase:skull</span> pair are likely the most elaborate example.</li><li style="margin-top:4px"><b>REALIZATION AND PROPOSAL:</b> there is direct value in defining bone and cartilage components in a segment, but we do not necessarily need to name the seams between each bone and piece of cartilage. This approach avoids a lot of potential confusion.</li><li style="margin-top:4px"><s>A new LOA-5 hierarchy diagram of <span style="font-family:monospace">joint:segment</span> pairs can include each added bone in LOA-5. The <span style="font-weight:bold">Joint</span> and <span style="font-weight:bold">Segment</span> objects are certainly appropriate for modeling such relationships. Given that the <span style="font-weight:bold">Segment</span> names for LOA-5 are already well defined, this means that we need to carefully consider what the corresponding <span style="font-weight:bold">Joint</span> names might be.</s></li><li style="margin-top:4px"><s>We can strive to follow medical terminology when choosing joint names for the seams or cartilaginous connections between each segment to its parent.</s></li><li style="margin-top:4px">A few curious cases exist where a bone has multiple peers, such as carpal bones in the wrist (see <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/l_handIndex.html" target="_blank">l_hand</a>) or various small bones contained within the <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/skullIndex.html" target="_blank">skull</a> segment. Nevertheless, incrementally extending the existing LOA-4 <span style="font-family:monospace">joint:segment</span> pairs to include additional existing bones is straightforward.</li><li style="margin-top:4px">The end result of all parent-child pairings must always be a directed acyclic graph (DAG), so no <span style="font-family:monospace">joint:segment</span> pair can have two parents. Some special cases will likely require careful design choices, for example cartilage connections between left and right sides of the upper rib cage in the <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/chestIndex.html" target="_blank">chest</a> can use the <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/sternumIndex.html" target="_blank">sternum</a> as a common parent.</li></ul><p>It is possible to think of modeling the medical diagnosis, treatment, and healing of a bone-related injury as a form of long-term humanoid animation.</p><ul><li style="margin-top:4px">Casts, splints, slings, bandages and braces are likely best modeled as part of coveroid, similar to other apparel.</li><li style="margin-top:4px">Potential initial use case: broken arm, with cast/sling/brace as different coveroids while healing progresses.</li><li style="margin-top:4px">Adding a section on <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#MedicalDesign" target="_blank">Medical design considerations</a> can describe what capabilities are available and might be possible.</li><li style="margin-top:4px">Prosthetics will require careful handling, e.g. are they modeled as coveroid segments or skeleton segments?</li><li style="margin-top:4px">Judicious but sufficient inclusion of normative and informative references, e.g. ISO standard(s), SNOMED, Fundamental Model of Anatomy (FMA), Wikipedia, etc.</li></ul><p>Given these many close correspondences, appears to be clear that LOA-5 modeling is "in scope" for the next version of the HAnim Architecture specification.</p></div></div><div><br></div><div><br></div><div>All review, reactions, questions and concerns are welcome. Thanks for your time considering the possibilities.</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>
</blockquote></div></div>
</blockquote></div>
</blockquote></div></div>
</div>
</div></div>
</div>