<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.compact, li.compact, div.compact
        {mso-style-name:compact;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.small
        {mso-style-name:small;}
span.bugnote-reporter
        {mso-style-name:bugnote-reporter;}
span.z-TopofFormChar
        {mso-style-name:"z-Top of Form Char";
        mso-style-priority:99;
        mso-style-link:"z-Top of Form";
        font-family:"Arial",sans-serif;
        display:none;}
span.z-BottomofFormChar
        {mso-style-name:"z-Bottom of Form Char";
        mso-style-priority:99;
        mso-style-link:"z-Bottom of Form";
        font-family:"Arial",sans-serif;
        display:none;}
span.EmailStyle29
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:423771941;
        mso-list-template-ids:1780236270;}
@list l1
        {mso-list-id:467748514;
        mso-list-template-ids:-841605138;}
@list l1:level1
        {mso-level-start-at:13;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2
        {mso-list-id:781189390;
        mso-list-template-ids:1829552100;}
@list l2:level1
        {mso-level-start-at:8;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:795100373;
        mso-list-template-ids:-1161669292;}
@list l3:level1
        {mso-level-start-at:3;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4
        {mso-list-id:1299650866;
        mso-list-template-ids:-1760664932;}
@list l5
        {mso-list-id:1357075984;
        mso-list-type:hybrid;
        mso-list-template-ids:-722275526 221576550 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l5:level1
        {mso-level-start-at:26;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l5:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New",serif;}
@list l5:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l5:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l5:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New",serif;}
@list l5:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l5:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l5:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New",serif;}
@list l5:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l6
        {mso-list-id:1536768174;
        mso-list-template-ids:1176638568;}
@list l6:level1
        {mso-level-start-at:11;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l7
        {mso-list-id:1842889622;
        mso-list-template-ids:388772320;}
@list l7:level1
        {mso-level-start-at:6;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l8
        {mso-list-id:2097557368;
        mso-list-template-ids:1990070824;}
@list l8:level1
        {mso-level-start-at:5;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">John that Working Draft link is not recent, we are on CD1.  I do not think that specification verification and testing is possible on a phone.  Suggest you “take a break” on this one until everything is again reported as resolved.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I looked more closely in Mantis.  I think we had a pending Mantis issue that was not reflected in CD1.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l5 level1 lfo9">Mantis
<span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3">
1116: 26.3.3 HAnimJoint - incorrect type for llimit/ulimit/stiffness fields, use SFVec3f</span><o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l5 level1 lfo9">https://www.web3d.org/member-only/mantis/view.php?id=1116<o:p></o:p></li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Summary:  I think that SFVec3f “0 0 0” needs to be used for llimit, ulimit and stiffness, in order to correctly match HAnim v2 specification which specifies each as a 3-tuple (not an array).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Dick: hoping we can confer on this issue during the coming week.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The current deployment of X3D Schema, DTD, X3DUOM, Tooltips, Python, Java and Ontology are all aligned for consistency with HAnim V2 at SFVec3f (default 0 0 0).  Hopefully we will reconcile all concerns and update the online specification
 this week.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Mantis 1116 (available for Web3D Consortium members) has the following entries.  It has not been marked as finally resolved and has not been applied yet to X3D4 version CD1.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="1" cellspacing="1" cellpadding="0" width="1440" style="width:15.0in;background:white;border:solid #999999 1.0pt">
<tbody>
<tr>
<td width="146" valign="top" style="width:109.8pt;border:none;background:#C8C8E8;padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black"><a href="https://www.web3d.org/member-only/mantis/view.php?id=1116#c2354" title="Direct link to note"><span style="color:royalblue">~0002354</span></a></span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><a href="https://www.web3d.org/member-only/mantis/view_user_page.php?id=10"><span style="color:royalblue">brutzman</span></a> </span></b><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">(developer)</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">2018-05-27 18:27</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">Last edited: 2018-05-27 18:27</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
</td>
<td width="1292" valign="top" style="width:969.3pt;border:none;background:#F3F3F3;padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Revised HAnim V2 specification prose, 6.3 Joint:<br clear="all">
==================================================<br clear="all">
The ulimit and llimit fields of the Joint object specify the upper and lower joint rotation limits. Both fields are three-element float sequences containing separate values for the X, Y and Z rotation limits. The ulimit field stores the upper (i.e. maximum)
 values for rotation around the X, Y and Z axes. The llimit field stores the lower (i.e., minimum) values for rotation around those axes. A sequence containing zero elements indicates that the joint is unconstrained. A non-empty sequence can only consist of
 a single three-value element. If ulimit and llimit values are provided, both must be defined together.<br clear="all">
<br clear="all">
The limitOrientation field gives the orientation of the coordinate frame in which the ulimit and llimit values are to be interpreted. The limitOrientation describes the orientation of ulimit and llimit fields in the local coordinate frame, relative to the Joint
 object centre position described by the center field.<br clear="all">
<br clear="all">
The stiffness field, if present, contains values ranging between 0.0 and 1.0 that specifies to an inverse kinematics (IK) system how much each degree of freedom should scale the calculated joint rotation at each step of the IK solver. A sequence containing
 zero elements indicates that no stiffness information is provided. If stiffness values are provided, the sequence consists of a single three-value element.<br clear="all">
==================================================<br clear="all">
<br clear="all">
Updated X3D v4 XML DTD/Schema to type SFVec3f, which provides closer control over content. Need to update prior X3D versions as well for X3D Unified Object Model consistency.<br clear="all">
<br clear="all">
<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:3.75pt">
<td colspan="2" style="border:none;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:3.75pt">
</td>
</tr>
<tr>
<td width="146" valign="top" style="width:109.8pt;border:none;background:#C8C8E8;padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black"><a href="https://www.web3d.org/member-only/mantis/view.php?id=1116#c2974" title="Direct link to note"><span style="color:royalblue">~0002974</span></a></span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><a href="https://www.web3d.org/member-only/mantis/view_user_page.php?id=10"><span style="color:royalblue">brutzman</span></a> </span></b><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">(developer)</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">2021-12-25 11:50</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">Last edited: 2021-12-25 11:54</span><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></b></p>
</td>
<td width="1292" valign="top" style="width:969.3pt;border:none;background:#F3F3F3;padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Updated reference to HAnim v2:<br clear="all">
<br clear="all">
* Part 1: Humanoid animation (HAnim) architecture, clause 6 Object interfaces, 6.3 Joint<br clear="all">
* <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Joint"><span style="color:royalblue">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Joint</span></a><br clear="all">
<br clear="all">
Confirmed node signature in this approved reference specification:<br clear="all">
<br clear="all">
    interface Joint {<br clear="all">
       float[3] bboxCenter 0 0 0 (-infinity,infinity)<br clear="all">
       float[3] bboxSize -1 -1 -1 [0,infinity) or -1<br clear="all">
       float[3] center 0 0 0 (-infinity,infinity)<br clear="all">
       sequence<Object> children [] [Joint, Segment]<br clear="all">
       string description ""<br clear="all">
       sequence<Object> displacers [] [Displacer]<br clear="all">
       float[3] llimit 0 0 0 (-infinity,infinity)<br clear="all">
       float[4] limitOrientation 0 0 1 0 (-infinity,infinity)<br clear="all">
       string name required name<br clear="all">
       float[4] rotation 0 0 1 0 (-infinity,infinity)<br clear="all">
       float[3] scale 1 1 1 (0,infinity)<br clear="all">
       float[4] scaleOrientation 0 0 1 0 (-infinity,infinity)<br clear="all">
       sequence<integer> skinCoordIndex [] [0,infinity)<br clear="all">
       sequence<float> skinCoordWeight [] [0,1]<br clear="all">
       float[3] stiffness 0 0 0 [0,1]<br clear="all">
       float[3] translation 0 0 0 (-infinity,infinity)<br clear="all">
       float[3] ulimit 0 0 0 (-infinity,infinity)<br clear="all">
    }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br clear="all">
<span style="background:#F3F3F3">Corresponding link to current CD1 X3D Architecture:</span><br clear="all">
<br clear="all">
<span style="background:#F3F3F3">* X3D4 Part 1: Architecture and base components, 26 Humanoid Animation (HAnim) component, clause 26.3.3 HAnimJoint</span><br clear="all">
<span style="background:#F3F3F3">* </span></span><span style="color:black"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint</span></a></span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif">all the best, Don<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif">--
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New",serif">X3D graphics, virtual worlds, navy robotics https://</span>
<span style="font-size:10.0pt;font-family:"Courier New",serif">faculty.nps.edu/brutzman<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> John Carlson <yottzumm@gmail.com> <br>
<b>Sent:</b> Sunday, December 26, 2021 2:22 PM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br>
<b>Cc:</b> X3D Graphics public mailing list <x3d-public@web3d.org><br>
<b>Subject:</b> Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM? HAnimHumanoid explained, problem identified, corrections applied<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">While this link is correct  <o:p></o:p></p>
<div>
<p class="MsoNormal"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/hanim.html#HAnimJoint" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/hanim.html#HAnimJoint</a>
 with respect to ulimit and Ilimit defaults, the enclosed link seems outdated.  I cannot seem to clear the cache on my phone.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Could someone check for default ulimit and limit being [] on enclosed link (might require refresh or clearing cache)?  Not the link above.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">John<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I do want to check X3DUOM as well.<o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">On Fri, Dec 24, 2021 at 5:04 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p>I don't see the "empty array" ulimit and llimit defaults  They look like 0 0 0.  Perhaps the attached screenshot is wrong?<o:p></o:p></p>
<p>See:<o:p></o:p></p>
<p><a href="https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_HAnimJoint.html" target="_blank">https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_HAnimJoint.html</a><o:p></o:p></p>
<p>screenshot attached.<o:p></o:p></p>
<p><img border="0" width="1298" height="861" style="width:13.5208in;height:8.9708in" id="Picture_x0020_1" src="cid:image001.png@01D7FA7C.BFCC1270"><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">On 12/24/21 11:14, Brutzman, Donald (Don) (CIV) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The default containerField values can always be found in X3D DTD, XML Schema and X3DUOM.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">A containerField error can only occur if it incorrectly describes the field relationship between a node and a parent.  Our validation tools are pretty robust so you only have to
 worry about conversion errors if you want.  As we saw during this thread, the root-cause problem can occur due to incorrect X3D model.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Found an error in X3D XML Schema and X3DUOM:  default values for HAnimJoint ulimit llimit fields are empty array, not 0 0 0.  Checked in, will deploy updates.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I found some other small adjustments in X3D Canonicalizer and X3dTidy during regression testing last night.  For author clarity, am always including containerField values for X3D3
 scenes.  For terseness, only Metadata* containerField=’metadata’ is included for X3D4.  All HumanoidAnimation .x3d examples are rechecked with tools, updated and checked in.  Re-running regression tests and will eventually upload updated models (probably while
 Santa is somewhere overhead).<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">all the best, Don<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">X3D graphics, virtual worlds, navy robotics https://
<a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a><o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> John Carlson
<a href="mailto:yottzumm@gmail.com" target="_blank"><yottzumm@gmail.com></a> <br>
<b>Sent:</b> Thursday, December 23, 2021 11:24 PM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <a href="mailto:brutzman@nps.edu" target="_blank">
<brutzman@nps.edu></a><br>
<b>Cc:</b> X3D Graphics public mailing list <a href="mailto:x3d-public@web3d.org" target="_blank">
<x3d-public@web3d.org></a><br>
<b>Subject:</b> Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM? HAnimHumanoid explained, problem identified, corrections applied<o:p></o:p></p>
</div>
</div>
<div>
<p>Excellent catch!  What should the default be if there's no containerField?  Throw an error?<o:p></o:p></p>
<p>John<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On 12/24/21 00:45, Brutzman, Donald (Don) (CIV) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The error was in the source .x3d file, the MetadataSet within HAnimHumanoid need correct containerField definition:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<MetadataSet name='HAnimHumanoid.info' containerField='metadata' etc. <o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">all the best, Don<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">X3D graphics, virtual worlds, navy robotics https://
<a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a><o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> John Carlson
<a href="mailto:yottzumm@gmail.com" target="_blank"><yottzumm@gmail.com></a> <br>
<b>Sent:</b> Thursday, December 23, 2021 10:40 PM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <a href="mailto:brutzman@nps.edu" target="_blank">
<brutzman@nps.edu></a><br>
<b>Cc:</b> X3D Graphics public mailing list <a href="mailto:x3d-public@web3d.org" target="_blank">
<x3d-public@web3d.org></a><br>
<b>Subject:</b> Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM? HAnimHumanoid explained, problem identified, corrections applied<o:p></o:p></p>
</div>
</div>
<div>
<p>I think there's still a error in X3dToJson.xslt, conversion from XML to JSON produces<o:p></o:p></p>
<p>[snippet]<o:p></o:p></p>
<p>{ "HAnimHumanoid":<br>
            {    <br>
              "@name":"JinLOA4",<br>
              "@DEF":"hanim_JinLOA4",<br>
              "@loa":4,                 <br>
              "@scale":[0.0225,0.0225,0.0225],<br>
              "@version":"2.0",<br>
<b><u>              "-value":[    </u></b>     <br>
                { "MetadataSet":<br>
                  {              "-value":[    <o:p></o:p></p>
<p> <o:p></o:p></p>
<p>I believe this affects all my downstream serialzers.<o:p></o:p></p>
<p>I will double check that I am using the stylesheet.<o:p></o:p></p>
<p>John<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On 12/23/21 13:50, Brutzman, Donald (Don) (CIV) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi John, thanks for this elaboration of the question.  Here is an in-depth explanation giving multiple related references that answer the question: yes, the /metadata/ field is
 part of HAnimHumanoid node.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">More precise URL for HAnimHumanoid in HAnim v2.0 specification is<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2">
Part 1:  Humanoid animation (HAnim) architecture, Clause 6 Object Interfaces, 6.2 Humanoid<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2">
<a href="https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/Obje" target="_blank">https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/Obje</a> Part 1:  Humanoid animation (HAnim) architecturectInterfaces.html#Humanoid<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">HAnim architecture specification is abstract and must be implemented by other specifications.  Thus you have to look in X3D Architecture specification for corresponding X3D details.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Corresponding X3D Architecture specification is<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="3" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3">
X3D4 Part 1: Architecture and base components, 26 Humanoid Animation (HAnim) component, clause 26.3.2 HAnimHumanoid<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3">
<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimHumanoid" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimHumanoid</a><o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
HAnimHumanoid : X3DChildNode, X3DBoundedObject {<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFVec3f    [in,out] center                0 0 0    (-∞,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFString   [in,out] description           ""<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFBool     [in,out] bboxDisplay           FALSE<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFBool     [in,out] visible               TRUE<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFString   [in,out] info                  []<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFVec3f    [in,out] jointBindingPositions []       (-∞,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFRotation [in,out] jointBindingRotations []       (-∞,∞)|[-1,1]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFVec3f    [in,out] jointBindingScales    []       (0,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] joints                []       [HAnimJoint]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFInt32    [in,out] loa                   -1       [-1,4]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFNode     [in,out] metadata              NULL     [X3DMetadataObject]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] motions               []       [HAnimMotion]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFBool     [in,out] motionsEnabled        []<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFString   [in,out] name                  ""<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFRotation [in,out] rotation              0 0 1 0  (-∞,∞)|[-1,1]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFVec3f    [in,out] scale                 1 1 1    (0,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFRotation [in,out] scaleOrientation      0 0 1 0  (-∞,∞)|[-1,1]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] segments              []       [HAnimSegment]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] sites                 []       [HAnimSite]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFString   [in,out] skeletalConfiguration "BASIC"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] skeleton              []       [HAnimJoint, HAnimSite]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] skin                  []       <s><span style="color:black;background:orange">[IndexedFaceSet, X3DGroupingNode, Shape]</span></s><span style="color:black;background:yellow">[IndexedFaceSet, IndexedFanSet, IndexedQuadSet, IndexedTriangleSet,
 IndexedTriangleStripSet]</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFNode     [in,out] skinBindingCoord      NULL     [X3DCoordinateNode]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFNode     [in,out] skinBindingNormal     NULL     [X3DNormalNode]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFNode     [in,out] skinCoord             NULL     [X3DCoordinateNode]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFNode     [in,out] skinNormal            NULL     [X3DNormalNode]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFVec3f    [in,out] translation           0 0 0    (-∞,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFString   [in,out] version               ""<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  MFNode     [in,out] viewpoints            []       [HAnimSite]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFVec3f    []       bboxCenter            0 0 0    (-∞,∞)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
  SFVec3f    []       bboxSize              -1 -1 -1 [0,∞) or −1 −1 −1<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:18.75pt">
}<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">As you can see, this node signature does include /metadata/ field.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">As you can also see, there is no /value/ field.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Of note is that there is an HAnimHumanoid /info/ field for metadata information, an MFString array of “name=value” pairs.  Very clumsy to use in practice.  The X3D4 Architecture
 notes in 26.3.2 the preferred alternative approach:<o:p></o:p></p>
<ol start="5" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l8 level1 lfo4">
<span style="color:black;background:yellow">Metadata values from the <i>info</i> field can be equivalently encoded via MetadataSet containing related X3DMetadataObject nodes.</span>
<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Conversions are provided by X3dTidy cleanup stylesheet, and converted examples online. (Not finding this information in X3D Scene Authoring Hints, will add it.)<o:p></o:p></p>
<div style="border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="6" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo5">
HumanoidAnimation X3D Examples Archive<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo5">
<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation</a><o:p></o:p></li></ol>
<div style="border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="8" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6">
X3D Example Archives: Humanoid Animation, Characters, Jin LOA 4<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6">
<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4Index.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4Index.html</a><o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6">
<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.html#hanim_JinLOA4" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.html#hanim_JinLOA4</a><o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><HAnimHumanoid DEF='hanim_JinLOA4' loa='4' name='JinLOA4' scale='0.0225 0.0225 0.0225'>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  <MetadataSet name='HAnimHumanoid.info' reference='<a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a>' containerField='metadata'>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    <MetadataString containerField='value' name='authorName' value='Jin Hoon Lee and Min Joo Lee, Chul Hee Jung and Myeong Won Lee'/>
<br>
    <a href="mailto:MetadataString%C2%A0containerField='value'%C2%A0name='authorEmail'%C2%A0value='myeongwonlee@gmail.com'/" target="_blank"><MetadataString containerField='value' name='authorEmail' value='myeongwonlee@gmail.com'/></a>
<br>
    <MetadataString containerField='value' name='creationDate' value='31 March 2011'/>
<br>
    <MetadataString containerField='value' name='gender' value='female'/> <br>
    <MetadataFloat containerField='value' name='height' value='1.5'/> <br>
    <MetadataString containerField='value' name='humanoidVersion' value='"2.0"'/>
<o:p></o:p></p>
<div style="border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  </MetadataSet>
<br>
<a name="m_-2773178822934633318_m_149640313662110"></a>  <HAnimJoint DEF='hanim_humanoid_root' center='0 36.709999 -0.707600' containerField='skeleton' name='humanoid_root'><o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Reviewing X3D Tooltips confirms this answer to your question, along with convenient links to clauses in both specifications.  (Each of the node names e.g. HAnimHumanoid links to
 the current X3D Architecture CD1 clause.)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="11" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7">
X3D Tooltips HAnimHumanoid <o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7">
<a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid" target="_blank">https://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid</a><o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Now checking X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.0.xml<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<ol start="13" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo8">
<a href="https://www.web3d.org/specifications" target="_blank">https://www.web3d.org/specifications</a><o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo8">
<a href="https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml" target="_blank">https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml</a><o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">      <ConcreteNode name="HAnimHumanoid"><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">         <InterfaceDefinition specificationUrl=”<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimHumanoid”" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimHumanoid”</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                              appinfo="The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints, (b)
 serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable metadata such as name, version, author, copyright, age, gender and other information."><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <componentInfo name="HAnim" level="1"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <Inheritance baseType="X3DChildNode"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <AdditionalInheritance baseType="X3DBoundedObject"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="bboxCenter"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="initializeOnly"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DBoundedObject"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="bboxDisplay"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFBool"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="false"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DBoundedObject"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Whether to display bounding box for associated geometry, aligned with world coordinates."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="bboxSize"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="initializeOnly"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="-1 -1 -1"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DBoundedObject"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="bboxSizeType"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational
 cost."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="center"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                  default="0 0 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Translation offset from origin of local coordinate system."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="description"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Author-provided prose that describes intended purpose of this node."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="info"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Contains metadata keyword=value pairs, where approved keyword terms are humanoidVersion authorName authorEmail copyright creationDate usageRestrictions
 age gender height and weight."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="IS"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="IS"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="jointBindingPositions"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Specifies an array of position values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="jointBindingRotations"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFRotation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 1 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Specifies an array of rotation values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="jointBindingScales"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Specifies an array of scale values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="joints"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimJoint"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="loa"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFInt32"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="-1"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   minInclusive="-1"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   maxInclusive="4"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="loaType"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Level Of Articulation 0."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="metadata"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="X3DMetadataObject"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet
 node."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="motions"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimMotion"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Contains any HAnimMotion nodes that can animate the HAnimHumanoid."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="name"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:NMTOKEN"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Unique name attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="rotation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFRotation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 1 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Orientation of children relative to local coordinate system."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="scale"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="1 1 1"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   minExclusive="0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="scaleOrientation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFRotation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 1 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="segments"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimSegment"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="The segments field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="sites"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimSite"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="sites field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skeletalConfiguration"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="BASIC"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Models sharing a common skeletal configuration can share animations and binding poses."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skeleton"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimJoint|HAnimSite"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="List of top-level HAnimJoint and HAnimSite nodes that create the skeleton model."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skin"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="Group|Transform|Shape|IndexedFaceSet"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="List of one or more indexed mesh definitions (such as IndexedFaceSet) that utilize skinCoord point and skinNormal normal data."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skinBindingCoord"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="X3DCoordinateNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Array of Coordinate nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skinBindingNormal"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="X3DNormalNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Array of Normal nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skinCoord"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="X3DCoordinateNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Coordinate node utilized by indexed mesh definitions for skin."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="skinNormal"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="NULL"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="X3DNormalNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Single Normal node utilized by indexed mesh definitions for skin."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="translation"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFVec3f"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="0 0 0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Position of children relative to local coordinate system."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="version"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="2.0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   additionalEnumerationValuesAllowed="false"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   simpleType="hanimVersionChoices"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:NMTOKEN"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="HAnimHumanoid version, where value is 1."><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <enumeration value="1.0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                            appinfo="International standard HAnim 19774 version 1 approved by ISO in 2006. Note that HAnim version 2.0 has more capabilties, while version 1.0 includes
 several small incompatibilities. Since no other versions were formally approved, no other values are allowed for earlier HAnim versions."<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                            documentation=<a href="https://www.web3d.org/documents/specifications/19774/V1.0" target="_blank">"https://www.web3d.org/documents/specifications/19774/V1.0"</a>
 /><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <enumeration value="2.0"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                            appinfo="Revised standard HAnim 19774 version 2 (parts 1 and 2) were approved by ISO in November 2019, published by Web3D Consortium May 2020."<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                            documentation=<a href="https://www.web3d.org/documents/specifications/19774/V2.0" target="_blank">"https://www.web3d.org/documents/specifications/19774/V2.0"</a>
 /><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            </field><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="viewpoints"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="MFNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   acceptableNodeTypes="HAnimSite"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="visible"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFBool"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   default="true"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DBoundedObject"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="Whether or not renderable content within this node is visually displayed."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="DEF"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:ID"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="DEF defines a unique ID name for this node, referenceable by other nodes."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="USE"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:IDREF"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different
 value)."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="class"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:NMTOKENS"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML
 stylesheets."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="id"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   baseType="xs:NMTOKEN"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <field name="style"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   type="SFString"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   accessType="inputOutput"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   inheritedFrom="X3DNode"<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">                   description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style
 Sheets (CSS) and XML stylesheets."/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <containerField default="children" type="xs:NMTOKEN"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            <ContentModel><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="HAnimJoint" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="HAnimSegment" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="HAnimSite" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="HAnimMotion" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="Group"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="Transform"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="Shape"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="IndexedFaceSet"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="Coordinate"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="CoordinateDouble"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="Normal" minOccurs="0" maxOccurs="2"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">               <NodeContentModel name="ProtoInstance" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">            </ContentModel><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">         </InterfaceDefinition><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">      </ConcreteNode><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regarding python, I checked the conversion of JinLOA4.x3d to JinLOA4.py<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Stylesheet X3dToPython.xstl seemed to work OK
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    HAnimHumanoid(DEF='hanim_JinLOA4',loa=4,name='JinLOA4',scale=(0.0225,0.0225,0.0225),version='2.0',<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">      skeleton=[<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">      HAnimJoint(DEF='hanim_humanoid_root',center=(0,36.709999,-0.707600),name='humanoid_root',stiffness=[0,0,0],<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">but then got a self-validation error by the JinLOA4.py python program,
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">create python:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.x3d</a>
 processing with X3dToPython stylesheet...<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.py" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.py</a>
 self-validation tests...<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">validate python:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">x3d.py package loaded, have fun with X3D Graphics!<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Traceback (most recent call last):<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  File "C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.py" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation\Characters\JinLOA4.py</a>",
 line 169, in <module><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    HAnimJoint(DEF='hanim_l_tarsal_distal_interphalangeal_1',center=(2.761,0.539400,5.125),name='l_tarsal_distal_interphalangeal_1',stiffness=[0,0,0],<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  File "C:\x3d-code\<a href="http://www.web3d.org/x3d/stylesheets/python/x3d/x3d.py" target="_blank">www.web3d.org\x3d\stylesheets\python\x3d\x3d.py</a>", line 43724, in __init__<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    self.stiffness = stiffness<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  File "C:\x3d-code\<a href="http://www.web3d.org/x3d/stylesheets/python/x3d/x3d.py" target="_blank">www.web3d.org\x3d\stylesheets\python\x3d\x3d.py</a>", line 43873, in stiffness<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    assertValidSFVec3f(stiffness)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  File "C:\x3d-code\<a href="http://www.web3d.org/x3d/stylesheets/python/x3d/x3d.py" target="_blank">www.web3d.org\x3d\stylesheets\python\x3d\x3d.py</a>", line 3953, in assertValidSFVec3f<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    raise X3DTypeError(str(value)[:100] + ', type=' + str(type(value)) + ' is not a valid Python tuple for SFVec3f')<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">x3d.X3DTypeError: [0, 0, 0], type=<class 'list'> is not a valid Python tuple for SFVec3f<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Result: 1<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Note how stiffness=[0,0,0]was given as a list in brackets, rather than a tuple value in parentheses stiffness=(0,0,0) as might be expected for SFVec3f, and so this is a useful diagnostic.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">However the actual specification type for stiffness is MFFloat.  (This was a mantis issue, might we tighten it to SFVec3f, but decided to keep it MFFloat in case more-advanced kinematics
 engines were someday of interest.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">*
<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint" target="_blank">
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">26.3.3 HAnimJoint<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">HAnimJoint : X3DGroupingNode {<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">[…]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  MFFloat    [in,out] stiffness        [0 0 0]  [0,1]<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Applied change to X3D DTD, X3D XML Schema and again autogenerated X3DUOM and x3d.py and X3D Ontology to match.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">23 DEC 2021, carlson brutzman<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">- restore type of HAnimJoint stiffness field as MFFloat (vice SFVec3f) to match<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  specification, since more-advanced kinematics engines might someday hold interest.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">This fixed the stiffness error.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">However, next got a surprising conversion error (which might have been what you experienced originally):<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">=====================<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">create python:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.x3d</a>
 processing with X3dToPython stylesheet...<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.py" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.py</a>
 self-validation tests...<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">validate python:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">x3d.py package loaded, have fun with X3D Graphics!Traceback (most recent call last):<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">  File "C:\x3d-code\<a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.py" target="_blank">www.web3d.org\x3d\content\examples\HumanoidAnimation\Characters\JinLOA4.py</a>",
 line 50, in <module><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    HAnimHumanoid(DEF='hanim_JinLOA4',loa=4,name='JinLOA4',scale=(0.0225,0.0225,0.0225),version='2.0',<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">TypeError: HAnimHumanoid.__init__() got an unexpected keyword argument 'value'<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Result: 1<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">=====================<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Which apparently was on line 1950,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   value=MetadataSet(name='HAnimHumanoid.info',reference='<a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a>',etc.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">This conversion should have been metadata=MetadataSet etc. Looks like the field name for the HAnimHumanoid MetadataSet was not specified incorrectly, the automatic conversion by
 X3dTidy did not apply correct containerField value.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I have added a rule to X3dTidy.xslt that looks for this case (for either representation, X3D3 or X3D4) and corrects it.  I have added a similar diagnostic rule to X3dSchematron
 checks.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">All affected HAnimHumanoid scenes have been updated and are now getting compiled correctly by Python.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">All changes checked into subversion.  Further regression testing continuing, website uploads to follow.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">So again thanks for exposing this issue.  Pretty complex but resolvable.  Once again the strict nature of Python aided us in achieving high Quality Assurance (QA) for X3D.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Happy holidays with X3D!   8)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">all the best, Don<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">X3D graphics, virtual worlds, navy robotics https://
<a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a><o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> John Carlson
<a href="mailto:yottzumm@gmail.com" target="_blank"><yottzumm@gmail.com></a> <br>
<b>Sent:</b> Wednesday, December 22, 2021 12:44 PM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <a href="mailto:brutzman@nps.edu" target="_blank">
<brutzman@nps.edu></a>; X3D Graphics public mailing list <a href="mailto:x3d-public@web3d.org" target="_blank">
<x3d-public@web3d.org></a><br>
<b>Subject:</b> Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I believe I checked the right standard, here:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a href="https://www.web3d.org/documents/specifications/19774-1/V2.0/index.html" target="_blank">https://www.web3d.org/documents/specifications/19774-1/V2.0/index.html</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> And neither value or metadata is a field????<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Seems a bit strange.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Wed, Dec 22, 2021 at 2:20 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">hoping to see value field added to HAnimHumanoid in X3DUOM, or some notice that the package generating stylesheets are not up-to-date.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Also, check to make sure stiffness is assigned the right data structure (between list and tuple).   And no, iOS, I do not want “Tupperware” for the second time.   We need more women
 mathematicians (sorry for any stereotyping).  On that subject, I wonder what coordinate system crocheted hats use?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Mon, Dec 20, 2021 at 3:17 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<p>Okay, now I seem to be having a similar problem between my python serializer, X3dToPython.xslt, and probably other serialized stuff.  I couldn't figure out how to fix the stiffness issue in X3dToPython.xslt, but hand-editing saved that on this particular
 python file (python/net/x3djsonld/data/JinLOA4.py). Other JinLOA's still have lists with Don's generator.<o:p></o:p></p>
<p>I believe the main change I am dealing with is metadata vs value containerFields.   See JSON diff below.  I'm not seeing relevant changes to X3D JSON schema 4.0.  Does something need to be upgraded in X3DUOM or X3D JSON schema?  I'm not seeing a value field
 in HAnimHumanoid.<o:p></o:p></p>
<p><b>~/X3DJSONLD/src/main/python/net/coderextreme/data</b>$ python JinLOA4.py  <br>
Traceback (most recent call last): <br>
 File "/home/coderextreme/X3DJSONLD/src/main/python/net/coderextreme/data/JinLOA4.py", line 148, in <module>
<br>
   HAnimHumanoid23.setValue(MetadataSet24) <br>
AttributeError: 'org.web3d.x3d.jsail.HAnim.HAnimHumanoid' object has no attribute 'setValue'. Did you mean: 'setName'?
<br>
<b><span style="color:#5454FF;background:white">~/X3DJSONLD/src/main/python/net/x3djsonld/data</span></b><span style="color:black;background:white">$ python JinLOA4.py        </span><br>
x3d.py package loaded, have fun with X3D Graphics! <br>
Traceback (most recent call last): <br>
 File "/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/JinLOA4.py", line 50, in <module>
<br>
   HAnimHumanoid(DEF='hanim_JinLOA4',loa=4,name='JinLOA4',scale=(0.0225,0.0225,0.0225),version='2.0',
<br>
TypeError: HAnimHumanoid.__init__() got an unexpected keyword argument 'value'<o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p><br>
<b>~/X3DJSONLD/src/main/data</b>$ git diff JinLOA4.json <br>
<b><span style="color:black;background:white">diff --git a/src/main/data/JinLOA4.json b/src/main/data/JinLOA4.json</span></b><span style="color:black;background:white">
</span><br>
<b><span style="color:black;background:white">index c970a652a..e1930f4cf 100644</span></b><span style="color:black;background:white">
</span><br>
<b><span style="color:black;background:white">--- a/src/main/data/JinLOA4.json</span></b><span style="color:black;background:white">
</span><br>
<b><span style="color:black;background:white">+++ b/src/main/data/JinLOA4.json</span></b><span style="color:black;background:white">
</span><br>
<span style="color:#18B2B2;background:white">@@ -78,7 +78,7 @@</span><span style="color:black;background:white">
</span><br>
          }, <br>
          { <br>
            "@name":"translated", <br>
<span style="color:#B21818;background:white">-            "@content":"14 October 2021"</span><span style="color:black;background:white">
</span><br>
<span style="color:#18B218;background:white">+            "@content":"20 December 2021"</span><span style="color:black;background:white">
</span><br>
          }, <br>
          { <br>
            "@name":"generator", <br>
<span style="color:#18B2B2;background:white">@@ -116,7 +116,7 @@</span><span style="color:black;background:white">
</span><br>
              "@loa":4, <br>
              "@scale":[0.0225,0.0225,0.0225], <br>
              "@version":"2.0", <br>
<span style="color:#B21818;background:white">-              "-metadata":</span><span style="color:black;background:white">
</span><br>
<span style="color:#18B218;background:white">+              "-value":[</span><span style="color:black;background:white">
</span><br>
                { "MetadataSet": <br>
                  { <br>
                    "@name":"HAnimHumanoid.info", <br>
<span style="color:#18B2B2;background:white">@@ -160,7 +160,8 @@</span><span style="color:black;background:white">
</span><br>
                      } <br>
                    ] <br>
                  } <br>
<span style="color:#B21818;background:white">-                },</span><span style="color:black;background:white">
</span><br>
<span style="color:#18B218;background:white">+                }</span><span style="color:black;background:white">
</span><br>
<span style="color:#18B218;background:white">+              ],</span><span style="color:black;background:white">
</span><br>
              "-skeleton":[ <br>
                { "HAnimJoint": <br>
                  {<br>
<br>
===================<o:p></o:p></p>
<p>Validating JSON against schema:<o:p></o:p></p>
<p><b>~/X3DJSONLD/src/main/schema</b>$ node ~/x3dvalidate/x3dvalidate.js ../data/JinLOA4.json  <br>
Loading schema <br>
Parsing schema <br>
Adding schema <br>
Schema 4.0 added <br>
Schema 4.0 compiled <br>
================================================================================ <br>
File: ../data/JinLOA4.json <br>
Error reading ../data/JinLOA4.json  <br>
keyword: required <br>
instancePath: /X3D/Scene/-children/3/HAnimHumanoid <br>
message: must have required property @USE <br>
params: {"missingProperty":"@USE"} <br>
file: ../data/JinLOA4.json <br>
version: 4.0 <br>
<br>
keyword: additionalProperties <br>
instancePath: /X3D/Scene/-children/3/HAnimHumanoid <br>
message: must NOT have additional properties <br>
params: {"additionalProperty":"-value"} <br>
file: ../data/JinLOA4.json <br>
version: 4.0 <br>
<br>
keyword: oneOf <br>
instancePath: /X3D/Scene/-children/3/HAnimHumanoid <br>
message: must match exactly one schema in "oneOf" <br>
params: {"passingSchemas":null} <br>
file: ../data/JinLOA4.json <br>
version: 4.0<o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</body>
</html>