<div dir="ltr">People can verify my work by downloading:<div><br></div><div><a href="https://github.com/coderextreme/x3dvalidate">https://github.com/coderextreme/x3dvalidate</a> </div><div><br></div><div>then using the command-line to validate the JSON:</div><div><br></div><div>In: the folder x3dvalidate:</div><div><br></div><div>$ node x3dvalidate.js H* K*<br></div><div><br></div><div>(you'll have to download node, and ajv, jsonlint, by running `npm install`).</div><div><br></div><div>Thanks for double checking my work!</div><div><br></div><div>As part of (f), I suggest:</div><div><br></div><div>1.  Testing build of Humanoid Animation</div><div>2.  Test generation of Humanoid Animation website (X3d Resources Examples).</div><div>3.  Test X3DJSONLD, including making sure the generated source code creates good roundtrips.</div><div>4.  Test X3DJSAIL, X3dTo*.xslt</div><div>5.  Test conforming browsers (or browser conformance.</div><div>6.  Perhaps test x3d.py and pythonSAI, if we get a conforming web implementation (of HAnimMotion especially).</div><div>7.  Test x3d.js with jupyter notebook</div><div><br></div><div>Also, we could apply skin, ala: <a href="https://www.web3d.org/x3d/content/examples/Basic/Medical/BodySkinIndexedFaceSetNISTIndex.html">https://www.web3d.org/x3d/content/examples/Basic/Medical/BodySkinIndexedFaceSetNISTIndex.html</a> to various skeletons!</div><div><br></div><div>We've got quite a bit to do, even with just testing.</div><div><br></div><div>Onwards!  Tallyho!</div><div><br></div><div>John</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 6, 2020 at 8:55 AM Don Brutzman <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[renamed subject line from "My errors left in HAnim, I think."]<br>
<br>
John, thanks for steady progress.  Let's devote part of our weekly meeting with Joe Williams tomorrow to looking at specific details of your status.<br>
<br>
[1]     Humanoid Animation and Medical Examples weekly meeting<br>
        Thursdays 13-1500 pacific<br>
        <a href="https://www.web3d.org/member/teleconference-information" rel="noreferrer" target="_blank">https://www.web3d.org/member/teleconference-information</a><br>
<br>
For everyone's information, because of their large and growing size, last week we successfully ported examples<br>
<br>
[2]     X3D Example Archives: Basic, Humanoid Animation<br>
        <a href="https://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation" rel="noreferrer" target="_blank">https://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation</a><br>
<br>
to a new independent top-level archive nearby.  Version control:<br>
<br>
[3]     <a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation" rel="noreferrer" target="_blank">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation</a><br>
<br>
to<br>
[4]     <a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation" rel="noreferrer" target="_blank">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation</a><br>
<br>
with an eye on<br>
<br>
[5]     X3D Example Archives: Basic, Medical<br>
        <a href="https://www.web3d.org/x3d/content/examples/Basic/Medical" rel="noreferrer" target="_blank">https://www.web3d.org/x3d/content/examples/Basic/Medical</a><br>
<br>
Our initial sorting of HAnim examples resulted in following preliminary list of directories:<br>
<br>
  CharactersV1<br>
  CharactersV2<br>
  HAnimSpecificationV1<br>
  HAnimSpecificationV2<br>
  Motions<br>
  NonStandard<br>
  Prototypes<br>
  Templates<br>
