<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">Yes,John,</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>> Okay, I've made a first cut at the joint mapping.  I'm guessing the TIP, "?_1-5" are Sites.
<p style="margin: 0.1rem 0; line-height: 1.0;">Correct, this is a named Site in HAnim, termed an end-effector, a touch point. Not used as Joint, at least not involved in main articulation, but as a Site that is a child of Segment, child of Joint. Site can include sensor, geometry, displacer, anything x3d except Joint, and please not as a direct element of skeleton animation. This is not harmful there because the location can be replaced with some functionality, as intended. The location maybe should be added as Joint pinky_nail for instant animation of nails or something but that is up to the spec team. The only other  reason is to tune up some geometry motions around the area. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">However, seeing this style of animating specific skin vertices might show a shortcoming inx3d because, at this time the Site is located directly by skeleton joint motion and may natively follow exact skin point deformation in extreme cases. I'd like to see that happen where it makes a difference. But anyway, at this time, HAnim has control of skin but does not have interface to attach importance of location and orientation for any single or collection of geometry points.  </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;">> Why does the right hand have l_midcarpal_1 and l_midcarpal_2?  Curious!</span></p>
where, I looked in tables and art and did not see.Thanks,Joe
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>

<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: John Carlson <yottzumm@gmail.com><br>Sent: Aug 10, 2023 12:31 PM<br>To: X3D Graphics public mailing list <x3d-public@web3d.org>, Vincent Marchetti <vmarchetti@kshell.com><br>Subject: Re: [x3d-public] Anyone want to help me translate to HAnim?</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Okay, I've made a first cut at the joint mapping.  I'm guessing the TIP, "?_1-5" are Sites.</div>
<div dir="ltr"> </div>
<div>Reference:</div>
<div dir="ltr"> </div>
<div dir="ltr"><a href="https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/concepts.html#f-HandJoints">https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/concepts.html#f-HandJoints</a><br>
<div> </div>
<div>Why does the right hand have l_midcarpal_1 and l_midcarpal_2?  Curious!</div>
<div> </div>
<div> </div>
<div>
<div>WRIST =  [0, "WRIST", "radiocarpal"]</div>
<div>THUMB_CMC = [1, "THUMB_CMC", "carpometacarpal_1"]</div>
<div>THUMB_MCP = [2, "THUMB_MCP", "metacarpophalangeal_1"]</div>
<div>THUMB_IP = [3, "THUMB_IP", "carpal_interphalangeal_1"]</div>
<div>THUMB_TIP = [4, "THUMB_TIP", "?_1"]</div>
<div>INDEX_FINGER_MCP = [5, "INDEX_FINGER_MCP", "metacarpophalangeal_2"]</div>
<div>INDEX_FINGER_PIP = [6, "INDEX_FINGER_PIP", "carpal_proximal_interphalangeal_2"]</div>
<div>INDEX_FINGER_DIP = [7, "INDEX_FINGER_DIP", "carpal_distal_interphalangeal_2"]</div>
<div>INDEX_FINGER_TIP = [8, "INDEX_FINGER_TIP", "?_2"]</div>
<div>MIDDLE_FINGER_MCP = [9, "MIDDLE_FINGER_MCP", "metacarpophalangeal_3"]</div>
<div>MIDDLE_FINGER_PIP = [10, "MIDDLE_FINGER_PIP", "carpal_proximal_interphalangeal_3"]</div>
<div>MIDDLE_FINGER_DIP = [11, "MIDDLE_FINGER_DIP", "carpal_distal_interphalangeal_3"]</div>
<div>MIDDLE_FINGER_TIP = [12, "MIDDLE_FINGER_TIP", "?_3"]</div>
<div>RING_FINGER_MCP = [13, "RING_FINGER_MCP", "metacarpophalangeal_4"]</div>
<div>RING_FINGER_PIP = [14, "RING_FINGER_PIP", "carpal_proximal_interphalangeal_4"]</div>
<div>RING_FINGER_DIP = [15, "RING_FINGER_DIP", "carpal_distal_interphalangeal_4"]</div>
<div>RING_FINGER_TIP = [16, "RING_FINGER_TIP", "?_4"]</div>
<div>PINKY_MCP = [17, "PINKY_MCP", "metacarpophalangeal_5"]</div>
<div>PINKY_PIP = [18, "PINKY_PIP", "carpal_proximal_interphalangeal_5"]</div>
<div>PINKY_DIP = [19, "PINKY_DIP", "carpal_distal_interphalangeal_5"]</div>
<div>PINKY_TIP = [20, "PINKY_TIP", "?_5"]</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Thu, Aug 10, 2023 at 11:41 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div dir="ltr">
<div dir="ltr">
<div>This is MediaPipe Holistic, with my strings.  No need for l_ , r_ prefixes, I add them.  I'm guessing I can convert the CMC, MCP, IP, PIP, DIP, and TIP.  If someone already has this in Python, great.  I will still need short names for display, but I think this will be going into BVN and X3D using X3D-Edit.</div>
<div> </div>
<div>I'm not sure about WRIST, but I can look at diagrams and figure most of this stuff out.  If someone already has a mapping, handing it over would be awesome. In exchange, I will give you a good Holistic program (I haven't moved on to newer things, I couldn't get them to work.  I guess Windows 10 is not a priority for Google.  Mobile, yes).  So, to let you know what I'm doing, I'm trying to convert video to BVH, then I'll use X3D-Edit to go to X3D.</div>
<div> </div>
<div>WRIST =  [0, "WRIST"]</div>
<div>THUMB_CMC = [1, "THUMB_CMC"]</div>
<div>THUMB_MCP = [2, "THUMB_MCP"]</div>
<div>THUMB_IP = [3, "THUMB_IP"]</div>
<div>THUMB_TIP = [4, "THUMB_TIP"]</div>
<div>INDEX_FINGER_MCP = [5, "INDEX_FINGER_MCP"]</div>
<div>INDEX_FINGER_PIP = [6, "INDEX_FINGER_PIP"]</div>
<div>INDEX_FINGER_DIP = [7, "INDEX_FINGER_DIP"]</div>
<div>INDEX_FINGER_TIP = [8, "INDEX_FINGER_TIP"]</div>
<div>MIDDLE_FINGER_MCP = [9, "MIDDLE_FINGER_MCP"]</div>
<div>MIDDLE_FINGER_PIP = [10, "MIDDLE_FINGER_PIP"]</div>
<div>MIDDLE_FINGER_DIP = [11, "MIDDLE_FINGER_DIP"]</div>
<div>MIDDLE_FINGER_TIP = [12, "MIDDLE_FINGER_TIP"]</div>
<div>RING_FINGER_MCP = [13, "RING_FINGER_MCP"]</div>
<div>RING_FINGER_PIP = [14, "RING_FINGER_PIP"]</div>
<div>RING_FINGER_DIP = [15, "RING_FINGER_DIP"]</div>
<div>RING_FINGER_TIP = [16, "RING_FINGER_TIP"]</div>
<div>PINKY_MCP = [17, "PINKY_MCP"]</div>
<div>PINKY_PIP = [18, "PINKY_PIP"]</div>
<div>PINKY_DIP = [19, "PINKY_DIP"]</div>
<div>PINKY_TIP = [20, "PINKY_TIP"]</div>
</div>
</div>
</blockquote>
</div>
</div>

<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>