<div dir="ltr"><div>[added hanim mailing list]</div><div><br></div><div>Holger, good catch!  This is a very recent draft change which had not yet been announced for group review (while awaiting release of annual HAnim meeting minutes from Web3D 2025).</div><div><br></div><div>Thanks for your insightful observation, no one else caught that relationship.  The primary reference, with relevant excerpts so far, is</div><div><ul><li>Humanoid animation (HAnim) architecture v2.1 draft, part 1, clause 6 Object interfaces, 6.1 Humanoid</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/ObjectInterfaces.html#Humanoid">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Humanoid</a></li><li><span class="gmail-proposed" title="Mantis 1512" style="background-color:yellow;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:16px">The <i>joints</i>, <i>segments</i>, and <i>sites</i> fields are deprecated since they are duplicative and redundant.</span><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:16px"></span><span class="editorsNote" title="Mantis 1512" style="background-color:lightcyan;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:16px"><br>[Editors note: typically these fields are populated in models by first defining the <i>skeleton</i> field, containing all of the <i>joints</i>, <i>segments</i>, and <i>sites</i> fields, followed by USE nodes at the end of the HAnimHumanoid node definition. The Castle viewer confirms that the fields are duplicative by automatically creating those USE nodes if missing or incorrect. See <a href="https://mantis.web3d.org/view.php?id=1512" target="_blank">Mantis 1512</a>]</span></li></ul><div>Unfortunately there is a lockout problem for my mantis account - trouble report submitted.  We keep track of consensus details in there so that there is a trail of logic supporting any specification changes... I will update when my access is restored.</div></div><div><br></div><div>Looks like the specification does include prose for the dependency you are defining:</div><div><ul><li><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">The following five fields provide information needed for each binding pose of a humanoid or non-human model, as 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#ModellingOfNonHumanHAnimFigures" style="">4.8.3 Modelling of non-human HAnim figures</a>.<ul style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><i>jointBindingPositions</i></li></ul><ul style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><i>jointBindingRotations</i></li></ul><ul style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><i>jointBindingScales</i></li></ul><ul style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><i>skinBindingCoords</i></li></ul><ul style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><li style="margin-top:4px"><i>skinBindingNormals</i></li></ul>None of these five fields shall be used in a model that has a <i>skeletalConfiguration</i> value of <code style="">"BASIC"</code>.<br>The <i style="">jointBindingPositions</i>, <i style="">jointBindingRotations</i>, and <i style="">jointBindingScales</i> fields specify arrays of positions, rotations, and scale values, respectively. These sets of attributes are associated with the array of <span class="gmail-Object" style="font-weight:bold">Joint</span> objects contained in the <i style="">joints</i> field. If only one value is provided (such as the default value) then it is applied to all listed <span class="gmail-Object" style="font-weight:bold">Joint</span> objects equivalently. Applying each set of these translation, rotation, and scale values, in order, to the corresponding <span class="gmail-Object" style="font-weight:bold">Joint</span> objects maps a skeleton to the binding pose.</blockquote></li></ul><div>Suggested path forward:</div></div><div><ol><li>remove the deprecation for the <i>joints </i>field, it is not appropriate</li><li>Relax the dependency on redundant/superfluous definitions for joint, segment and site MFNode arrays of USE nodes with prose along the lines of:</li><li><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,0)">If any of the jointBindingPositions, jointBindingRotations, and jointBindingScales fields are defined, then the </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,0)">joints </i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,0)">field must also be defined with the same indexing order, and each MF array must have the same length.</span></li><li><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,255)">Add corresponding rule in X3D Schematron to check for this relationship, also update X3D Tooltips.</span></li><li><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,255)">Ensure that corresponding field definitions in X3D 4.1 draft for HAnimHumanoid continue to match.</span></li><li><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;background-color:rgb(255,255,255)">Improvements are always welcome.</span></li></ol><div><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Wondering, do you think it is OK to deprecate the<span style="background-color:rgb(243,243,243)"> </span></font><span style="background-color:rgb(243,243,243)"><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">segments</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">, and </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">sites</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> fields?  Perhaps those fields have a current or future use that we have not anticipated (such as IK inverse kinematics). </span></span></div></div><div><span style="background-color:rgb(243,243,243)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><br></span></span></div><div><span style="background-color:rgb(243,243,243)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">Of note is that deprecation does not forbid the use of a field, rather it indicates that it is likely to be removed in a future follow-on version.</span></span></div><div><ul><li><span style="background-color:rgb(243,243,243)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">Wiktionary, deprecate</span></span></li><li><a href="https://en.wiktionary.org/wiki/deprecate">https://en.wiktionary.org/wiki/deprecate</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"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif">3. </font><span class="gmail-usage-label-sense" style="color:rgb(32,33,34);font-family:sans-serif;font-size:16px"><span class="gmail-ib-brac gmail-label-brac">(</span><span class="gmail-ib-content gmail-label-content" style="font-style:italic"><a href="https://en.wiktionary.org/wiki/Appendix:Glossary#transitive" title="Appendix:Glossary" style="text-decoration-line:none;color:rgb(51,102,204);background:none;border-radius:2px">transitive</a><span class="gmail-ib-comma gmail-label-comma" style="font-style:normal">,</span> chiefly <a href="https://en.wiktionary.org/wiki/computing#Noun" title="computing" style="text-decoration-line:none;color:rgb(51,102,204);background:none;border-radius:2px">computing</a></span><span class="gmail-ib-brac gmail-label-brac">)</span></span><span style="color:rgb(32,33,34);font-family:sans-serif;font-size:16px"> To declare something </span><a href="https://en.wiktionary.org/wiki/obsolescent#English" title="obsolescent" style="font-family:sans-serif;font-size:16px;background:none;text-decoration-line:none;color:rgb(51,102,204);border-radius:2px">obsolescent</a><span style="color:rgb(32,33,34);font-family:sans-serif;font-size:16px">; to recommend against a function, technique, command, etc. that still works but has been replaced. </span><ul><li><i class="gmail-Latn gmail-mention gmail-e-example" lang="en" style="color:rgb(32,33,34);font-family:sans-serif;font-size:16px">The 'bold' tag has been <b style="font-weight:bold">deprecated</b> in favour of the 'strong' tag.</i></li></ul><ul><li><i class="gmail-Latn gmail-mention gmail-e-example" lang="en" style="color:rgb(32,33,34);font-family:sans-serif;font-size:16px">It is still supported but strongly <b style="font-weight:bold">deprecated</b>.</i></li></ul></blockquote></div><div>We will review this issue next Monday afternoon during HAnim specification editing session.</div><div><br></div><div>Again thanks for your implementation and evaluation efforts and insights.</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><br></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 gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Sep 27, 2025 at 12:33 PM Holger Seelig via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</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><div>As I discovered the HAnimHumanoid.joints field is now deprecated in X3D4.1. This is not good. Because the values in <span style="color:rgb(0,0,0);font-size:11.05px;background-color:rgb(255,255,255)">jointBindingPositions, </span><span style="color:rgb(0,0,0);font-size:11.05px;background-color:rgb(255,255,255)">jointBindingRotations, </span><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:11.05px">jointBindingRotations depend on an order and mapping to a specific HAnimJoint.</span></font></span></div><div><br></div><div>The first value should belong to the first joint in the joints fields and so on. </div><div><br></div><div>If there is now no joints fields such connection is hard to determine, may be by traversing the skeleton, but how, because there are a lot of different traversing strategies. </div><div><br></div><div><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/hanim.html#HAnimHumanoid" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/hanim.html#HAnimHumanoid</a></div><div><br></div>Best regards,<div>Holger</div><div><br><div><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div>—<br>Holger Seelig<br>Leipzig, Germany<br><br><a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a><br><a href="https://create3000.github.io/x_ite/" target="_blank">https://create3000.github.io/x_ite/</a><br><a href="https://patreon.com/X_ITE" target="_blank">https://patreon.com/X_ITE</a><br></div><div><br></div></div><br>
</div>


<br></div></div></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>