<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=us-ascii"><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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 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;}
h3
        {mso-style-priority:9;
        mso-style-link:"Heading 3 Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:13.5pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
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;
        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.Heading3Char
        {mso-style-name:"Heading 3 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 3";
        font-family:"Calibri Light",sans-serif;
        color:#1F3763;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        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:1139298884;
        mso-list-type:hybrid;
        mso-list-template-ids:-1975744138 -1370440874 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        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 l0: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 l0: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 l0: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 l0: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 l0: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 l0: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 l0: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 l0: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><!--[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>Joe, here is followup to potential improvements for HTML-pretty-print output of HAnim visualization tree.  Am cc:ing x3d-public in case anyone has further insights.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Improvements applied for two current examplesas follows.  Note use of ^ indicating HAnimSite, and % indicating HAnimDisplacer, with list of relevant node names following just below the full tree.<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:l0 level1 lfo1'>X3D Example Archives: Humanoid Animation, Skin, Joe Kick<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>This Joe model is a HAnim version 2 LOA-3 Humanoid with textured skin based on the original HAnim Specification and data from CAESAR models.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><a name=HumanHAnimHumanoidReport><span style='font-family:"Times New Roman",serif;color:black'>Visualization report for HAnimHumanoid model </span></a><span style='font-family:"Times New Roman",serif;color:black'><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_Human"><span style='color:maroon'>Joe_Human</span></a></span><o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#HumanHAnimHumanoidReport<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>=============================================================================================================================<o:p></o:p></p><p class=MsoNormal>HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (94) : HAnimSegment (1) % HAnimDisplacer (1) ^ HAnimSite (1)<o:p></o:p></p><p class=MsoNormal>=============================================================================================================================<o:p></o:p></p><p class=MsoNormal>HAnimHumanoid DEF='Joe_Human name='Human' loa='3'<o:p></o:p></p><p class=MsoNormal>skin Shape DEF='Joe_Shape'<o:p></o:p></p><p class=MsoNormal>skeleton<o:p></o:p></p><p class=MsoNormal>  humanoid_root : sacrum ^ RootFront_view<o:p></o:p></p><p class=MsoNormal>    sacroiliac<o:p></o:p></p><p class=MsoNormal>    | l_hip<o:p></o:p></p><p class=MsoNormal>    | | l_knee<o:p></o:p></p><p class=MsoNormal>    | |   l_talocrural<o:p></o:p></p><p class=MsoNormal>    | |     l_tarsometatarsal_2<o:p></o:p></p><p class=MsoNormal>    | |       l_metatarsophalangeal_2<o:p></o:p></p><p class=MsoNormal>    | |         l_tarsal_distal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>    | r_hip<o:p></o:p></p><p class=MsoNormal>    |   r_knee<o:p></o:p></p><p class=MsoNormal>    |     r_talocrural<o:p></o:p></p><p class=MsoNormal>    |       r_tarsometatarsal_2<o:p></o:p></p><p class=MsoNormal>    |         r_metatarsophalangeal_2<o:p></o:p></p><p class=MsoNormal>    |           r_tarsal_distal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>    vl5<o:p></o:p></p><p class=MsoNormal>      vl4<o:p></o:p></p><p class=MsoNormal>        vl3<o:p></o:p></p><p class=MsoNormal>          vl2<o:p></o:p></p><p class=MsoNormal>            vl1<o:p></o:p></p><p class=MsoNormal>              vt12<o:p></o:p></p><p class=MsoNormal>                vt11<o:p></o:p></p><p class=MsoNormal>                  vt10<o:p></o:p></p><p class=MsoNormal>                    vt9<o:p></o:p></p><p class=MsoNormal>                      vt8<o:p></o:p></p><p class=MsoNormal>                        vt7<o:p></o:p></p><p class=MsoNormal>                          vt6<o:p></o:p></p><p class=MsoNormal>                            vt5<o:p></o:p></p><p class=MsoNormal>                              vt4<o:p></o:p></p><p class=MsoNormal>                                vt3<o:p></o:p></p><p class=MsoNormal>                                  vt2<o:p></o:p></p><p class=MsoNormal>                                    vt1<o:p></o:p></p><p class=MsoNormal>                                      vc7<o:p></o:p></p><p class=MsoNormal>                                        vc6<o:p></o:p></p><p class=MsoNormal>                                        | vc5<o:p></o:p></p><p class=MsoNormal>                                        |   vc4<o:p></o:p></p><p class=MsoNormal>                                        |     vc3<o:p></o:p></p><p class=MsoNormal>                                        |       vc2<o:p></o:p></p><p class=MsoNormal>                                        |         vc1<o:p></o:p></p><p class=MsoNormal>                                        |           skullbase % skull_tip_raiser_action<o:p></o:p></p><p class=MsoNormal>                                        |             l_eyelid_joint<o:p></o:p></p><p class=MsoNormal>                                        |             l_eyeball_joint<o:p></o:p></p><p class=MsoNormal>                                        |             l_eyebrow_joint<o:p></o:p></p><p class=MsoNormal>                                        |             r_eyelid_joint<o:p></o:p></p><p class=MsoNormal>                                        |             r_eyeball_joint<o:p></o:p></p><p class=MsoNormal>                                        |             r_eyebrow_joint<o:p></o:p></p><p class=MsoNormal>                                        |             temporomandibular<o:p></o:p></p><p class=MsoNormal>                                        l_sternoclavicular<o:p></o:p></p><p class=MsoNormal>                                        | l_acromioclavicular<o:p></o:p></p><p class=MsoNormal>                                        |   l_shoulder<o:p></o:p></p><p class=MsoNormal>                                        |     l_elbow<o:p></o:p></p><p class=MsoNormal>                                        |       l_radiocarpal<o:p></o:p></p><p class=MsoNormal>                                        |         l_carpometacarpal_1<o:p></o:p></p><p class=MsoNormal>                                        |         | l_metacarpophalangeal_1<o:p></o:p></p><p class=MsoNormal>                                        |         |   l_carpal_interphalangeal_1<o:p></o:p></p><p class=MsoNormal>                                        |         l_carpometacarpal_2<o:p></o:p></p><p class=MsoNormal>                                        |         | l_metacarpophalangeal_2<o:p></o:p></p><p class=MsoNormal>                                        |         |   l_carpal_proximal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>                                        |         |     l_carpal_distal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>                                        |         l_carpometacarpal_3<o:p></o:p></p><p class=MsoNormal>                                        |         | l_metacarpophalangeal_3<o:p></o:p></p><p class=MsoNormal>                                        |         |   l_carpal_proximal_interphalangeal_3<o:p></o:p></p><p class=MsoNormal>                                        |         |     l_carpal_distal_interphalangeal_3<o:p></o:p></p><p class=MsoNormal>                                        |         l_carpometacarpal_4<o:p></o:p></p><p class=MsoNormal>                                        |         | l_metacarpophalangeal_4<o:p></o:p></p><p class=MsoNormal>                                        |         |   l_carpal_proximal_interphalangeal_4<o:p></o:p></p><p class=MsoNormal>                                        |         |     l_carpal_distal_interphalangeal_4<o:p></o:p></p><p class=MsoNormal>                                        |         l_carpometacarpal_5<o:p></o:p></p><p class=MsoNormal>                                        |           l_metacarpophalangeal_5<o:p></o:p></p><p class=MsoNormal>                                        |             l_carpal_proximal_interphalangeal_5<o:p></o:p></p><p class=MsoNormal>                                        |               l_carpal_distal_interphalangeal_5<o:p></o:p></p><p class=MsoNormal>                                        r_sternoclavicular<o:p></o:p></p><p class=MsoNormal>                                          r_acromioclavicular<o:p></o:p></p><p class=MsoNormal>                                            r_shoulder<o:p></o:p></p><p class=MsoNormal>                                              r_elbow<o:p></o:p></p><p class=MsoNormal>                                                r_radiocarpal<o:p></o:p></p><p class=MsoNormal>                                                  r_carpometacarpal_1<o:p></o:p></p><p class=MsoNormal>                                                  | r_metacarpophalangeal_1<o:p></o:p></p><p class=MsoNormal>                                                  |   r_carpal_interphalangeal_1<o:p></o:p></p><p class=MsoNormal>                                                  r_carpometacarpal_2<o:p></o:p></p><p class=MsoNormal>                                                  | r_metacarpophalangeal_2<o:p></o:p></p><p class=MsoNormal>                                                  |   r_carpal_proximal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>                                                  |     r_carpal_distal_interphalangeal_2<o:p></o:p></p><p class=MsoNormal>                                                  r_carpometacarpal_3<o:p></o:p></p><p class=MsoNormal>                                                  | r_metacarpophalangeal_3<o:p></o:p></p><p class=MsoNormal>                                                  |   r_carpal_proximal_interphalangeal_3<o:p></o:p></p><p class=MsoNormal>                                                  |     r_carpal_distal_interphalangeal_3<o:p></o:p></p><p class=MsoNormal>                                                  r_carpometacarpal_4<o:p></o:p></p><p class=MsoNormal>                                                  | r_metacarpophalangeal_4<o:p></o:p></p><p class=MsoNormal>                                                  |   r_carpal_proximal_interphalangeal_4<o:p></o:p></p><p class=MsoNormal>                                                  |     r_carpal_distal_interphalangeal_4<o:p></o:p></p><p class=MsoNormal>                                                  r_carpometacarpal_5<o:p></o:p></p><p class=MsoNormal>                                                    r_metacarpophalangeal_5<o:p></o:p></p><p class=MsoNormal>                                                      r_carpal_proximal_interphalangeal_5<o:p></o:p></p><p class=MsoNormal>                                                        r_carpal_distal_interphalangeal_5<o:p></o:p></p><p class=MsoNormal>HAnimDisplacer list: <o:p></o:p></p><p class=MsoNormal>% HAnimJoint skullbase holds HAnimDisplacer skull_tip_raiser_action<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>HAnimSite list: <o:p></o:p></p><p class=MsoNormal>^ HAnimSegment sacrum holds HAnimSite RootFront_view<o:p></o:p></p><p class=MsoNormal>============================================================================================================================= <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:l0 level1 lfo1'>X3D Example Archives: Humanoid Animation, Skin, Joe Skeleton Skin Site Salute Walk<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Comprehensive example showing skeleton, skin, sites and interpolator animation together.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalkIndex.html<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><span style='font-family:"Times New Roman",serif;color:black'>Visualization report for HAnimHumanoid model <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalk.html#Joe_Human"><span style='color:maroon'>Joe_Human</span></a></span><o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalk.html#HumanHAnimHumanoidReport<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>=============================================================================================================================<o:p></o:p></p><p class=MsoNormal>HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (89) : HAnimSegment (90) % HAnimDisplacer (0) ^ HAnimSite (88)<o:p></o:p></p><p class=MsoNormal>=============================================================================================================================<o:p></o:p></p><p class=MsoNormal>HAnimHumanoid DEF='Joe_Human name='Human' loa='-1'<o:p></o:p></p><p class=MsoNormal>skin Shape DEF='SkinShape'<o:p></o:p></p><p class=MsoNormal>skeleton<o:p></o:p></p><p class=MsoNormal>  HumanoidRoot : sacrum<o:p></o:p></p><p class=MsoNormal>    sacroiliac : pelvis ^ l_iliocristale, <o:p></o:p></p><p class=MsoNormal>    | l_hip : l_thigh ^ l_knee_crease, <o:p></o:p></p><p class=MsoNormal>    | | l_knee : l_calf ^ l_lateral_malleolus, <o:p></o:p></p><p class=MsoNormal>    | |   l_ankle (HAnim2 name l_talocrural) : l_hindfoot (HAnim2 name l_talocrural) ^ l_sphyrion (HAnim2 name l_talocrural), <o:p></o:p></p><p class=MsoNormal>    | |     l_subtalar (HAnim2 name l_tarsometatarsal_2) : l_midproximal (HAnim2 name l_tarsometatarsal_2)<o:p></o:p></p><p class=MsoNormal>    | |       l_midtarsal (HAnim2 name l_metatarsophalangeal_2) : l_middistal (HAnim2 name l_metatarsophalangeal_2) ^ l_metatarsal_pha1 (HAnim2 name l_metatarsophalangeal_2)<o:p></o:p></p><p class=MsoNormal>    | |         l_metatarsal (HAnim2 name l_tarsal_distal_interphalangeal_2) : l_forefoot (HAnim2 name l_tarsal_distal_interphalangeal_2) ^ l_metatarsal_pha5 (HAnim2 name l_tarsal_distal_interphalangeal_2), l_digit2 (HAnim2 name l_tarsal_distal_interphalangeal_2)<o:p></o:p></p><p class=MsoNormal>    | r_hip : r_thigh ^ r_knee_crease, <o:p></o:p></p><p class=MsoNormal>    |   r_knee : r_calf ^ r_lateral_malleolus, <o:p></o:p></p><p class=MsoNormal>    |     r_ankle (HAnim2 name r_talocrural) : r_hindfoot (HAnim2 name r_talocrural) ^ r_sphyrion (HAnim2 name r_talocrural), <o:p></o:p></p><p class=MsoNormal>    |       r_subtalar (HAnim2 name r_tarsometatarsal_2) : r_midproximal (HAnim2 name r_tarsometatarsal_2)<o:p></o:p></p><p class=MsoNormal>    |         r_midtarsal (HAnim2 name r_metatarsophalangeal_2) : r_middistal (HAnim2 name r_metatarsophalangeal_2) ^ r_metatarsal_pha1 (HAnim2 name r_metatarsophalangeal_2)<o:p></o:p></p><p class=MsoNormal>    |           r_metatarsal (HAnim2 name r_tarsal_distal_interphalangeal_2) : r_forefoot (HAnim2 name r_tarsal_distal_interphalangeal_2) ^ r_metatarsal_pha5 (HAnim2 name r_tarsal_distal_interphalangeal_2), r_digit2 (HAnim2 name r_tarsal_distal_interphalangeal_2)<o:p></o:p></p><p class=MsoNormal>    vl5 : toPelvis ^ waist_preferred_post, <o:p></o:p></p><p class=MsoNormal>      vl4 : l4<o:p></o:p></p><p class=MsoNormal>        vl3 : l3<o:p></o:p></p><p class=MsoNormal>          vl2 : l2 ^ r_rib10, <o:p></o:p></p><p class=MsoNormal>            vl1 : l1<o:p></o:p></p><p class=MsoNormal>              vt12 : t12<o:p></o:p></p><p class=MsoNormal>                vt11 : t11<o:p></o:p></p><p class=MsoNormal>                  vt10 : t10 ^ substernale<o:p></o:p></p><p class=MsoNormal>                    vt9 : t9 ^ r_thelion, <o:p></o:p></p><p class=MsoNormal>                      vt8 : t8<o:p></o:p></p><p class=MsoNormal>                        vt7 : t7<o:p></o:p></p><p class=MsoNormal>                          vt6 : t6<o:p></o:p></p><p class=MsoNormal>                            vt5 : t5<o:p></o:p></p><p class=MsoNormal>                              vt4 : t4<o:p></o:p></p><p class=MsoNormal>                                vt3 : t3<o:p></o:p></p><p class=MsoNormal>                                  vt2 : t2<o:p></o:p></p><p class=MsoNormal>                                    vt1 : t1 ^ suprasternale, <o:p></o:p></p><p class=MsoNormal>                                    | vc7 : c7 ^ r_neck_base, <o:p></o:p></p><p class=MsoNormal>                                    | | vc6 : c6<o:p></o:p></p><p class=MsoNormal>                                    | |   vc5 : c5<o:p></o:p></p><p class=MsoNormal>                                    | |     vc4 : c4<o:p></o:p></p><p class=MsoNormal>                                    | |       vc3 : c3<o:p></o:p></p><p class=MsoNormal>                                    | |         vc2 : c2<o:p></o:p></p><p class=MsoNormal>                                    | |           vc1 : c1<o:p></o:p></p><p class=MsoNormal>                                    | |             skullbase : skull ^ skull_tip, <o:p></o:p></p><p class=MsoNormal>                                    | |               l_eyeball_joint : l_eyeball<o:p></o:p></p><p class=MsoNormal>                                    | |               r_eyeball_joint : r_eyeball<o:p></o:p></p><p class=MsoNormal>                                    | l_sternoclavicular : l_clavicle ^ l_clavicale<o:p></o:p></p><p class=MsoNormal>                                    |   l_acromioclavicular : l_scapula ^ l_acromion, <o:p></o:p></p><p class=MsoNormal>                                    |     l_shoulder : l_upperarm ^ l_humeral_medial_epicn, <o:p></o:p></p><p class=MsoNormal>                                    |       l_elbow : l_forearm ^ l_radial_styloid, <o:p></o:p></p><p class=MsoNormal>                                    |         l_wrist (HAnim2 name l_radiocarpal) : l_hand (HAnim2 name l_radiocarpal) ^ l_metacarpal_pha2 (HAnim2 name l_radiocarpal), <o:p></o:p></p><p class=MsoNormal>                                    |           l_thumb1 : l_thumb_metacarpal<o:p></o:p></p><p class=MsoNormal>                                    |           | l_thumb2 : l_thumb_distal<o:p></o:p></p><p class=MsoNormal>                                    |           |   l_thumb3 : l_thumb_distal ^ l_thumb_distal_tip<o:p></o:p></p><p class=MsoNormal>                                    |           l_index0 : l_index_metacarpal<o:p></o:p></p><p class=MsoNormal>                                    |           | l_index1 : l_index_proximal<o:p></o:p></p><p class=MsoNormal>                                    |           |   l_index2 : l_index_middle<o:p></o:p></p><p class=MsoNormal>                                    |           |     l_index3 : l_index_distal ^ l_index_distal_tip, l_dactylion<o:p></o:p></p><p class=MsoNormal>                                    |           l_middle0 : l_middle_metacarpal<o:p></o:p></p><p class=MsoNormal>                                    |           | l_middle1 : l_middle_proximal<o:p></o:p></p><p class=MsoNormal>                                    |           |   l_middle2 : l_middle_middle<o:p></o:p></p><p class=MsoNormal>                                    |           |     l_middle3 : l_middle_distal ^ l_middle_distal_tip<o:p></o:p></p><p class=MsoNormal>                                    |           l_ring0 : l_ring_metacarpal<o:p></o:p></p><p class=MsoNormal>                                    |           | l_ring1 : l_ring_proximal<o:p></o:p></p><p class=MsoNormal>                                    |           |   l_ring2 : l_ring_middle<o:p></o:p></p><p class=MsoNormal>                                    |           |     l_ring3 : l_ring_distal ^ l_ring_distal_tip<o:p></o:p></p><p class=MsoNormal>                                    |           l_pinky0 : l_pinky_metacarpal<o:p></o:p></p><p class=MsoNormal>                                    |             l_pinky1 : l_pinky_proximal<o:p></o:p></p><p class=MsoNormal>                                    |               l_pinky2 : l_pinky_middle<o:p></o:p></p><p class=MsoNormal>                                    |                 l_pinky3 : l_pinky_distal ^ l_pinky_distal_tip<o:p></o:p></p><p class=MsoNormal>                                    r_sternoclavicular : r_clavicle ^ r_clavicale<o:p></o:p></p><p class=MsoNormal>                                      r_acromioclavicular : r_scapula ^ r_acromion, <o:p></o:p></p><p class=MsoNormal>                                        r_shoulder : r_upperarm ^ r_humeral_medial_epicn, <o:p></o:p></p><p class=MsoNormal>                                          r_elbow : r_forearm ^ r_radial_styloid, <o:p></o:p></p><p class=MsoNormal>                                            r_wrist (HAnim2 name r_radiocarpal) : r_hand (HAnim2 name r_radiocarpal) ^ r_ulnar_styloid (HAnim2 name r_radiocarpal)<o:p></o:p></p><p class=MsoNormal>                                              r_thumb1 : r_thumb_metacarpal<o:p></o:p></p><p class=MsoNormal>                                              | r_thumb2 : r_thumb_proximal<o:p></o:p></p><p class=MsoNormal>                                              |   r_thumb3 : r_thumb_distal ^ r_thumb_distal_tip<o:p></o:p></p><p class=MsoNormal>                                              r_index0 : r_index_metacarpal ^ r_metacarpal_pha2<o:p></o:p></p><p class=MsoNormal>                                              | r_index1 : r_index_proximal<o:p></o:p></p><p class=MsoNormal>                                              |   r_index2 : r_index_middle<o:p></o:p></p><p class=MsoNormal>                                              |     r_index3 : r_index_distal ^ r_index_distal_tip<o:p></o:p></p><p class=MsoNormal>                                              r_middle0 : r_middle_metacarpal<o:p></o:p></p><p class=MsoNormal>                                              | r_middle1 : r_middle_proximal<o:p></o:p></p><p class=MsoNormal>                                              |   r_middle2 : r_middle_middle<o:p></o:p></p><p class=MsoNormal>                                              |     r_middle3 : r_middle_distal ^ r_dactylion, r_middle_distal_tip<o:p></o:p></p><p class=MsoNormal>                                              r_ring0 : r_ring_metacarpal<o:p></o:p></p><p class=MsoNormal>                                              | r_ring1 : r_ring_proximal<o:p></o:p></p><p class=MsoNormal>                                              |   r_ring2 : r_ring_middle<o:p></o:p></p><p class=MsoNormal>                                              |     r_ring3 : r_ring_distal ^ r_ring_distal_tip<o:p></o:p></p><p class=MsoNormal>                                              r_pinky0 : r_pinky_metacarpal ^ r_metacarpal_pha5<o:p></o:p></p><p class=MsoNormal>                                                r_pinky1 : r_pinky_proximal<o:p></o:p></p><p class=MsoNormal>                                                  r_pinky2 : r_pinky_middle<o:p></o:p></p><p class=MsoNormal>                                                    r_pinky3 : r_pinky_distal ^ r_pinky_distal_tip<o:p></o:p></p><p class=MsoNormal>HAnimSite list: <o:p></o:p></p><p class=MsoNormal>^ HAnimSegment pelvis holds HAnimSite nodes l_iliocristale l_trochanterion r_iliocristale r_trochanterion l_asis r_asis l_psis r_psis floormarker crotch<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_thigh holds HAnimSite nodes l_knee_crease l_femoral_lateral_epicn l_femoral_medial_epicn<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_calf holds HAnimSite nodes l_lateral_malleolus l_medial_malleolus<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_hindfoot holds HAnimSite nodes l_sphyrion l_calcaneous_post<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_middistal holds HAnimSite l_metatarsal_pha1<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_forefoot holds HAnimSite nodes l_metatarsal_pha5 l_digit2<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_thigh holds HAnimSite nodes r_knee_crease r_femoral_lateral_epicn r_femoral_medial_epicn<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_calf holds HAnimSite nodes r_lateral_malleolus r_medial_malleolus<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_hindfoot holds HAnimSite nodes r_sphyrion r_calcaneous_post<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_middistal holds HAnimSite r_metatarsal_pha1<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_forefoot holds HAnimSite nodes r_metatarsal_pha5 r_digit2<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l5 holds HAnimSite nodes waist_preferred_post navel<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l2 holds HAnimSite nodes r_rib10 l_rib10 rib10_midspine<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment t10 holds HAnimSite substernale<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment t9 holds HAnimSite nodes r_thelion l_thelion<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment t1 holds HAnimSite nodes suprasternale cervicale<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment c7 holds HAnimSite nodes r_neck_base l_neck_base<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment skull holds HAnimSite nodes skull_tip sellion r_infraorbitale l_infraorbitale supramenton r_tragion r_gonion l_tragion l_gonion nuchale<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_clavicle holds HAnimSite l_clavicale<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_scapula holds HAnimSite nodes l_acromion l_axilla_ant l_axilla_post<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_upperarm holds HAnimSite nodes l_humeral_medial_epicn l_radiale l_humeral_lateral_epicn<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_forearm holds HAnimSite nodes l_radial_styloid l_olecranon<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_hand holds HAnimSite nodes l_metacarpal_pha2 l_ulnar_styloid l_metacarpal_pha5<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_thumb_distal holds HAnimSite l_thumb_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_index_distal holds HAnimSite nodes l_index_distal_tip l_dactylion<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_middle_distal holds HAnimSite l_middle_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_ring_distal holds HAnimSite l_ring_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment l_pinky_distal holds HAnimSite l_pinky_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_clavicle holds HAnimSite r_clavicale<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_scapula holds HAnimSite nodes r_acromion r_axilla_ant r_axilla_post<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_upperarm holds HAnimSite nodes r_humeral_medial_epicn r_radiale r_humeral_lateral_epicn<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_forearm holds HAnimSite nodes r_radial_styloid r_olecranon<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_hand holds HAnimSite r_ulnar_styloid<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_thumb_distal holds HAnimSite r_thumb_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_index_metacarpal holds HAnimSite r_metacarpal_pha2<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_index_distal holds HAnimSite r_index_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_middle_distal holds HAnimSite nodes r_dactylion r_middle_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_ring_distal holds HAnimSite r_ring_distal_tip<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_pinky_metacarpal holds HAnimSite r_metacarpal_pha5<o:p></o:p></p><p class=MsoNormal>^ HAnimSegment r_pinky_distal holds HAnimSite r_pinky_distal_tip<o:p></o:p></p><p class=MsoNormal>=============================================================================================================================<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></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> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu> <br><b>Sent:</b> Tuesday, December 27, 2022 4:53 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; Joseph D Williams <joedwil@earthlink.net><br><b>Subject:</b> Hanim vis tree improvements<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><div><h3><span style='font-size:12.0pt;color:black;font-weight:normal'>Joe, here is an example ad some potential improvements to the pretty-print visualization tree. Any other ideas?</span><span style='color:black'><o:p></o:p></span></h3><h3>Visualization report for HAnimHumanoid model<span class=apple-converted-space> </span><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/BoxMan4.html#HUMANOID"><span style='color:maroon'>HUMANOID</span></a><o:p></o:p></h3><pre>=======================================================================================================<o:p></o:p></pre><pre>HAnimHumanoid skeleton holds X3D3 HAnim2 triplets, HAnimJoint (17) : HAnimSegment (17) : HAnimSite (5)<o:p></o:p></pre><pre>=======================================================================================================<o:p></o:p></pre><pre>HAnimHumanoid DEF='HUMANOID name='Humanoid' loa=''<o:p></o:p></pre><pre>  HumanoidRoot : sacrum<o:p></o:p></pre><pre>  | l_hip : l_thigh<o:p></o:p></pre><pre>  | | l_knee : l_calf<o:p></o:p></pre><pre>  | |   l_ankle : l_hindfoot<o:p></o:p></pre><pre>  | |     l_midtarsal : l_middistal : l_middle_distal_tip<o:p></o:p></pre><pre>  | r_hip : r_thigh<o:p></o:p></pre><pre>  | | r_knee : r_calf<o:p></o:p></pre><pre>  | |   r_ankle : r_hindfoot<o:p></o:p></pre><pre>  | |     r_midtarsal : r_middistal : r_middle_distal_tip<o:p></o:p></pre><pre>  | vl5 : l5<o:p></o:p></pre><pre>  |   skullbase : skull : skull_tip<o:p></o:p></pre><pre>  |   l_shoulder : l_upperarm<o:p></o:p></pre><pre>  |   | l_elbow : l_forearm<o:p></o:p></pre><pre>  |   |   l_wrist : l_hand : l_hand_tip<o:p></o:p></pre><pre>  |   r_shoulder : r_upperarm<o:p></o:p></pre><pre>  |     r_elbow : r_forearm<o:p></o:p></pre><pre>  |       r_wrist : r_hand : r_hand_tip<o:p></o:p></pre></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Add * [displacerName] where appropriate<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Show motions HAnimMotion/none at end<o:p></o:p></p></div><div><p class=MsoNormal>Show skin Switch/Shape/IFS/none<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ensure X3D3 HAnim2 (for example) shows correct version number<o:p></o:p></p></div><div id=ms-outlook-mobile-signature><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Change comma to colon for triplets:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don</span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>-- </span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        <span style='color:#0078D4'><a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></span></span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    <span style='color:#0078D4'>+1.831.656.2149</span></span><o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics <span style='color:#0078D4'><a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a></span></span><o:p></o:p></p></div></div></div></div></div></div></body></html>