<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=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;}
@font-face
        {font-family:Roboto;}
/* 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:#0563C1;
        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;}
span.EmailStyle22
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.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:1567960089;
        mso-list-type:hybrid;
        mso-list-template-ids:-1885074648 -346780170 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:16;
        mso-level-number-format:bullet;
        mso-level-text:;
        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:;
        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:;
        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:;
        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:;
        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:;
        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="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Huh.  Wondering why are you asking a valid question from something that is by-definition nonsensical?  It is popular, I know I know…  Probabilistic liar, randomized idiot savant, automated con artist – sorry, not sure about that.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here is our public guidance.  Improvements always welcome.<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 Scene Authoring Hints <o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>These hints provide a collection of style guidelines, authoring tips and best practices to improve the quality, consistency, and maintainability of Extensible 3D (X3D) Graphics 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/X3dSceneAuthoringHints.html<o:p></o:p></li></ul><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 Scene Authoring Hints: Coordinate Systems and Rotations<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#CoordinateSystems<o:p></o:p></li></ul><p class=MsoNormal style='margin-left:.25in'><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Each set of axes follows the right-hand rule (RHR) for coordinate systems.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://x3dgraphics.com/images/Chapter03/RightHandRuleAxes.png<o:p></o:p></li></ul><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'>Each set of orientations follows the right-hand rule (RHR) for angle rotations.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://x3dgraphics.com/images/Chapter03/RightHandRuleOrientations.png<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>p.s. listing only one axis at once is ill defined.  You need X Y and Z, also need Right Hand Rule for completeness.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Have fun with X3D, wherever you are…  8)<o:p></o:p></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.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:9.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:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman<o:p></o:p></span></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> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of </b>Joe D Williams<br><b>Sent:</b> Sunday, August 13, 2023 6:36 PM<br><b>To:</b> X3D Graphics public mailing list <x3d-public@web3d.org><br><b>Subject:</b> Re: [x3d-public] Zee to thee or Zee to me?<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><p><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Question: I am building a Humanoid, should I use +Zout or +Zin?<o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>answer Bing chat with GPT-4 :<o:p></o:p></span></p><p style='margin:0.1rem 0px;user-select: text;word-break:break-word;font-variation-settings: var(--cib-type-body2-font-variation-settings);background-color:rgba(255, 255, 255, 0.7)'><span style='font-size:12.0pt;font-family:Roboto;color:#111111'>"The choice between +Z in or +Z out depends on the software you are using. In general, +Z in is used for Maya and +Z out is used for Blender.<o:p></o:p></span></p><p style='margin:0.1rem 0px;user-select: text;word-break:break-word;font-variation-settings: var(--cib-type-body2-font-variation-settings);background-color:rgba(255, 255, 255, 0.7)'><span style='font-size:12.0pt;font-family:Roboto;color:#111111'>In Maya, the positive Z-axis points towards the camera while in Blender it points away from the camera. So if you are using Maya, you should choose +Z in and if you are using Blender, you should choose +Z out.<o:p></o:p></span></p><p style='margin:0.1rem 0px;user-select: text;word-break:break-word;font-variation-settings: var(--cib-type-body2-font-variation-settings);background-color:rgba(255, 255, 255, 0.7)'><span style='font-size:12.0pt;font-family:Roboto;color:#111111'>I hope that helps! Let me know if you have any other questions." <o:p></o:p></span></p><p style='margin:0.1rem 0px;user-select: text;word-break:break-word;font-variation-settings: var(--cib-type-body2-font-variation-settings);background-color:rgba(255, 255, 255, 0.7)'><span style='font-size:12.0pt;font-family:Roboto;color:#111111'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>However, this might as well say +Zout and +Zin is: one is world standard 3D righthand coordinate system for interactive graphical scenegraphs and thus for character animation, and one uses Dx lefthand system based on proprietary(?) gaming platforms?<o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>One way I heard it was +Zout was designed a long time ago by true innovators of realtime interactive viz to reduce the effects of humans on global climate change and, so the tech would be free (true story). In this plan, the default view of the character to be animated from 0 0 0 is toward the audience, not the scenery at the back of the stage. The default camera is looking at the back of the stage which is in back of the character facing the audience out here in+Z. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Another story was +Zin was chosen as best cockpit view with pilots butt rooted at 0 0 0 facing +z. In this case the default camera is looking +Z to see the airscape out the cockpit front window. However, for character animation, the Front camera is still looking at the front of the character, so the character to be animated in +Zin is facing -Z. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Regardless of default Z, our X and Y are the same when viewing the world system Front. Just that for the view of the Front of the model at 0 0 0 is in positive space for +Zout, and in negative space for +Zin. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>So a fundamental disturbance began that made the vrml and the ogl righties and the Dx lefties a basic workflow conflict begin, now I am off the track, like html browser wars with some primary functionality. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Whatever. For either system the default camera looking at 0 0 0 is going to be aligned along the z axis and looking either toward toward -Z if +Zout or +Z if +Zin, but always looking at the face of the model to be animated. The rear of the stage is visible behind the model. It is only fair to start there because default camera viewpoint looking at 0 0 0 is either either oriented toward -z for +Zout, or toward +z for +Zin.<o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>In either case, the model at 0 0 0 is facing the default camera and the X and Y axis are the same. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>So what does this mean for transportable animations, which is the goal of all this. <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Joe<o:p></o:p></span></p><p style='margin:0.1rem 0px'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p></div><div style='border:none;border-left:solid #AAAAAA 1.0pt;padding:0in 0in 0in 11.0pt;box-sizing: border-box'><p><br>From: Joe D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>><br>Sent: Aug 10, 2023 3:18 PM<br>To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>>, Vincent Marchetti <<a href="mailto:vmarchetti@kshell.com">vmarchetti@kshell.com</a>><br>Subject: Re: Zee to thee or Zee to me?<o:p></o:p></p><p style='margin:0.1rem 0'> <o:p></o:p></p><div><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>So, does a debate emerge?. HAnim Humanoid space is by default same as x3d default coordinate space. Basically the x3d Right hand rule where the default viewpoint is facing -Z and if you are on the stage, at 0 0 0 you are looking into the camera, gaze toward +Z. If you move from 0 0 0, the translation to the right is negative, left is positive, up is +Y, and back is -Z and forward+Z. That is also the default rotation for any transform Transform (Joint) of the Humanoid. <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>OK, so that was all there was, of course special transformations and rotations of the X Y Z directions for special purposes, including HAnim. For years data has been collected for examples of human stature. Many of those measurements happened to be of deceased and others with most data taken in while the subject is at rest face up. Thus, much of that data used X Y as the ground plane and z as elevation from the floor. Since that is not the model pose we needed for prior to animation pose, the measurement coordinate system was just tilted up, and the model then naturally was facing +Z. This worked fine along with other uses technically, so all is good. <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Until mid-19nineties or so. A major toolmaker, producer and distributor of graphics products decide that right-handedness has had its day and it was time for the lefties to create their niche. So, as the GL is forming along its traditions, Dx emerges. For some undeclared Dx reasoning, now the Z axis is yawed pi rads to make a lefthanded coordinate system. Funny things can happen when you animate a lefty with righty code. Think of the situation where the model doesn't know its Zs have been swapped. How will the model know this has happened? Born a righty but implemented as a lefty. Success or ptsd in store for user?<o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>There is a clear way to convert righty models to lefty models and a systematic way to convert animation codings between the setups, but does the HAnim standard need to recognize both systems. With the goal of accumulating motion and interaction libraries, does x3d HAinimHumanoid need a property that says lefties are allowed and accommodated? <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Anyway, is it worth thinking anything about this now? <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Any common ways of dealing with import of lefty animations into x3d righty system?<o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Thanks,<o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'>Joe<o:p></o:p></span></p><p style='margin:0.1rem 0'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black'> <o:p></o:p></span></p></div></div><p style='margin:0.1rem 0'> <o:p></o:p></p></div></body></html>