<html 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)"><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;}
/* 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;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
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;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New";}
.MsoChpDefault
{mso-style-type:export-only;}
@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:129830939;
mso-list-type:hybrid;
mso-list-template-ids:972958720 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1
{mso-list-id:1114902769;
mso-list-type:hybrid;
mso-list-template-ids:1691275736 1957992126 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-start-at:2;
mso-level-number-format:bullet;
mso-level-text:\F0B7;
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 l1: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";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1: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";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1: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";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2
{mso-list-id:1197354219;
mso-list-type:hybrid;
mso-list-template-ids:1777378244 1713537388 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-start-at:2;
mso-level-number-format:bullet;
mso-level-text:\F0B7;
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 l2: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";}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l2: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";}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l2: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";}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal> <xs:enumeration value="vl5"><o:p></o:p></p><p class=MsoNormal> <xs:annotation><o:p></o:p></p><p class=MsoNormal> <xs:appinfo><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="index" type="xs:integer" fixed="59"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="default" type="SFVec3f" fixed="0.0028 1.0568 -0.0776"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="parent" type="hanimJointNameValues" fixed="sacroiliac"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="loa" type="loaType" fixed="1"/><o:p></o:p></p><p class=MsoNormal> </xs:appinfo><o:p></o:p></p><p class=MsoNormal> <xs:documentation source=https://en.wikipedia.org/wiki/Vertebral_column/><o:p></o:p></p><p class=MsoNormal> </xs:annotation><o:p></o:p></p><p class=MsoNormal> </xs:enumeration><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This is wrong since parent of vl5 is clearly shown as root in diagram.<o:p></o:p></p><p class=MsoNormal>Joe<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Saturday, January 21, 2023 7:23 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a>; <a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:h-anim@web3d.org">Humanoid Animation (H-Anim) Working Group</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>RE: HAnim Schematron output sampled</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Joe and John, thanks for in-depth sleuthing and this clear writeup. So far so good.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The current Humanoid Animation (HAnim) International Standard (IS) is of course the authoritative source to decide all mismatches.<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:l2 level1 lfo1'>ISO/IEC 19774-1:2019 HAnim architecture<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo1'>https://www.web3d.org/documents/specifications/19774/V2.0/index.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Of encouraging note is that all of our X3D4 diagnostics are generated by<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=1 type=a><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'>Parent-child relationships defined in X3D4 XML Schema, for example vl5:<o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>https://www.web3d.org/specifications/x3d-4.0.xsd<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_hanimJointNameValues.html<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_hanimSegmentNameValues.html<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal> <xs:enumeration value="vl5"><o:p></o:p></p><p class=MsoNormal> <xs:annotation><o:p></o:p></p><p class=MsoNormal> <xs:appinfo><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="index" type="xs:integer" fixed="59"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="default" type="SFVec3f" fixed="0.0028 1.0568 -0.0776"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="parent" type="hanimJointNameValues" fixed="sacroiliac"/><o:p></o:p></p><p class=MsoNormal> <xs:attribute name="loa" type="loaType" fixed="1"/><o:p></o:p></p><p class=MsoNormal> </xs:appinfo><o:p></o:p></p><p class=MsoNormal> <xs:documentation source=https://en.wikipedia.org/wiki/Vertebral_column/><o:p></o:p></p><p class=MsoNormal> </xs:annotation><o:p></o:p></p><p class=MsoNormal> </xs:enumeration><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=2 type=a><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'>Which in turn are used to generate X3DUOM,<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'>Which in turn is used to generate diagnostic rules checking on parent-child relationships,<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'>Which in turn are copied/pasted into X3D Schematron for in-depth quality assurance (QA).<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo2'>Additional X3DUOM-based checks get found in X3DJSAIL Java and X3DPSAIL x3d.py Python libraries.<o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, as discussed with John during yesterday’s weekly X3D Working Group meeting, the key for continued sleuthing is to simply:<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:l1 level1 lfo3'>Go through diagnostics to see if the error is actually in the .x3d model content (which is the usual case).<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo3'>Build a list of incorrect parent child relationships that appear to be mistaken schema definitions and diagnostics.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo3'>We then double/triple check that list together, correct any confirmed errors in the X3D XML Schema accordingly, and all other diagnostics gets updated.<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>PLEASE DO NOT attempt any further programming heroics. Not helpful.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, worthy “attention to detail” efforts followed by simple adjustments. Good hunting…<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>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"'>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"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>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> Joseph D Williams <joedwil@earthlink.net> <br><b>Sent:</b> Friday, January 20, 2023 5:02 PM<br><b>To:</b> John Carlson <yottzumm@gmail.com>; Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; X3D Graphics public mailing list <x3d-public@web3d.org>; Humanoid Animation (H-Anim) Working Group <h-anim@web3d.org><br><b>Subject:</b> RE: HAnim Schematron output sampled<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hi HAnim folks, <o:p></o:p></p><p class=MsoNormal>Again, this is something we might want to actually file a bug on. <o:p></o:p></p><p class=MsoNormal>The errors detected validation of this model are counter to the spec hierarchy diagrams. <o:p></o:p></p><p class=MsoNormal>Specifically the root and sacro, vl5, hips, vc7, and sternos. . <o:p></o:p></p><p class=MsoNormal>I have looked back at the oldest and see that the text and art of current hierarchy diagrams and example user code look consistent throughout the ages. <o:p></o:p></p><p class=MsoNormal>For the basic humanoid, the root parents the sacro and the vl5. Then the sacro parents right and left hips for lower body and vl5 parents the base of the spine and upper body. Analyzing these connections by animating the figure shows that these structures were connected this way to provide greater realism than by parenting vl5 and both hips by sacro. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So, something to recommend is that we have the schema and all recognize the hierarchy defined by the diagrams in the spec, which are, with only one minor space problem, are correct historically. <o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt'><o:p> </o:p></span></p><div><pre><span style='font-family:"Calibri",sans-serif'>This leaves the other vc7 and sterno siblings errors to discuss. Again, the model represented by the diagrams are not matching the schema, apparently, from the results John is getting. Likewise, the difference between the specification and the schematron result is mainly medical, being the medical distinction at vt1. <o:p></o:p></span></pre><pre><span style='font-family:"Calibri",sans-serif'><o:p> </o:p></span></pre></div><pre><span style='font-family:"Calibri",sans-serif'>Anyway, as we see this along with the typical models emerging into x3d from bvh animation files, very interesting how to adapt these very common models, both with history, into the ‘Standard’ model. <o:p></o:p></span></pre><pre><o:p> </o:p></pre><p class=MsoNormal>I would see this as more of a problem in our validation rather than any problem in the basic definitions. <o:p></o:p></p><p class=MsoNormal>We do have examples that pass, and examples that fail.<o:p></o:p></p><p class=MsoNormal>Thanks and Best, <o:p></o:p></p><p class=MsoNormal>Joe <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Sunday, January 15, 2023 8:27 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joe D Williams</a>; <a href="mailto:brutzman@nps.edu">Don Brutzman</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:h-anim@web3d.org">Humanoid Animation (H-Anim) Working Group</a><br><b>Subject: </b>Re: HAnim Schematron output sampled<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hold on! vl5 is a child of humanoid_root! There are 3 places in JohnJoint2.x3d fails the schematron, and Joe and I are now thinking the schematron/X3DUOM may be wrong.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm not sure if Don has a way to generate a hierarchy from X3DUOM or XML schema for HAnim-LOA4 that I can parse with perl?<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>Below edited <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><div><p class=MsoNormal>On Sun, Jan 15, 2023 at 7:46 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><div><div><p class=MsoNormal style='margin-left:9.6pt'><o:p> </o:p></p></div><p class=MsoNormal style='margin-left:9.6pt'><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><div><div><p class=MsoNormal style='margin-left:19.2pt'><br>vl5 has parent humanoid_root rather than expected sacroiliac. No, vl5 is not a child of sacroiliac, rather a sibling, according to Joe. The standard wins!<o:p></o:p></p></div></div></div></blockquote><div><p class=MsoNormal style='margin-left:9.6pt'>l_sternoclavicular has parent vt1 rather than expected vc7. Schematron/X3DUOM wrong.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'>r_sternoclavicular has parent vt1 rather than expected vc7. Schematron/X3DUOM wrong.<o:p></o:p></p></div></div></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div></div></div><p class=MsoNormal>I will now check XML schema.<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>