<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;}
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;}
.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:590627222;
        mso-list-type:hybrid;
        mso-list-template-ids:-352788136 673848910 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></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>In the example:</p><p class=MsoNormal><HAnimHumanoid DEF='a.SimpleSkeleton' name='SimpleSkeleton' version='2.0'></p><p class=MsoNormal><HAnimJoint containerField='skeleton' name='humanoid_root' ulimit='0 0 0' llimit='0 0 0'></p><p class=MsoNormal><HAnimSegment name='sacrum'></p><p class=MsoNormal><Shape DEF='JointVisualization'/></p><p class=MsoNormal><Shape DEF='SegmentVisualization'/></p><p class=MsoNormal></HAnimSegment></p><p class=MsoNormal></HAnimJoint></p><p class=MsoNormal></HAnimHumanoid></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Under Segment, probably will use:</p><p class=MsoNormal>…</p><p class=MsoNormal><HAnimSegment name='sacrum'><o:p></o:p></p><p class=MsoNormal>  <Shape DEF='JointVisualization'/><o:p></o:p></p><p class=MsoNormal>  <Shape DEF='SegmentVisualization'/></p><p class=MsoNormal>  <HAnimSite name='feature01'><o:p></o:p></p><p class=MsoNormal>    <Shape DEF='SiteVisualization'/></p><p class=MsoNormal>   </HAnimSite></p><p class=MsoNormal></HAnimSegment><o:p></o:p></p><p class=MsoNormal>…</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>And, with Site, we can use sensors and anything else. </p><p class=MsoNormal>Thanks, </p><p class=MsoNormal>Joe</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, December 24, 2022 11:42 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Cc: </b><a href="mailto:h-anim@web3d.org">h-anim@web3d.org</a>; <a href="mailto:joedwil@earthlink.net">Joseph D Williams</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>Design patterns for HAnimHumanoid skin and apparel using HAnim2standard in X3D4</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Joe, thanks for steady efforts making progress on HAnim models.  Your latest examples are online as follows, with diagnostics and testing continuing.  At some point we will want to produce cleaned-up versions of legacy BoxMan models too.<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<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<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In order to keep track of all the different ways that apparel might be included with an HAnim2 X3D4 model, we have come up with the following list of possibilities.<o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal><o:p> </o:p></p></div><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'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelVariations.txt<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   Design patterns for HAnimHumanoid presenting skin and apparel<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>                   using HAnim2 standard in X3D4<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>a. *<b>Simple Skeleton</b>*. <i>skeleton</i> field, simple skeleton structure, invisible or<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>    visualized by rendered ball-and-stick for joints, segments, sites.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>b. *<b>Simple Skeleton Mesh</b>*. <i>skeleton</i> field, Shape geometry attached to segments,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   moving with skeleton but rendering is crude since no deformation occurs<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   during animation if overlapping.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>c. *<b>Skin, Indexed Geometry only</b>*. <i>skin</i> field, indexed Coordinate mesh with<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   <i>skinCoordIndex</i> and weight connections at each of joint nodes for browser<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   performance of smooth deformation when moving.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>d. *<b>Skin, Shape holding indexed geometry</b>*. Allow <i>skin</i> field to hold Shape<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   containing Appearance with Material or texture, similarly holding indexed<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   mesh with <i>skinCoordIndex</i> connections at joints for smooth deformation <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   when moving. (Specification revision pending, Mantis 1408).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>e. *<b>Switch or LOD</b>*. Similarly allow <i>skin</i> field to hold Switch or LOD, then a<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   single Shape holding indexed mesh.  If agreed upon that this is extremely<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   similar will require specification change resembling Mantis 1408.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>f. *<b>Synthesis</b>*. Extra-large Coordinate mesh using duplicate points for <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   inner-volume (flesh mesh) and outer-volume (apparel mesh) geometry.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   Likely possible with existing X3D4 specification but requires complex<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   preprocessing of humanoid geometry.  Applying cloth physics likely not<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   practical or possible.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>g. *<b>Apparel</b>*. Add <i>apparel</i> field to future specification versions (namely<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   HAnim2.1 and X3D4.1), allowing separate definition of clothing that is<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   independent of skin mesh.  Likely want an MFNode array to permit multiple<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   clothing layers.  Likely need to consider special cases for cloth physics.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>h. *<b>Anatomy</b>*.  Similar to <i>apparel</i> field: multiple epithelial tissue layers<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   for surfaces of human organs are common, often with similar construction<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   about concentric center-line spine through deformable organ.  This suggests<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   that an adapted <i>Extrusion</i> node may be more relevant than meshes.  Likely <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   will also need to consider special cases for organ physics.  Note that this<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>   is similar (possibly identical) rationale to preceding analysis of apparel.<o:p></o:p></span></p><div style='border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>also thanks to Vince and Dick for thoughtful discussions as we have proceeded.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Happy Holidays everyone!<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><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>