<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>