<div dir="auto">Hi John.  Option 3 please.  Recommend fixing the example models, not deleting the example models.</div><div dir="auto"><br></div><div dir="auto">The X3D specification implementation of the HAnim specification, both of which are authoritative, clearly shows that Transform/Group/Shape child nodes belong under HAnimSegment, not under HAnimJoint.</div><div dir="auto"><br></div><div dir="auto">* 26.3.5 HAnimSegment</div><div dir="auto">* <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimSegment" style="font-family:-apple-system,sans-serif">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimSegment</a><br><br>No doubt the errors you have reported here are already detected and reported repeatedly by X3D XML Schema,X3D DOCTYPE, and X3D Schematron.  Periodic unit testing logs capture such errors, X3D-Edit can check validation comprehensively as well  Proper validation and correction of models prevents Garbage In Garbage Out (GIGO) syndrome.<br><br>Incidentally, a large number of people have worked long + hard for years to implement both specifications.  There is no need to worry about “fixing” the authoritative HAnim and X3D specifications unless you have a valid example demonstrating why such a change is needed.</div><div dir="auto"><br></div><div dir="auto"><div dir="auto"><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Have fun with valid X3D models!  🥸👌</div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><br></div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">all the best, Don<br>-- <br>Don Brutzman <br>X3D graphics, virtual worlds, Navy robotics <br><a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a><br></div></div></div><div><br></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Sep 8, 2025 at 8:36 PM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</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"><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px">I suggest we either deep six examples with Transform/Group/Shape children of HAnimJoint, or fix the standard.</pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px">Here's the standard I am referring to: </pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimJoint" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimJoint</a></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre style="font-size:11.05px;margin-left:25px"><span style="color:rgb(0,0,0)">HAnimJoint : X3DGroupingNode {
  MFNode     [in]     addChildren              </span><font color="#ff9900"> [HAnimJoint,HAnimSegment]</font><font color="#000000">
  MFNode     [in]     removeChildren           </font><font color="#ff9900"> [HAnimJoint,HAnimSegment]</font><font color="#000000">
  SFVec3f    [in,out] center           0 0 0    (-∞,∞)`
  MFNode     [in,out] children         []       </font><font color="#ff9900">[HAnimJoint,HAnimSegment]</font><font color="#000000">
  SFString   [in,out] description      ""
  MFNode     [in,out] displacers       []       [HAnimDisplacer]
  SFBool     [in,out] bboxDisplay      FALSE
  SFRotation [in,out] limitOrientation 0 0 1 0  [-1,1] or (-∞,∞)
  MFFloat    [in,out] llimit           [0 0 0]  (-∞,∞)
  SFNode     [in,out] metadata         NULL     [X3DMetadataObject]
  SFString   [in,out] name             ""
  SFRotation [in,out] rotation         0 0 1 0  [-1,1] or (-∞,∞)
  SFVec3f    [in,out] scale            1 1 1    (0,∞)
  SFRotation [in,out] scaleOrientation 0 0 1 0  [-1,1] or (-∞,∞)
  MFInt32    [in,out] skinCoordIndex   []       [0,∞)
  MFFloat    [in,out] skinCoordWeight  []       [0,1]
  MFFloat    [in,out] stiffness        [0 0 0]  [0,1]
  SFVec3f    [in,out] translation      0 0 0    (-∞,∞)
  MFFloat    [in,out] ulimit           [0 0 0]  (-∞,∞)
  SFBool     [in,out] visible          TRUE
  SFVec3f    []       bboxCenter       0 0 0    (-∞,∞)
  SFVec3f    []       bboxSize         -1 -1 -1 [0,∞) or −1 −1 −1
}</font></pre><pre style="font-size:11.05px;margin-left:25px"><font color="#000000"><br></font></pre><pre style="font-size:11.05px;margin-left:25px"><font color="#000000">See examples in the archive, e.g.:</font></pre><pre style="font-size:11.05px;margin-left:25px"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/WinterAndSpring/LilyAnimatedIndex.html" target="_blank">Humanoid Animation X3D Examples Archive, Winter And Spring, Lily Animated</a>


<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/WinterAndSpring/LeifAnimatedIndex.html" target="_blank">Humanoid Animation X3D Examples Archive, Winter And Spring, Leif Animated</a>



<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/WinterAndSpring/TufaniAnimatedIndex.html" target="_blank">Humanoid Animation X3D Examples Archive, Winter And Spring, Tufani Animated</a>


</pre><pre style="font-size:11.05px;margin-left:25px"><font color="#000000">If HAnimJoint IS a X3DGroupingNode, then X3DChildNodes should be acceptable.  Is that how to read the standard?</font></pre><pre style="font-size:11.05px;margin-left:25px"><font color="#000000"><br></font></pre><pre style="font-size:11.05px;margin-left:25px"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DGroupingNode" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DGroupingNode</a><font color="#000000"></font></pre><pre style="font-size:11.05px;margin-left:25px"><h2 style="font-size:20.8px;margin-top:18px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;white-space:normal">10.3.2 <i>X3DGroupingNode</i></h2><pre style="margin-left:25px"><span style="color:rgb(0,0,0)">X3DGroupingNode : X3DChildNode, X3DBoundedObject { 
  MFNode  [in]     addChildren             </span><font color="#00ff00">[X3DChildNode]</font><font color="#000000">
  MFNode  [in]     removeChildren          </font><font color="#00ff00">[X3DChildNode]</font><font color="#000000">
  MFNode  [in,out] children       []       </font><font color="#00ff00">[X3DChildNode]</font><font color="#000000">
  SFBool  [in,out] bboxDisplay    FALSE
  SFNode  [in,out] metadata       NULL     [X3DMetadataObject]
  SFBool  [in,out] visible        TRUE
  SFVec3f []       bboxCenter     0 0 0    (-∞,∞)
  SFVec3f []       </font>bboxSize<font color="#000000">       -1 -1 -1 [0,∞) or −1 −1 −1
}</font></pre></pre><pre style="font-size:11.05px;margin-left:25px">Anyway, that seems *REALLY* confusing!  Any clarification on "overloading" of fields welcome!</pre><pre style="font-size:11.05px;margin-left:25px"><br></pre><pre style="font-size:11.05px;margin-left:25px">Thanks,</pre><pre style="font-size:11.05px;margin-left:25px"><br></pre><pre style="font-size:11.05px;margin-left:25px">John</pre></div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>