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