<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;}
p.m-7229339152183155924msolistparagraph, li.m-7229339152183155924msolistparagraph, div.m-7229339152183155924msolistparagraph
{mso-style-name:m_-7229339152183155924msolistparagraph;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
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:451438878;
mso-list-template-ids:-1;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1
{mso-list-id:558054434;
mso-list-template-ids:-1;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2
{mso-list-id:707796025;
mso-list-type:hybrid;
mso-list-template-ids:-801744134 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l2: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 l2: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 l2: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 l2: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 l2: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 l2: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 l2: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 l2: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;}
@list l3
{mso-list-id:1040666968;
mso-list-template-ids:-1;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
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><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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Monday, November 7, 2022 5:01 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] FW: BVH to X3D Conversion bug</p></div><p class=MsoNormal><o:p> </o:p></p><div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo4'>My albiet impractical approach was to bring your own skeleton, and add whatever motion there is in the bvh file to the Motion object or HAnimMotion element. </li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Fine, very useful, getting the bvh skeleton to work is fine for experiment and comparing bvh motion with bvh skeleton against bvh motion with Hanim skeleton. Should be some comparable animations but since it may be important to demonstrate actual realistic body motions, the bvh armature is less proficient than the Hanim version. </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:l2 level1 lfo4'> I did not realize that BVH files contained their own skeleton. </li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It may be mostly the same in lots of examples. I think that is really a first step, to figure out if the bvh skeleton will run some ‘standard’ animation, like the walk or run in archives. If the bch skeleton can’t do the more or less standard Walk example we have, then maybe bvh animation may not be useful. </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:l2 level1 lfo4'> Seems like one should Protoify a standard skeleton and pass the motion as a parameter. </li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>That is fine plan. Think of how to bring in a new animation, like you are walking, then want to wave, and those are two mostly independent animations. </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:l2 level1 lfo4'>But I didn’t even get a chance to adequately look at a bvh file beforehand. May I suggest we pursue the Motion method, if we are all in agreement?</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please notice that the typical bvh consists of a skeleton and an animation routine of some certain length. </p><p class=MsoNormal>The animation information consists of a constant time step and a set of keyframe data for each joint to be animated, at each time step. Since the bvh is probably aimed at video frame rates, this means lots of keytimes and lots of keyframe data – one keytime for each frame and one keyvalue for each joint at each frame. If one second is 30 frames, then for each animation one time value and joints times frames. Oh, and the bvh animation data probably uses xyz angles rather than axis-angle, or may be quaternions in gltf. </p><p class=MsoNormal>When you convert this bvh animation to x3d timer-interpolator style, then the keytimes are all listed for every interpolator and also all keyvalues in axis-angle. If the bvh was 30 frames, then for each animation 30 keytimes and 30 keyvalues for each joint. Once you have this, though, at least it is in a form that is editable, changing animations and adding to the base. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Recall how the bvh animations were probably made, by dragging limb to some point, saving that, moving to another, then setting an interpolater to work on the motion and storing it frame by frame in bvh for export to make a video at a fixed frame rate with the renderer actually not needing interpolator since all keytimes are set. Just what you need for a video render bot. Of course almost everybody knew that in order to exchange animations, the playback skeleton needed to be similar to the capture skeleton and any difference between the capture initial pose and the playback initial pose had to be known. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Anyway, the big point is that in order to actually take control of the animation using your skeleton, you want it to be in x3d style rather than bvh style. Usually find way too many keyframes in bvh. More fun to learn how to edit out unneeded stuff and refine that than to have to deal with the excessive file sizes when you can author in realtime with interpolation rather than videotime.</p><p class=MsoNormal><o:p> </o:p></p></div><div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo4'>I realize that X3DOM/Xj3d may not support the Motion/mocap stuff in XML. </li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Well, it seems like Don just told me that x3d player is supposed to support bvh like a native without the need for Hanim skeleton(-1) or x3d timer-interpolator expression. Maybe figure out how that is done. The spec tell how to do the xyz angle to axis-angle.</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:l2 level1 lfo4'><o:p> </o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo4'>I’m not aware if these are currently supported. I do know that X_ITE does. I do know there is BVH handling in JavaScript.</li></ul></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo4'>So it seems like we’re translating bvh to non-standard skeletons, instead of translating BVH to standard motion.</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>To me, the ideal is the application of a ‘standard’ animation to a ‘standard’ skeleton. This means extracting the bvh animation for use in the Hanim skeleton. </p><p class=MsoNormal>The bvh file probably contains a sort of consensus skeleton that can be basis for a ‘standard’ Hanim skeleton, hopefully by some systematic process giving correct bone to joint connections. Since all bvh skeletons I have seen are -1 style, we just need some upgraded shoulder stuff. The bvh animation data is based on the skeleton in the file and if it is similar to the target Hanim skeleton, then the animation may be useful. </p><p class=MsoNormal><o:p> </o:p></p></div><div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l2 level1 lfo4'>John</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hey John we are just getting to the fun part. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Best of All, </p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Mon, Nov 7, 2022 at 5:16 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe >> However the piro bvh example is Not Level 1, or any level because the bvh skeleton is (typically) Not a legal Hanim level of articulation. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This skeleton may be typical in bvh archives because it is a legacy artifact from before we had a world standard realistic skeleton. Just look at it. Is that the way your back works? But, the bvh skeleton is simple for simple stuffs.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>A point is that the bvh skeletons I have seen are not any Hanim level because the spine is connected in a different way. There are other minor difs also. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>In the following, it is first about how to use a Standard Hanim skeleton with the bvh animation. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Please not simply activating the bvh capture skeleton with the bvh animation because the bvh skeleton is probably not a standard hierarchy Hanim skeleton. </p><p class=m-7229339152183155924msolistparagraph> </p><p class=m-7229339152183155924msolistparagraph> </p><ul type=disc><li class=m-7229339152183155924msolistparagraph style='mso-list:l0 level1 lfo1'>As far as which approach is best – not currently an issue. At present, am simply trying to convert legacy BVH files into the most compliant X3D HAnim possible. That path can give us a LOT of content. Still moving forward, so far…</li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Which is best is not an issue because bvh is not an authoring approach, it is a transport approach. For example, data from a defined bvh capture skeleton applied to a defined playback skeleton. The main problem is that the bvh skeleton is (probably) not any Hanim skeleton. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I think we get usable content when the bvh animation is incorporated with _<i>your</i>_ “Standard” Hanim skeleton. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The animation is fully incorporated with your skeleton when the animation is set up using x3d animation styles with reasonable keytimes and keyframe data, and therefore can be used as a basis for detailed animation of _<i>your</i>_ skeleton. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Another idea for the x3d user code would be to allow construction of an interpolator that just listed the constant keytime interval instead of every keytime. That is what the gltf prefers since the rules for setting key times is more simple than x3d. However, since the bvh is aimed at video, that still leaves the problem of mostly too much keyvalue data. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>If we can provide a reasonable conversion from the bvh skeleton to Hanim loa4, then the user can edit and simplify the key and keyvalue data to finally adapt the animation to the target skeleton and integrate it with other animations.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks Again, </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Again, the reason the target playback is a ‘standard’ loa4 is that the player will not complain if there is a joint that is not animated. The author can always easily add animation of joints not controlled by the bvh import. </p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:brutzman@nps.edu" target="_blank">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Sunday, October 30, 2022 12:21 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>; <a href="mailto:brutzman@nps.edu" target="_blank">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>RE: [x3d-public] FW: BVH to X3D Conversion bug</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe you are correct historically – but we added a third level for HAnim motion node in X3D4. Schema, DTD are up-to-date, examples corrected too. Am correcting other tools and diagnostics as I find them.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><ul type=disc><li class=m-7229339152183155924msolistparagraph style='mso-list:l1 level1 lfo2'>X3D4 Architecture, Clause 26 Humanoid Animation (HAnim) component</li><li class=m-7229339152183155924msolistparagraph style='mso-list:l1 level1 lfo2'><b>Table 26.2 — Humanoid animation (HAnim) component support levels</b></li><li class=m-7229339152183155924msolistparagraph style='mso-list:l1 level1 lfo2'><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#t-supportLevels" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#t-supportLevels</a></li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>As far as which approach is best – not currently an issue. At present, am simply trying to convert legacy BVH files into the most compliant X3D HAnim possible. That path can give us a LOT of content. Still moving forward, so far…</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Building an X3D widget to follow your note and control frame-by-frame timing of HAnimMotion advancement by TimeSensor will be interesting…</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Courier New"'> </span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don</span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Courier New"'>-- </span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><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"'><a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a></span></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> <b>On Behalf Of </b>Joseph D Williams<br><b>Sent:</b> Friday, October 28, 2022 7:04 PM<br><b>To:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> [x3d-public] FW: BVH to X3D Conversion bug</p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Brought out to public</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Sent: </b>Friday, October 28, 2022 5:49 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a>; <a href="mailto:tdnorbra@nps.edu" target="_blank">Norbraten, Terry (CIV)</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Cc: </b><a href="mailto:brutzman@nps.edu" target="_blank">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>RE: BVH to X3D Conversion bug</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><ul type=disc><li class=m-7229339152183155924msolistparagraph style='mso-list:l3 level1 lfo3'>The Pirouette.x3d has</li><li class=m-7229339152183155924msolistparagraph style='mso-list:l3 level1 lfo3'><component level='1' name='HAnim’/></li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>An error.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Hanim has basically two levels – </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>skeleton with segment geometry and </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>skeleton with skin. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Check me on this. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>However the piro example is Not Level 1, or any level because the skeleton is Not a legal level of articulation. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This skeleton may be typical in bvh archives because it is a legacy artifact from before we had a world standard realistic skeleton. Just look at it. Is that the way your back works? But, it is simple for simple stuffs.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>If you play with this loa non-conformer, like for instance hook the animation up to any of the more or less standard and proven stand walk run jump twist etc. animations in the archive, then I am fairly sure you will see unexpected gestures. And, when one or some of these work in a ‘standard’ hierarchy skeleton, then add it to the “Standard” examples. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Certainly, as you progress with authored hanim animation style, then you will wish you had started with current vs legacy skeleton, same as possible regret if you started with anything else than an loa4. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>However, this example certainly shows that out of any bvh collections, the native production is probably only a very rough starting point with lots of work left to adapt the captured motion to a usable playback character. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>So (from the Peanut Gallery), please do not run that non-conforming skeleton as a conforming hanim character anymore unless, If you really can’t get conforming x3d hanim skeleton as playback, then please don’t archive as hanim without proper bvh skeleton Disclaimer. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Again, just convert to use the ‘standard’ loa4 as the target playback, at humanoid scale. Then, if interesting, the animations can be extracted for use in a legal skeleton and coded for realtime rather than videotime. Please don’t just simply recreate the bvh-encoded skeleton – convert directly to loa4 at human scale and then you can see what you really have. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Please note one advantage of the typical video frame rate seen in these animation thingees, is that to make a video from these your player does not need to use interpolators since you give it the exact keyframe interval data. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>More fun with realtime hanim. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Best regards,</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Friday, October 28, 2022 2:53 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joe D Williams</a>; <a href="mailto:tdnorbra@nps.edu" target="_blank">Norbraten, Terry (CIV)</a><br><b>Cc: </b><a href="mailto:brutzman@nps.edu" target="_blank">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>Re: BVH to X3D Conversion bug</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Last i heard, HAnim is acceptable. Joe can confirm, cced.</p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Fri, Oct 28, 2022 at 10:00 AM Norbraten, Terry (CIV) <<a href="mailto:tdnorbra@nps.edu" target="_blank">tdnorbra@nps.edu</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'>One issue is that the BVH converter is not translating the correct level for H-Anim. </p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'>The Pirouette.x3d has</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'><component level='1' name='HAnim’/></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'>Should be</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:24.0pt'><component level='1' name=‘H-Anim’/> <span style='color:#FF2600'><<< require the hyphen </span></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;margin-left:24.0pt'> </p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>On Oct 28, 2022, at 05:59, Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>Thank you John for excellent logs and sleuthing.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>Terry, the error immediately jumping out at me is the following. At least one library is not getting bundled properly.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:240.0pt'><span style='font-size:10.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>java.lang.ClassNotFoundException: javax.vecmath.Vector3d</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>Great discussion yesterday Terry, thanks. I have created the pre-release file site at</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:240.0pt'><span style='font-size:10.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fx3d%2Ffiles%2FX3D-Edit%2520Pre-Release%2520Testing%2F&data=05%7C01%7Cbrutzman%40nps.edu%7Ccfce743709d84501fcd208dab9521e76%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638026059745002134%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000%7C%7C%7C&sdata=5nGgyeQabvwSA5rQbsW5k1%2FOxZJgoQlYKbvhjYYhaeI%3D&reserved=0" target="_blank">https://sourceforge.net/projects/x3d/files/X3D-Edit%20Pre-Release%20Testing/</a></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><span style='font-size:10.0pt;font-family:"Courier New"'> </span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don</span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><span style='font-size:10.0pt;font-family:"Courier New"'>-- </span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><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"'><a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a></span></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br><b>Sent:</b> Thursday, October 27, 2022 12:09 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>; Norbraten, Terry (CIV) <<a href="mailto:tdnorbra@nps.edu" target="_blank">tdnorbra@nps.edu</a>><br><b>Subject:</b> Re: Trying new download--X3D-Edit 4</p></div></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><div style='border:solid #004679 1.0pt;padding:2.0pt 2.0pt 2.0pt 2.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-right:2.5in;margin-left:204.0pt;line-height:12.0pt;background:#004679'><span style='font-size:10.0pt;color:yellow'>NPS WARNING: *external sender* verify before acting.</span></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>I have confirmed the Pirouette.bvh in archives and pirouette.bvh are the same, essentially, just different whitespace. I will now try to see if X3D-Edit will load the archive version. </p></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>Attached are the logs that are showing up in Windows 10 X3D-Edit dev/var/log.</p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>I haven't looked into them yet, I will now move to Linux.</p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'>If you could send me the X3d-Edit steps how to convert BVH to X_ITE and X3DOM, that would be great.</p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:204.0pt'> </p></div></div></div></div></div></div></blockquote></div></div></div></blockquote></div></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-right:.5in;margin-bottom:5.0pt;margin-left:40.8pt'>Forward old email if necessary.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </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><o:p> </o:p></p></div></body></html>