<br>
We will continue working on these.  As discussed elsewhere, efforts include the following work list:<br>
<br>
a. updating all model metadata to reflect new location,<br>
b. fixing a hodgepodge of legacy version numbers: allowed official HAnim versions are 1 and 2,<br>
c. adding Medical examples to this archive, possibly renaming as HumanoidAnimationMedical<br>
d. integrating existing regression testing, build process and deployment in this new archive,<br>
e. updating validation tools,<br>
f. testing existing implementations,<br>
g. documenting a list of changes and improvements for clarity.<br>
<br>
The new HAnim version 2 is published by ISO and will soon be published by Web3D.  Available to members now on github.<br>
<br>
[6]     <a href="https://github.com/Web3DConsortium/HAnim/blob/master/ISO-IEC19774-combined-IS.Web3D.zip" rel="noreferrer" target="_blank">https://github.com/Web3DConsortium/HAnim/blob/master/ISO-IEC19774-combined-IS.Web3D.zip</a><br>
<br>
This can serve as our agenda for Thursday, all additions and suggested requirements welcome.<br>
<br>
Have fun with X3D Humanoid Animation Medical examples!  8)<br>
<br>
p.s. X3D HAM??<br>
<br>
On 5/5/2020 12:02 AM, John Carlson wrote:<br>
> Pretty pictures (animation doesn't work for this one!). Note that I got the image in the X_ITE-JSON version and not the X_ITE-XML version, so it appears that the XML version doesn't work, or the translation from XML to JSON to XML.  I'm no sure what's up with X3DOM.<br>
> <br>
> I was able to also get the other spec example animated in X_ITE-JSON<br>
> <br>
> image.png<br>
> <br>
> On Tue, May 5, 2020 at 1:29 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a> <mailto:<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>> wrote:<br>
> <br>
>     Fixed the skeleton issue in DOM2JSONSerializer.js<br>
> <br>
>     Remaining skeleton issue (problem with original .x3d).<br>
>     File: KoreanCharacterAnnexD01Jin.json<br>
>     Error reading KoreanCharacterAnnexD01Jin.json<br>
>       keyword: additionalProperties<br>
>       dataPath: X3D > Scene<br>
>       value: {"-children":"|omitted|","-skeleton":"|omitted|"}<br>
>       message: should not have additional properties<br>
>       params: {"additionalProperty":"-skeleton"}<br>
>       file: KoreanCharacterAnnexD01Jin.json<br>
>       version: 4.0<br>
>     =====================================================<br>
>     This one appears to not translate properly.  Hmm.<br>
> <br>
>       keyword: type<br>
>       dataPath: X3D > Scene > -children > 2 > HAnimHumanoid > -skeleton > 0 > HAnimJoint > -children > 0 > HAnimSegment > -children > 0 > Transform > -children > 0 > Shape > -geometry > IndexedFaceSet > -coord > Coordinate > @point > 0<br>
>       value: null<br>
>       message: should be number<br>
>       params: {"type":"number"}<br>
>       file: KoreanCharacterAnnexC01Jin.json<br>
>       version: 4.0<br>
> <br>
>     Fixed, by doing a trim() around attribute values.<br>
> <br>
>     So it seems like I have conquered most of the issues my code.  The remaining one is the -skeleton right under Scene.  I believe this is an issue with the standard x3d example, and should be reported as an issue (even in X3dToJson.xslt, if not already).<br>
> <br>
>     John<br>
> <br>
>     On Tue, May 5, 2020 at 12:50 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a> <mailto:<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>> wrote:<br>
> <br>
>         DOM2JSONSerializer.js has the following issues:<br>
> <br>
>         -skeleton is treated as an object instead of an array.<br>
> <br>
>         John<br>
> <br>
>         Loading schema<br>
>         Parsing schema<br>
>         Adding schema<br>
>         Schema 4.0 added<br>
>         Schema 4.0 compiled<br>
>         ================================================================================<br>
>         File: HAnimModelFootLeft.json<br>
>         Error reading HAnimModelFootLeft.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Left_Foot","@info":"|omitted|","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Left_Foot","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"@DEF"}<br>
>           file: HAnimModelFootLeft.json<br>
>           version: 4.0<br>
> <br>
>           keyword: type<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid > -skeleton<br>
>           value: {"HAnimJoint":"|omitted|"}<br>
>           message: should be array<br>
>           params: {"type":"array"}<br>
>           file: HAnimModelFootLeft.json<br>
>           version: 4.0<br>
> <br>
>           keyword: oneOf<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Left_Foot","@info":"|omitted|","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Left_Foot","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should match exactly one schema in "oneOf"<br>
>           params: {"passingSchemas":null}<br>
>           file: HAnimModelFootLeft.json<br>
>           version: 4.0<br>
> <br>
>         ================================================================================<br>
>         File: HAnimModelFootRight.json<br>
>         Error reading HAnimModelFootRight.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Right_Foot","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Right_Foot","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"@DEF"}<br>
>           file: HAnimModelFootRight.json<br>
>           version: 4.0<br>
> <br>
>           keyword: type<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid > -skeleton<br>
>           value: {"HAnimJoint":"|omitted|"}<br>
>           message: should be array<br>
>           params: {"type":"array"}<br>
>           file: HAnimModelFootRight.json<br>
>           version: 4.0<br>
> <br>
>           keyword: oneOf<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Right_Foot","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Right_Foot","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should match exactly one schema in "oneOf"<br>
>           params: {"passingSchemas":null}<br>
>           file: HAnimModelFootRight.json<br>
>           version: 4.0<br>
> <br>
>         ================================================================================<br>
>         File: HAnimModelHandLeft.json<br>
>         Error reading HAnimModelHandLeft.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Left_hand","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Left_hand","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"@DEF"}<br>
>           file: HAnimModelHandLeft.json<br>
>           version: 4.0<br>
> <br>
>           keyword: type<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid > -skeleton<br>
>           value: {"HAnimJoint":"|omitted|"}<br>
>           message: should be array<br>
>           params: {"type":"array"}<br>
>           file: HAnimModelHandLeft.json<br>
>           version: 4.0<br>
> <br>
>           keyword: oneOf<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Left_hand","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Left_hand","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should match exactly one schema in "oneOf"<br>
>           params: {"passingSchemas":null}<br>
>           file: HAnimModelHandLeft.json<br>
>           version: 4.0<br>
> <br>
>         ================================================================================<br>
>         File: HAnimModelHandRight.json<br>
>         Error reading HAnimModelHandRight.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Right_hand","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Right_hand","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"@DEF"}<br>
>           file: HAnimModelHandRight.json<br>
>           version: 4.0<br>
> <br>
>           keyword: type<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid > -skeleton<br>
>           value: {"HAnimJoint":"|omitted|"}<br>
>           message: should be array<br>
>           params: {"type":"array"}<br>
>           file: HAnimModelHandRight.json<br>
>           version: 4.0<br>
> <br>
>           keyword: oneOf<br>
>           dataPath: X3D > Scene > -children > 1 > HAnimHumanoid<br>
>           value: {"@DEF":"Humanoid_Right_hand","@jointBindingPositions":"|omitted|","@jointBindingRotations":"|omitted|","@jointBindingScales":"|omitted|","@loa":-1,"@name":"Humanoid_Right_hand","@skeletalConfiguration":"BASIC","@version":"2.0","-skeleton":"|omitted|","-joints":"|omitted|","-segments":"|omitted|"}<br>
>           message: should match exactly one schema in "oneOf"<br>
>           params: {"passingSchemas":null}<br>
>           file: HAnimModelHandRight.json<br>
>           version: 4.0<br>
> <br>
>         Success reading HAnimModelsHandsFeet.json<br>
>         ================================================================================<br>
>         File: KoreanCharacterAnnexC01Jin.json<br>
>         Error reading KoreanCharacterAnnexC01Jin.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene > -children > 2 > HAnimHumanoid<br>
>           value: {"@DEF":"hanim_AnnexC01Jin","@info":"|omitted|","@name":"AnnexC01Jin","@scale":"|omitted|","@version":"2.0","-skeleton":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"@DEF"}<br>
>           file: KoreanCharacterAnnexC01Jin.json<br>
>           version: 4.0<br>
> <br>
>           keyword: type<br>
>           dataPath: X3D > Scene > -children > 2 > HAnimHumanoid > -skeleton<br>
>           value: {"HAnimJoint":"|omitted|"}<br>
>           message: should be array<br>
>           params: {"type":"array"}<br>
>           file: KoreanCharacterAnnexC01Jin.json<br>
>           version: 4.0<br>
> <br>
>           keyword: oneOf<br>
>           dataPath: X3D > Scene > -children > 2 > HAnimHumanoid<br>
>           value: {"@DEF":"hanim_AnnexC01Jin","@info":"|omitted|","@name":"AnnexC01Jin","@scale":"|omitted|","@version":"2.0","-skeleton":"|omitted|"}<br>
>           message: should match exactly one schema in "oneOf"<br>
>           params: {"passingSchemas":null}<br>
>           file: KoreanCharacterAnnexC01Jin.json<br>
>           version: 4.0<br>
> <br>
>         ================================================================================<br>
>         File: KoreanCharacterAnnexD01Jin.json<br>
>         Error reading KoreanCharacterAnnexD01Jin.json<br>
>           keyword: additionalProperties<br>
>           dataPath: X3D > Scene<br>
>           value: {"-children":"|omitted|","-skeleton":"|omitted|"}<br>
>           message: should not have additional properties<br>
>           params: {"additionalProperty":"-skeleton"}<br>
>           file: KoreanCharacterAnnexD01Jin.json<br>
>           version: 4.0<br>
> <br>
> <br>
> _______________________________________________<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" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
> <br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
</blockquote></div>