<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 10/23/2016 8:30 PM,
      <a class="moz-txt-link-abbreviated" href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a> wrote:<br>
    </div>
    <blockquote cite="mid:580d806a.529c370a.26406.c1d4@mx.google.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@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;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        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;
        color:black;}
.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;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal">Leonard,</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I think you wanted to say for your last
          sentence: “If X3Dng joint animation and skin deformation was
          taken, perhaps wholesale, from H-Anim, what would be left in
          H-Anim?”</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">But you can probably word-craft better than
          I can.  Have another go at it if you like.</p>
      </div>
    </blockquote>
    <br>
    John,<br>
    <br>
    Thanks for pointing this out. I am not too particular to get the
    discussion going. What you said is correct, but I did want to give
    the opportunity to include other material that might better fit the
    mission of H-Anim. I do not know what that might be, nor do I wish
    to presume anything about that mission. I did intend it to be an
    open-ended question, though I could have improved the wording.<br>
    <br>
    <br>
    Leonard Daly<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <blockquote cite="mid:580d806a.529c370a.26406.c1d4@mx.google.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">John</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Sent from <a moz-do-not-send="true"
            href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a>
          for Windows 10</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 moz-do-not-send="true"
              href="mailto:Leonard.Daly@realism.com">Leonard Daly</a><br>
            <b>Sent: </b>Sunday, October 23, 2016 11:22 PM<br>
            <b>To: </b><a moz-do-not-send="true"
              href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>;
            <a moz-do-not-send="true" href="mailto:h-anim@web3d.org">Human
              Animation working group</a><br>
            <b>Subject: </b>Re: [x3d-public] Purpose of X3Dng --
            Animation (of humanoid models)</p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-bottom:12.0pt">I want to
          point out that my posting on X3Dng Animation [<a
            moz-do-not-send="true"
            href="http://realism.com/blog/purpose-x3d-animation">http://realism.com/blog/purpose-x3d-animation</a>]
          (BTW, ng == next generation) is not necessarily for characters
          - human, humanoid, or animal. It is a means of animation that
          is in standard use in the animation industry. It is frequently
          applied to characters, but that is not the only possible
          target of the animation. <br>
          <br>
          This method of animation is not "fool-proof" - there are some
          edge cases that cause problems -- for example a rotation of pi
          radians on a joint that can twist causes the skin to
          "candy-wrap". See <a moz-do-not-send="true"
href="http://www.cs.cmu.edu/%7Eyaser/Lecture-9-Skinning%20and%20Body%20Representations.pdf">http://www.cs.cmu.edu/~yaser/Lecture-9-Skinning%20and%20Body%20Representations.pdf</a>,
          pages 27-34 for a visual and technical description of the
          issue. The charts also provide a lot of the mathematical
          framework that Don discusses below including motion capture.<br>
          <br>
          So I'll ask my question again, if X3Dng includes joint
          animation with skin deformation at a profile that is generally
          used (e.g., Immersive or less); what should the H-Anim
          specification cover? I am not trying to imply that H-Anim
          should not exist, but a big chunk of the document does discuss
          joint animation with skin deformation. If that capability were
          part of the X3D specification, would it need to be repeated in
          H-Anim? (If so, why?). If it was removed, what would be the
          appropriate material to include in the document?<br>
          <br>
          <br>
          Leonard Daly<br>
          <br>
          <br>
          <o:p></o:p></p>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="MsoNormal">[cc: h-anim] <br>
            <br>
            Summary: a lot of capability is steadily adding up with
            H-Anim, and beginning to overlap with Medical and CAD. <br>
            <br>
            Great observations below, Joe and Michalis!  8)  Thank you. 
            Here are some reactions. <br>
            <br>
            We have had a lot of work to achieve progress towards X3D
            version 4.  (Don't know what the subject-line "X3Dng" refers
            to.)  Recent progress is confirming that the work on X3D
            Object Model has been fundamentally important as a way to
            ensure that the entire X3D scene graph is consistent and
            coherent across every file encoding and every programming
            language binding.  So we are really building for scalable,
            repeatable success. <br>
            <br>
            Observation: SFRotation axis-angle representation is
            mathematically equivalent to quaternions, so there is no
            conversion issue there.  Matrix rotations are also
            almost-fully equivalent with only a few edge-case anomalies
            like the possibility of exceptions when computing inverses. 
            So mapping to different forms of rotations is not
            particularly difficult when using X3D SFRotation, it just
            takes close attention to detail. (One virtue of programming,
            even when challenging, is that You Only Have To Get It Right
            Once.) <br>
            <br>
            Personally, am hoping to get back to work on the
            BVH-mocap-to-X3D-interpolators converter code before the end
            of the year.  Goal is to have this open source Java running
            and producing X3D animations, just like Suwon University's
            C++ code did for their H-Anim Music Video competition.  That
            should establish a baseline of 2 mocap-related
            implementations that can help us continue to improve. <br>
            <br>
                <a moz-do-not-send="true"
