<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Okay, everything is checked in now.<div><br></div><div>Here's an example GraalJS file that multiplies out HAnimHumanoid scale and Transforms within the Humanoid (maybe more).  So far tested with JinLOA4.js:  </div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/net/coderextreme/jin2.js">X3DJSONLD/src/main/graaljs/net/coderextreme/jin2.js at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/net/coderextreme/data/JinLOA4.js">X3DJSONLD/src/main/graaljs/net/coderextreme/data/JinLOA4.js at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div>Scripts to test with GraalVM here:</div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/jin.bat">X3DJSONLD/src/main/graaljs/jin.bat at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/jin.sh">X3DJSONLD/src/main/graaljs/jin.sh at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div>You'll have to modify the classpaths in the script to point to right X3DJSAIL jar.</div><div><br></div><div>Here's another GraalJS file that applies negations to OrientationInterpolator keyValues, to reorient animations.</div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/net/coderextreme/reorient.js">X3DJSONLD/src/main/graaljs/net/coderextreme/reorient.js at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div>And the shell driver which calls js.exe:</div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/reorient.sh">X3DJSONLD/src/main/graaljs/reorient.sh at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div>You can see how I chain JavaScript files together in the js.exe call.  This is currently a way to transfer the scenegraph, X3D0 to the scenegraph modification script file following it.  I guess one can chain some number of JavaScript files in a similar way?  Obviously, one will reach a limit at some point!</div><div><br></div><div>Here's one of the scripts:</div><div><br></div><div>C:/graaljs-community-jvm-23.1.2-windows-amd64/graaljs-community-23.1.2-windows-amd64/bin/js.exe --experimental-options --polyglot --vm.Djs.allowAllAccess=true --vm.Xss1g --vm.Xmx4g --jvm --vm.classpath="C:/Users/john/pythonSAI/X3DJSAIL.4.0.full.jar;." -f net/coderextreme/data/Gramps8Final.js -f net/coderextreme/reorient.js<br></div><div><br></div><div>--experimental-options enables the obvious.  Perhaps not needed.</div><div><br></div><div>--polyglot enabled JavaScript.  Perhaps not needed</div><div><br></div><div>--vm.Djs.allowAllAccess=true turns on getters.<br></div><div><br></div><div> --vm.Xss1g set stack space. 1GB</div><div><br></div><div>--vm.Xmx4g sets heap space 4GB<br></div><div><br></div><div>--jvm look this one up yourself<br></div><div><br></div><div>--vm.classpath="C:/Users/john/pythonSAI/X3DJSAIL.4.0.full.jar;." sets the classpath on windows.<br></div><div><br></div><div> -f net/coderextreme/data/Gramps8Final.js -f net/coderextreme/reorient.js these are the scripts to run<br></div><div><br></div><div>Enjoy ECMAScript SAI built on GraalJS and X3DJSAIL!</div><div><br></div><div>John</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 29, 2024 at 8:25 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</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"><div dir="auto">I’ll be checking in my X3DJSONLD JavaScript SAI based on X3DJSAIL and GraalJS later tonight.  I left before ensuring the code was checked in.</div><div dir="auto"><br></div><div dir="auto"><a href="https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/graaljs" target="_blank">https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/graaljs</a></div><div dir="auto"><br></div><div dir="auto">Here’s the primary interface file:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/net/coderextreme/data/X3Dautoclass.js" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graaljs/net/coderextreme/data/X3Dautoclass.js</a></div><br></div><div dir="auto"><br></div><div dir="auto">This works with GraalVM/GraalJS js.exe (found in the bin folder of the distribution.  If you found js.cmd, it’s old.)</div><div dir="auto"><br></div><div dir="auto">I will be checking in SAI code that works with example models, and shell and bat scripts with appropriate parameters.</div><div dir="auto"><br></div><div dir="auto">Note at the bottom of the examples where it writes output files.</div><div dir="auto"><br></div><div dir="auto">If anyone wants an updated X3DSAIL interface, let me know, but it’s easy to extend!</div><div dir="auto"><br></div><div dir="auto">Note while it’s easy to build a scene, it’s more difficult to update a scene!  I’ll try to get modification examples checked in soon!  I’m guessing the push failed due to large files or folders were not checked in.  Movie night!</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Primary benefits over Java:  fewer class files to manage, larger source code capabilities.</div><div dir="auto"><br></div><div dir="auto">Primary disadvantages:  slower than Java, not compatible with other JavaScript SAI (hopefully, we’ll address this).</div><div dir="auto"><br></div><div dir="auto">John</div>
</blockquote></div>