<div dir="ltr"><div><div>In freewrl DEF/USE is just for the parser, for when you want to ROUTE or re-USE a node. Once its parsed we don't refer to those DEF names in HAnim. </div><div>In freewrl, the Motion nodes -including HAnimMotion and (MotionPlay + MotionClip) don't need the DEF names  Just the joint name="l_shoulder" names.</div></div><div>-Doug</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 24, 2020 at 4:03 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5601582124530706829WordSection1"><ul style="margin-top:0in" type="disc"><li class="gmail-m_-5601582124530706829MsoListParagraph" style="margin-left:0in">Can we change the USE reference node to SFString instead of SFNode?<u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">That does nothing but mess up USE even more. <u></u><u></u></p><p class="MsoNormal">The main idea is that the USE statements refer to the DEF name which does not match the joint names in the Motion node. Am I wrong about this? The DEF names are different from the name field  in the Joint. Sooner or later the Motion animation stuff has to know both. So what to do? <u></u><u></u></p><p class="MsoNormal">It is obvious that the Motion node needs to know the Joint name first, to see if there are matches, then needs to find the DEF names to run the animation. What to do? I didn’t like or see the need for the Humanoid joints, segments, and sites fields because if xml, then it is easy to use DOM interfaces to find out the list of Joint nodes and give both the DEF name and the name name.<u></u><u></u></p><p class="MsoNormal">Joe<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Wednesday, June 24, 2020 1:23 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:brutzman@nps.edu" target="_blank">Don Brutzman</a>; <a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] What is "loa" ?</p></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Can we change the USE reference node to SFString instead of SFNode?</p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Wed, Jun 24, 2020 at 3:15 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">Also if not too late, which it definitely should not be, Please change the Humanoid joints, segments, and sites fields to hold an MFString “string’ ‘string’…” style that includes all Joint names, Segment names, and Site names. This aligns with the needs of the Humanoid Motion node that needs the actual names, not the DEFs. </p><p class="MsoNormal">Including these in a USE instance is confusing because the DEF actually needs to be ignored by the hanim browser as far as rendering in concerned, and does not align with the needs of the Humanoid Motion node because that node needs the actual Joint names, not the actual Joint animation interface DEF names. </p><p class="MsoNormal"> </p><p class="MsoNormal">As I said, I think I finally can agree with including those Humanoid fields if they actually serve a purpose. That purpose is to deliver sets of actual names that can be used by the Humanoid Motion node. </p><p class="MsoNormal">Or, not a favorite of mine, the Humanoid Motion node should be changed to specify the Joint DEF names, which whatever is under the covers would have to discover anyway. </p><p class="MsoNormal"> </p><p class="MsoNormal">Thanks and Best, </p></div></div><div><div><p class="MsoNormal">Joe</p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a><br><b>Sent: </b>Wednesday, June 24, 2020 8:57 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu" target="_blank">Don Brutzman</a>; <a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] What is "loa" ?</p></div><p class="MsoNormal"> </p><div><div><div><p class="MsoNormal">Don - if not too late for v4, facilitation and.or next steps requested for following topic:</p></div><div><p class="MsoNormal">v4 HAnimMotion > MF field types in (web3d supplemental) MotionClip node </p></div><div><p class="MsoNormal">Thanks,</p></div><div><p class="MsoNormal">-Doug Sanden</p></div><div><p class="MsoNormal">more..</p></div><div><p class="MsoNormal">There may be a consensus forming around the idea of the extra nodes - MotionPlay and MotionClip - having MF fields for channels, joints (and values).. The 2 extra nodes aren't needed for full compliance to HAnim2 - they are supplemental - and so don't need to strictly comply. with field syntax.</p></div><div><p class="MsoNormal">1) HAnimMotion as specified in HANim2 with SF fields for channels, joints and values</p></div><div><p class="MsoNormal">-- complies with HAnim2 specs fully</p></div><div><p class="MsoNormal">2) HAnimMotionPlay + HAnimMotionClip extra / supplemental nodes</p></div><div><p class="MsoNormal">- MotionClip could have MF fields for channels, joints and values to assist authoring tool support</p></div><div><p class="MsoNormal">- (in theory could have both SF and MF under different names if needed for abstract node inheritance ie parsedChannels MFString?)</p></div><div><p class="MsoNormal">- and url field for loading .bvh files</p></div><div><p class="MsoNormal">-- an SFNode nameMap field will help with some bvh use cases</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Related to</p></div><div><p class="MsoNormal"> </p><p class="MsoNormal"><a href="http://dug9.users.sourceforge.net/web3d/tests/hanim/web3d/HAnim_Motion.pdf" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/hanim/web3d/HAnim_Motion.pdf</a></p><p class="MsoNormal"> </p><p class="MsoNormal"><span style="font-size:9pt;color:black;background:rgb(243,243,243)">Mantis (resolved): 0001312: Mismatched type defaults defined for HAnimMotion channels field in X3D4 </span></p></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">On Tue, Jun 23, 2020 at 9:36 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><div><p class="MsoNormal">Basically, me like very much</p><p class="MsoNormal">Joe</p><p class="MsoNormal"> </p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a><br><b>Sent: </b>Monday, June 22, 2020 5:07 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] What is "loa" ?</p></div><p class="MsoNormal"> </p><div><p class="MsoNormal">But I think there's room for both methods. </p><div><p class="MsoNormal">- the Motion node probably needs to conform to HAnim 2.0 specifications already registered with (whatever body - is it ISO?).</p></div><div><p class="MsoNormal">- a few more non-hanim-standard nodes could be considered </p></div><div><p class="MsoNormal">- I proposed a few - HAnimMotionPaly + HAnimMotionData/HAnimMotionDataFile </p></div><div><p class="MsoNormal">-- Don suggested merging HAnimMotionData and DataFile. I suggested HAnimMotionClip for the name</p></div><div><p class="MsoNormal">- HAnimMotionClip has the 3 data fields from Motion. But when loading from url/,.bvh file, it doesn't populate those fields. Just uses them like HAnimMotion when no url given.</p></div><div><p class="MsoNormal">So one way to make more of us happy:</p></div><div><p class="MsoNormal">- keep the HAnimMotion node as defined for HAnim 2,0 specs</p></div><div><p class="MsoNormal">- Do the MotionPlay + MotionClip additional nodes</p></div><div><p class="MsoNormal">-- put a url field tor Doug (and the freewrlians who like the option to play with freely downloaded .bvh mocap files)</p></div><div><p class="MsoNormal">-- put MF fields for Joe who likes style sheet conversions and authoring tool workflows</p></div><div><p class="MsoNormal">How does that sound?</p></div><div><p class="MsoNormal">-Doug</p></div><div><p class="MsoNormal"> </p></div></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">On Mon, Jun 22, 2020 at 5:40 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><p class="MsoNormal">I can type in an image pixel by pixel into an MF field. Its more convenient to give a url to an image file.</p><div><p class="MsoNormal">Same with .bvh.</p></div><div><p class="MsoNormal">-Doug </p></div></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">On Mon, Jun 22, 2020 at 5:34 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><div><ul type="disc"><li class="MsoNormal">Or - have web3d browsers load .bvh directly, via a mapping / lookup node / field./ table which you would likely also need for import tools.</li></ul><p class="MsoNormal"> </p><p class="MsoNormal">As discussed in another thread mainly about actually importing a complete bvh file, that is a legacy style that has the ‘official’ playback  skeleton is hidden (hanim V1 and x3d  exposed it using the Humanoid skeleton field) and the ‘user’ just imports his custom bvh file that is already matched to the internal hidden playback skeleton and then it gets executed and user gets some results. Maybe a video, even. Definitely not designed for realtime interactions. </p><p class="MsoNormal"> </p><p class="MsoNormal">As is seen using Motion node, this style looks easy at first, then gets hard when you actually want to take control by editing the motion data, or to load another data set, or to update the ‘standard’ playback skeleton or imported capture skeleton. </p><p class="MsoNormal"> </p><p class="MsoNormal">x3d hanim gets away from this legacy owner/user model by exposing the playback skeleton and the animation structures directly to the author. And, by using a coding scheme where animations do not need to be a part of the Humanoid user code we are more happy. </p><p class="MsoNormal">Thanks, </p><p class="MsoNormal">Joe</p><p class="MsoNormal"> </p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Sent: </b>Monday, June 22, 2020 3:49 PM<br><b>To: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] What is "loa" ?</p></div><p class="MsoNormal"> </p><ul type="disc"><li class="MsoNormal">If so, then -as we get further from copy and pasta-ability- there may be some demand for tools to import .bvh and convert to these x3d MF fields.</li></ul><p class="MsoNormal"> </p><p class="MsoNormal">Right, I think the best idea would be to have a simple tool take the bvh file and turn it into xml of gltf style that can be validated and reformatted for editing. And, unless we want to treat strings like mf numbers, strings need delimiting quotes. </p><p class="MsoNormal">Thanks for the hanim thoughts.</p><p class="MsoNormal">Joe</p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a><br><b>Sent: </b>Saturday, June 20, 2020 1:23 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] What is "loa" ?</p></div><p class="MsoNormal"> </p><div><p class="MsoNormal">Hypothesis: the hanim motion fields were originally designed to make it easy to copy and paste from freely available motion capture .bvh files.</p><div><p class="MsoNormal">If so, then -as we get further from copy and pasta-ability- there may be some demand for tools to import .bvh and convert to these x3d MF fields.</p></div><div><p class="MsoNormal">Or - have web3d browsers load .bvh directly, via a mapping / lookup node / field./ table which you would likely also need for import tools.</p></div><div><p class="MsoNormal">-Doug</p></div></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">On Sat, Jun 20, 2020 at 12:38 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><div><div><p class="MsoNormal" style="margin-left:4.8pt"><a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/ExampleMocapAnimationMotionObject.html" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/ExampleMocapAnimationMotionObject.html</a> </p></div><div><p class="MsoNormal" style="margin-left:4.8pt">This version of AnnexD is what I used - and it looks like an SFString 0 as does values and jpints</p></div><div><p class="MsoNormal" style="margin-left:4.8pt">WARNING - any examples from this AnnexD may need rework for web3d </p></div><div><p class="MsoNormal" style="margin-left:4.8pt">-Doug</p></div><div><p class="MsoNormal" style="margin-left:4.8pt"> </p></div></div></div><p class="MsoNormal" style="margin-left:4.8pt"> </p><div><div><p class="MsoNormal" style="margin-left:4.8pt">On Sat, Jun 20, 2020 at 12:21 PM Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:</p></div></div></blockquote></div><p class="MsoNormal" style="margin-left:9.6pt">MUFTI you definitely want to be looking at the HAnim2 specifications.<br><br>Web3D Consortium members are the controlling authority for X3D and HAnim specifications, International Standards Organization (ISO) certifies.<br><br>X3D3 is simply implementing HAnim2, typically as tersely as possible so that there is no confusion in prose that HAnim2 is the controlling specification.  Please see<br><br>* ISO/IEC 19774-1, HAnim2 Specifications parts 1 and 2<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/</a><br><br>===============================================<br>* ISO/IEC 19774-1, HAnim2 Specifications part 1<br>   clause 3 Terms and definitions<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/glossary.html" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/glossary.html</a><br><br>3.11<br>   level of articulation<br>   LOA<br>   degree of fidelity based on number of joints in an HAnim figure<br>===============================================<br><br>also<br><br>* 4.8.5 Levels of articulation<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation</a><br><br>"Level of articulation (LOA) represents the complexity and detail of joints for a humanoid skeletal hierarchy, and can be used for generating various motions based on the joints. There are five levels of articulation:<br><br>     LOA‑0 represents only the humanoid_root Joint object without an accompanying hierarchy, as shown in (Figure 4.3).<br>     LOA‑1 represents the simplest organization and hierarchy of joints for a humanoid. There are 18 joints and 18 segments. Each segment has a joint in the hierarchy. Figure 4.4 represents LOA‑1 joints.<br>     LOA‑2 consists of 71 joints and 71 segments (Figure 4.5).<br>     LOA‑3 consists of 94 joints and 94 segments (Figure 4.6).<br>     LOA‑4 builds on LOA‑3 by adding anatomical details of hands and feet (Figure 4.7). LOA‑4 consists of 148 joints and 148 segments. Hands and feet joints for LOA‑4 are illustrated in 4.9.3 and 4.9.4 respectively."<br><br><br>* 4.9 Structure of a humanoid, 4.9.6 Hierarchy<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy</a><br><br>* 4.9 Structure of a humanoid<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html</a><br><br>* Annex A (informative) Nominal human body dimensions and levels of articulation (LOAs)<br>   Nominal human body dimensions and levels of articulation (LOAs)<br><br>* A.2 Levels of articulation (LOAs)<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/BodyDimensionsAndLOAs.html#LevelsOfArticulation" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/BodyDimensionsAndLOAs.html#LevelsOfArticulation</a><br><br>There is a lot of information in there that deserves careful reading.  You will find tables and diagrams that illustrate every joint and (bone) segment in the human body, along with a number of useful feature-point sites.  This took years of effort by many members of HAnim working group.<br><br>Current work by Joe Williams, John Carlson and myself is improving past-legacy examples to match HAnim2 capabilities with X3D4.  We hope that testing and verification will help.<br><br>* HumanoidAnimation X3D Examples Archive<br>   <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation</a><br><br>* X3D Tooltips, HAnimHumanoid loa<br>   <a href="https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimHumanoid.loa" target="_blank">https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimHumanoid.loa</a><br><br>HAnim designers hope that by identifying both HAnimHumanoid models and HAnimMotion animations with the LOA supported, it will be easier to mix/match models and animations.  Since each LOA is a strict subset of the next LOA, some compatibility is possible across human LOA levels.<br><br>* 4.9.7 Site and Segment relationships<br>   <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#SiteSegmentRelationships" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#SiteSegmentRelationships</a><br><br>It is not impossible to think that someday this work might even rise to the level of rigor needed for 3D HAnim models becoming part of medical records.  HAnim and X3D4 have the potential to help... everyone.<br><br>Thanks for your scrutiny and helpful questions.<br><br><br>On 6/18/2020 11:02 PM, John Carlson wrote:<br>> <br>> To answer your question, many parts of the government like to create acronyms.<br>> <br>> John<br><br>Sorry John, can't blame government for this one.  (Wondering, are parts of the government controlling your keyboard?!)<br><br>> On Fri, Jun 19, 2020 at 12:38 AM J. Scheurich <<a href="mailto:mufti11@web.de" target="_blank">mufti11@web.de</a> <mailto:<a href="mailto:mufti11@web.de" target="_blank">mufti11@web.de</a>>> wrote:<br>> <br>>     hI,<br>> <br>>     From<br>> <br>>     <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD1/Part01/components/hanim.html#HAnimMotion" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD1/Part01/components/hanim.html#HAnimMotion</a><br>> <br>>     SFInt32 [in,out] loa -1 [-1,4]<br>> <br>>     What does "loa" mean ? Fieldnames in X3D are often english words,<br>>     but the dictionary <a href="http://leo.org" target="_blank">leo.org</a> <<a href="http://leo.org" target="_blank">http://leo.org</a>> has no results for "loa" 8-(<br>> <br>>     so long<br>>     MUFTI<br>all the best, Don<br>-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a><br><br>_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p><p class="MsoNormal"> </p></div></div></blockquote></div></blockquote></div><p class="MsoNormal" style="margin-left:9.6pt"> </p></div></div></blockquote></div></div></div><p class="MsoNormal" style="margin-left:4.8pt"> </p><p class="MsoNormal"> </p></div></div></blockquote></div></div><p class="MsoNormal" style="margin-left:4.8pt">_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div>