href="https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/tools/X3dEdit3.3/X3D/src/org/web3d/x3d/hanim/bvh/">https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/tools/X3dEdit3.3/X3D/src/org/web3d/x3d/hanim/bvh/</a>
            <br>
                BvhSkeletonParameters.java <br>
                Hierarchy.java <br>
                Joint.java <br>
                Motion.java <br>
            <br>
            All of the recent review activity and interest during the
            H-Anim specifications review is certainly a wonderful
            development.  When all of the other H-Anim specification
            comments are assembled from participating ISO national
            standards bodies, we can plan on an Specification Editors
            Meeting to consider issues and best plans for resolutions. 
            Meanwhile, as time permits, the H-Anim and X3D Working
            Groups can continue looking at the baseline mantis issues
            list to prepare potential solutions. <br>
            <br>
            I also agree that the path to success lies through
            implementation and evaluation.  As we keep building
            examples, and implementing conversions, and adding tool
            support, am expecting the differences between different
            approaches will appear simpler, clearer, more adaptable, and
            easier to support.  Similarly, it makes no sense to change
            what we have in H-Anim until we have direct evidence of
            problems or how to accomplish potential improvements. <br>
            <br>
            Current H-Anim example models: <br>
            <br>
                <a moz-do-not-send="true"
              href="http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation">http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation</a>
            <br>
            <br>
            Regarding importance of H-Anim tutorials: another point well
            taken.  Here is one with 97 slides (second half includes
            slides + annotation notes).  Questions, corrections and
            suggestions for improvement welcome. <br>
            <br>
                <a moz-do-not-send="true"
href="http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf">http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf</a>
            <br>
            <br>
            Does it make sense to add adaptation/conversion of Blender
            character animations into H-Anim models as a goal?  Blender
            does have excellent general support for X3D export/import
            (on its top-level File menu).  If so, we could add it to: <br>
            <br>
                web3D.org > PARTICIPATE > Projects Wish List <br>
                <a moz-do-not-send="true"
              href="http://www.web3d.org/projects/wish-list">http://www.web3d.org/projects/wish-list</a>
            <br>
            <br>
            Perhaps someone wants to look at Cobweb source and help out
            with adding support for H-Anim nodes.  Not so hard, the
            pattern is somewhat similar to CAD nodes, already
            implemented in X3DOM; yet another open-source example
            implementation is available as X3D prototypes (no Script
            needed) at: <br>
            <br>
                X3D Example Archives: Basic, Humanoid Animation, HAnim
            Prototypes <br>
                <a moz-do-not-send="true"
