<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:"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;}
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;}
span.element
        {mso-style-name:element;}
span.attribute
        {mso-style-name:attribute;}
.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></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Note this model says:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'><</span><span class=element><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:navy'>meta</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'> </span><span class=attribute><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:green'>name</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>='</span><b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:#CC5500'> warning </span></b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>' </span><span class=attribute><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:green'>content</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>='</span><b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:#CC5500'> This is a developmental example, use H-Anim native tags as shown in other examples instead of the prototypes and ProtoInstances shown here. </span></b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>'/><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>So maybe prototypes are deprecated for HAnim?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>John</span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a 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 href="mailto:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Sent: </b>Monday, May 28, 2018 6:28 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:x3dom-users@lists.sourceforge.net">x3dom mlist</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: both X3DOM and X_ITE.</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A quick follow up:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyDivingProtoInstancesIndex.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>seems to be a good example for proto-based HAnim.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It works in x_ite and perhaps is expandable.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The scripts do not seem to part of the proto's ? If not, perhaps it is</p><p class=MsoNormal>possible to simplify and take those out ?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-Andreas</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On Mon, May 28, 2018 at 6:09 PM, Andreas Plesch <andreasplesch@gmail.com> wrote:</p><p class=MsoNormal>> On Mon, May 28, 2018 at 4:24 PM, Joseph D Williams</p><p class=MsoNormal>> <joedwil@earthlink.net> wrote:</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> From: Andreas Plesch</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> There just does not seem a lot of demand or requests by users or</p><p class=MsoNormal>>>> customers. Of course, this may be a chicken and egg problem.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> And, that if you hae soething that works, like contact and instant, maybe</p><p class=MsoNormal>>> you don’t need to complain.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>> Or on the web look for other,widely available technologies.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> Contributions to x3dom or x_ite are always welcome, in any case.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Great a contribution to either is a contribution to X3D.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>> Well said.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> For x3dom, my interest would be probably the glTF angle. glTF has</p><p class=MsoNormal>>>> character animation. Here is an example:</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> https://www.donmccurdy.com/2017/11/06/creating-animated-gltf-characters-with-mixamo-and-blender/></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Great, I will look. The basic x3d hanim skeleton, bindings, animations, and</p><p class=MsoNormal>>> geometries can be stored in gltf. I hope I can look back in the hanim</p><p class=MsoNormal>>> archives to see a comparison I did. No doubt gltf can transport the good</p><p class=MsoNormal>>> stuff with the only problem that gltf uses unit quats instead of axis-angle.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>> x3dom uses quats internally anyways, I think rotation field values are</p><p class=MsoNormal>> immediately converted at parsing.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> The best explanation, apart from studying glTF loaders, is apparently</p><p class=MsoNormal>>>> in this figure, sorry about that:</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> https://raw.githubusercontent.com/KhronosGroup/glTF/master/specification/2.0/figures/gltfOverview-2.0.0a.png</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> OK, I will look for more recent info, but I don’t think anything in this has</p><p class=MsoNormal>>> changed. Structure and data – names may be different but the data and its</p><p class=MsoNormal>>> application is the same. Now I know there may be some new tech but for the</p><p class=MsoNormal>>> basics stuf, not much has changed in the last 20 years since hanim was</p><p class=MsoNormal>>> specified.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> The glTF spec. itself, I think, refers to the figure to explain meaning.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>> translation of a simple glTF character to an HAnim humanoid would be a</p><p class=MsoNormal>>>> good first step.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> A better first step would be to transcode an HAnim humanoid into gltf and</p><p class=MsoNormal>>> back again. From what I saw it would work. After all, it is all the same</p><p class=MsoNormal>>> structure and same data. I was going to work on the Boxman and the JoeKick</p><p class=MsoNormal>>> models in the x3d hanim example archives.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Well, these are two steps. The simplest rigged skining glTF example seems to be:</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/RiggedSimple</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> A functional, minimal subset of HAnim of nodes and/or a Proto-based</p><p class=MsoNormal>>>> implementation of the nodes would also help implementers.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Of course we have the proto-based nodes for HAnim where the geometries are</p><p class=MsoNormal>>> children of Segments (bones) and we animate the skeleton. A prototype for</p><p class=MsoNormal>>> seamless skin animation is Boxman in x3d hanim archives - it needs a fancy</p><p class=MsoNormal>>> script to move skin. Since there are no other features of x3d that</p><p class=MsoNormal>>> approximate the way skin is animated, there are no scriptless prototypes.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Ok: Here is the link:</p><p class=MsoNormal>> http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimPrototypesIndex.html</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> But I do not see scripts ?</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Will there be an proto update for the new version of HAnim ?</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>> A main challenge will be probably the requirement to have vertex</p><p class=MsoNormal>>>> geometry manipulation in a shader on the GPU. This is done only for</p><p class=MsoNormal>>>> displacement textures of a CommonSurfaceShader node currently in</p><p class=MsoNormal>>>> x3dom.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Yes, we need to control individual ‘skin’ vertices according to a simple</p><p class=MsoNormal>>> weighting algorithm depending upon rotation of one or more joints. That has</p><p class=MsoNormal>>> been a problem, yet it is so basic, that and morph shape, that we should</p><p class=MsoNormal>>> have both features outside the Humanoid container.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Yes, morphing seems generally useful. I think glTF may use weighted</p><p class=MsoNormal>> matrices but not sure.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> If anyone wants to learn character animation, anything you learn about x3d</p><p class=MsoNormal>>> hanim will not be a waste of time. X3d hanim still documents an industry</p><p class=MsoNormal>>> standard approach where inputs were taken from all major toolmakers because</p><p class=MsoNormal>>> strangely, even back in the late 1990’s there was great input from users to</p><p class=MsoNormal>>> the biggies that they had to allow data to be exported and transported</p><p class=MsoNormal>>> between applications. Only the names were changed to prevent favoritism and</p><p class=MsoNormal>>> preserve innocence – ooh, and to bring the secretive data structures and</p><p class=MsoNormal>>> bindings out into the open.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Ok. I will say that the HAnim prototypes which do not need scripts</p><p class=MsoNormal>> should be possible, even straightforward to port to x3dom and probably</p><p class=MsoNormal>> x_ite native nodes. John's protoexpander probably already could deal</p><p class=MsoNormal>> with those. So the main challenge probably really is the GPU based</p><p class=MsoNormal>> vertex displacing.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Is there any use in having the Grouping/Transform type HAnim nodes only ?</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Best, -Andreas</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> On Mon, May 28, 2018 at 10:42 AM, Joseph D Williams</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> <joedwil@earthlink.net> wrote:</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>>> both X3DOM and X_ITE …</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> The discussions about both X3DOM and X_ITE are, to me, missing a very</p><p class=MsoNormal>>>> important feature. Neither of these tools can do HAnim skeleton controlled</p><p class=MsoNormal>>>> deformable skin. This is a very important feature, lending itself to many</p><p class=MsoNormal>>>> important applications in addition to HAnim. There have been several</p><p class=MsoNormal>>>> discussions about the hanim joint(s) to deformable skin bindings and as</p><p class=MsoNormal>>>> far</p><p class=MsoNormal>>>> as I have seen, there is no doubt that the way x3d specifies the basic,</p><p class=MsoNormal>>>> most</p><p class=MsoNormal>>>> simple, and most transportable technique to achieve the result. So, as the</p><p class=MsoNormal>>>> HAnim standard takes the next step, why not move a bit toward implementing</p><p class=MsoNormal>>>> this important capability in your browsers. BSContact does it, I think</p><p class=MsoNormal>>>> Instant does it mostly but x3dom and x_ite don’t.</p><p class=MsoNormal>>>> Thanks and Best,</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>> Joe</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> --</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Andreas Plesch</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Waltham, MA 02453</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> --</p><p class=MsoNormal>> Andreas Plesch</p><p class=MsoNormal>> Waltham, MA 02453</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-- </p><p class=MsoNormal>Andreas Plesch</p><p class=MsoNormal>Waltham, MA 02453</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>