href="http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimPrototypesIndex.html">http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimPrototypesIndex.html</a>
            <br>
            <br>
                Cobweb Supported Components <br>
                <a moz-do-not-send="true"
              href="http://titania.create3000.de/cobweb/#c426">http://titania.create3000.de/cobweb/#c426</a>
            <br>
            <br>
            Looking further ahead.  There is one more clarion priority
            for H-Anim progress: modeling human joints, bones, skin and
            motions at a resolution suitable for medical applications
            and electronic health records.  Alignment of DICOM-standard
            medical imagery as X3D volume presentations is another
            emerging major asset.  Common interest with CAD group in
            metadata annotations, 3D printed parts (splints, prostheses,
            devices) and 3D scanning is also truly compelling.  The CAD
            and medical workshops at the Web3D 2016 Conference in
            Anaheim a few months back showed that much is possible. 
            Early-exemplar case study: <br>
            <br>
                3D Printed Heart for Printed Preoperative Planning <br>
                Two views of a printed heart from MRI data <br>
                <a moz-do-not-send="true"
              href="http://www.web3d.org/example/3d-printed-heart">http://www.web3d.org/example/3d-printed-heart</a>
            <br>
            <br>
            Assembled and aligned together, with working tools +
            repeatable workflows + validation of correctness, the X3D
            family of technologies holds tremendous promise to broadly
            improve medical understanding and communication. <br>
            <br>
            All of this technical scrutiny is super valuable.  Having a
            constructive community is so valuable - we avoid blunders
            and steadily build shared understanding. <br>
            <br>
            Onward we go, step by step! Looking forward to continuing
            progress together. <br>
            <br>
            <br>
            On 10/21/2016 5:06 PM, Joe D Williams wrote: <br>
            <br>
            <o:p></o:p></p>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
              <p class="MsoNormal">It would be fantastic if e.g. Blender
                armature animation was exported <br>
                to X3D. It is already possible, as H-Anim supports the
                necessary <br>
                features --- what is miss is the actual code on the side
                of Blender <br>
                (Python) exporter to X3D. <o:p></o:p></p>
            </blockquote>
            <p class="MsoNormal"><br>
              Good idea, perhaps if the Blender animation data exists so
              it can be made to work in interpolators. <br>
              Sometimes the export of animation intended for rendering
              to film or video is just a list of completely rendered
              frames rather than an actual realtime animation style. <br>
              <br>
              If the data exists to export keyframe keys and keyvalues,
              then the rotations and translations should be easy to get.
              In an 'old style' armature they were not interested in
              joint rotation but depended upon bone orientation. That is
              OK because the purpose was to pose the artatmure for the
              next frame, not to worry about interpolation since they
              knew the target frame intervals. That is OK, bone
              orientation and joint rotation is the same. <br>
              <br>
              Another detail is that the joint animation data may be in
              unit quaternions, which is actually most likely since it
              is the preferred form in collada and glTF.  Or, the data
              may use euler-type angles (x-y-z) that need to be
              converted to x3d axis-angle which can be straightforward.
              <br>
              <br>
              That is what Part 2 of new HAnim is about, how to import
              mocap and other types of animation data. First you
              consider the capture skeleton, then you model it to a
              model of an HAnim 'standard' playback skeleton, convert
              the keyvalues as required, create the positon and
              orientation interpolators, then run the thing. Everyone's
              comments on this Part 2 is also appreciated. <br>
              <br>
              I don't think we want to also cover the idea of no
              interps, just itty through the mocap keyvalues for video
              or film fixed frame interval rendering and capture. X3D's
              target is realtime or anytime and everytime. Of course you
              also make video or film using X3D. Same for 'general'
              coverage of this anmation technology. Of course you can do
              anything you want. You don't need study HAnim very long
              until you learn that yes, you can define your own joint
              hierarchy, use any names you wish, and attach any kind of
              geometry and sensors you wish. If you want to do different
              shaped skin, then fine. Finally, if you understand the
              skelton setup, you can just fly them joints around to
              achieve most any animations possible with your model. You
              can easily adjust animations with a keyboard, a text
              editor, and an X3D player. <br>
              <br>
              Whatever you do, there are the same rules. Similar
              skeletons with similar initial pose can exchange skeletal
              animations. That is the most important point of this
              entire effort. Exchange skins when skeleton joint
              hierarchy, skin vertex count, order of appearance in the
              user code, and feature point relationships are the same.
              Sure we could tell that story in a series of tutorials but
              this is a spec. Maybe not this example, but the spec does
              not always need to spell out the history or details that
              would be obvious to an expert in the field, just the bare
              implementation requirements. <br>
              <br>
              Again, capabilities in this spec can describe any skeleton
              but I think we want to target something concrete.
              Something that can have a set of reference inputs and a
              set of reference outputs. Finally, we want a 'standard'
              set of example animations that work with each of the
              'standard' LOA definitions. <br>
              <br>
              For this spec effort, the most important thing is that
              Implementors get it right. If the implementation can
              deliver a 'standard' humanoid that uses 'standard'
              animations, then we have something. If the implemetation
              gets it right, then the users can get most anything out of
              it they want. So that is why the HAnim spec targets the
              'standard' animatable humanoid. <br>
              <br>
              When we discuss general X3D animation facilities, of which
              there are many, then that is the job of a set of
              tutorials. Please recall that the spec is addressing
              Implementors, and technicallly-oriented users, not the
              general user. Usually the spec will fail when it wanders
              into general tutorials aimed at general users. <br>
              <br>
              Still, the idea of bringing something like the HAnim
              DIsplacer up into the same bag of tools as other styles
              and types of interpolators would be a fine idea. I think
              that might be what Leonard was mentioning when he said
              there are other more basic tools than joint-actuated mesh
              deformation. It is easy to recognize the Displacer as a
              basic mesh animation tool that would be encountered in
              early animation lessons. <br>
              <br>
              Thanks and Best, <br>
              Joe <br>
              <br>
              <br>
              ----- Original Message ----- From: "Michalis Kamburelis" <a
                moz-do-not-send="true"
                href="mailto:michalis.kambi@gmail.com"><michalis.kambi@gmail.com></a>
              <br>
              To: "Leonard Daly" <a moz-do-not-send="true"
                href="mailto:Leonard.Daly@realism.com"><Leonard.Daly@realism.com></a>
              <br>
              Cc: "Joe D Williams" <a moz-do-not-send="true"
                href="mailto:joedwil@earthlink.net"><joedwil@earthlink.net></a>;
              "X3D Public" <a moz-do-not-send="true"
                href="mailto:x3d-public@web3d.org"><x3d-public@web3d.org></a>
              <br>
              Sent: Thursday, October 20, 2016 10:34 PM <br>
              Subject: Re: [x3d-public] Purpose of X3Dng -- Animation <br>
              <br>
              <br>
              <br>
              <o:p></o:p></p>
            <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
              <p class="MsoNormal">2016-10-21 6:23 GMT+02:00 Leonard
                Daly <a moz-do-not-send="true"
                  href="mailto:Leonard.Daly@realism.com"><Leonard.Daly@realism.com></a>:
                <br>
                <br>
                <o:p></o:p></p>
              <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
                <p class="MsoNormal">In all your writings you appear to
                  be making the assumption that joint-based <br>
                  animation with deformable skin is H-Anim. That is not
                  true. <o:p></o:p></p>
              </blockquote>
              <p class="MsoNormal"><br>
                Hi, <br>
                <br>
                From my point of view, I see H-Anim as "the way to do
                animation using <br>
                skeletons, bones and (optional) skins in X3D". I can
                easily do <br>
                skeletal animation of anything (humans, pipes, animals)
                with H-Anim. I <br>
                actually implemented it in view3dscene, and really
                there's nothing <br>
                limiting this system to "humanoids". You just transform
                the bones, and <br>
                optionally deform a mesh following the per-vertex
                weights. <br>
                <br>
                Maybe we could solve the issues raised here by simply
                changing the <br>
                wording (and some node names), to de-emphasize the
                "humanoid" part in <br>
                the H-Anim specifications. (The X3D component <br>
                <a moz-do-not-send="true"
href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/hanim.html">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/hanim.html</a>
                <br>
                and the H-Anim spec on <br>
                <a moz-do-not-send="true"
                  href="http://h-anim.org/Specifications/H-Anim200x/ISO_IEC_FCD_19774/">http://h-anim.org/Specifications/H-Anim200x/ISO_IEC_FCD_19774/</a>
                ). <br>
                <br>
                Such change would more accurately reflect H-Anim's
                capabilities (in my view). <br>
                <br>
                How about we would simply rename H-Anim component in X3D
                to "Skeletal <br>
                Animation"? Some additional renames would be nice, like
                removing the <br>
                "HAnim*" prefix from nodes, and the main "HAnimHumanoid"
                node could be <br>
                something simpler like just a "Skeleton" (with the
                primary field being <br>
                "skeleton"). <br>
                <br>
                The fact that the H-Anim standard defines also a
                standard "Structure <br>
                of a humanoid" is just "an extra" for me. I mean, it is
                valuable!, but <br>
                it can also be simply ignored if you don't model a
                humanoid (or don't <br>
                care about standardizing your names, to transfer the
                animations <br>
                between other humanoids). <br>
                <br>
                Also, adding such "Skeletal Animation" component to the
                "Immersive" <br>
                (or even earlier) profile would be a nice touch. It is a
                major <br>
                animation method. Putting it inside a component other
                than "Full" is a <br>
                way of encouraging implementations of it. Especially
                since it seems we <br>
                do have a lot of implementations of it. <br>
                <br>
                It would be fantastic if e.g. Blender armature animation
                was exported <br>
                to X3D. It is already possible, as H-Anim supports the
                necessary <br>
                features --- what is miss is the actual code on the side
                of Blender <br>
                (Python) exporter to X3D. <br>
                <br>
                I hope that this opinion helps:) <br>
                <br>
                Best regards, <br>
                Michalis <o:p></o:p></p>
            </blockquote>
            <p class="MsoNormal"><br>
              _______________________________________________ <br>
              x3d-public mailing list <br>
              <a moz-do-not-send="true"
                href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
              <br>
              <a moz-do-not-send="true"
                href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
              <o:p></o:p></p>
          </blockquote>
          <p class="MsoNormal"><br>
            <br>
            all the best, Don <o:p></o:p></p>
        </blockquote>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p><o:p> </o:p></p>
        <p class="MsoNormal">-- <br>
          <b><span style="font-size:13.5pt;color:#333366">Leonard Daly</span></b><span
            style="color:#333366"><br>
            3D Systems & Cloud Consultant<br>
            LA ACM SIGGRAPH Chair<br>
            President, Daly Realism - <i>Creating the Future</i> </span><o:p></o:p></p>
        <p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
    </blockquote>
    <br>
    <p><br>
    </p>
    <div class="moz-signature">-- <br>
      <font class="tahoma,arial,helvetica san serif" color="#333366">
        <font size="+1"><b>Leonard Daly</b></font><br>
        3D Systems & Cloud Consultant<br>
        LA ACM SIGGRAPH Chair<br>
        President, Daly Realism - <i>Creating the Future</i>
      </font></div>
  </body>
</html>