<div><a href="https://github.com/coderextreme/X3DJSONLD">https://github.com/coderextreme/X3DJSONLD</a></div><div dir="auto"><br></div><div dir="auto">X3DJSONLD is typically used to convert XML to JSON (currently X3dToJson.xslt, but others have been tried) and then to Java, GraalJS, and Python, followed by a roundtrip conversion back to JSON and/or XML.</div><div dir="auto"><br></div><div dir="auto">X3DJSONLD/X3DJSAIL records intermediate XML for debugging X3DJSONLD.js and X3DJSAIL output.</div><div dir="auto"><br></div><div dir="auto">An alternate version of <a href="http://x3d.py/X3DPSAIL">x3d.py/X3DPSAIL</a> is included in X3DJSONLD.  Feel free to BYO.</div><div dir="auto"><br></div><div dir="auto">New features of X3DJSONLD include the Blender scripts used in the Winter and Spring project, which are used to convert files “offline” from the Blender GUI, headless.</div><div dir="auto"><br></div><div dir="auto">X3DJSONLD does not include Blender import/export plugins, GraalVM/GraalJS (js.exe) or X3DJSAIL jars.  You will have to edit X3DJSONLD/src/main/shell/classpath and maybe others.</div><div dir="auto"><br></div><div dir="auto">A typical way to use X3DJSONLD is to copy a file, say, foo.x3d to X3DJSONLD/src/main/data:</div><div dir="auto"><br></div><div dir="auto">$ cp foo.x3d X3DJSONLD/src/main/data/</div><div dir="auto"><br></div><div dir="auto">Then run conversion script:</div><div dir="auto"><br></div><div dir="auto">$ cd X<span style="font-family:-apple-system,helveticaneue">3DJSONLD/src/main/shell/</span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue"><br></span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue">$ bash several.sh ../data/foo.x3d</span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue"><br></span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue">You may wish to pipe output to less:</span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue"><br></span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue"><div dir="auto" style="font-family:-apple-system,helveticaneue"><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">$ bash several.sh ../data/foo.x3d 2>&1 | less</span></div><div dir="auto" style="font-family:-apple-system,helveticaneue"><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"><br></span></div><div dir="auto" style="font-family:-apple-system,helveticaneue"><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">This will provide a full log of the conversions and comparisons.</span></div><div dir="auto" style="font-family:-apple-system,helveticaneue"><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"><br></span></div><div dir="auto" style="font-family:-apple-system,helveticaneue">Converted files may be picked up in ../data/ and ../*/net/coderextreme/data/</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">You may wish to use don.sh instead of several.sh for using stylesheets for conversions.  In that case, files are picked up in ./*/net/x3djsonld/data/</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">Main differences include more than a single class per file to ameliorate compiler issues on large files.  Human splitting of code is required for some HAnim models.</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">I normally use Bourne Again Shell (git for windows, git bash) inside Windows Terminal for best experience!</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">X3DJSONLD provides a full web environment for testing XML <-> JSON <-> EXI conversions in the browser.</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">I will probably try to continue to evolve the JSON to C/C++ converters for C/C++ SAI, since that is not covered by stylesheets.  Initial targets will be the SAI, and maybe Coin3D.</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">I do not forsee a beta or production release, but one can use a JSON validator included, if not x3dvalidate (an allied tool).</div><div dir="auto" style="font-family:-apple-system,helveticaneue"><br></div><div dir="auto" style="font-family:-apple-system,helveticaneue">John</div></span></div><div dir="auto"><span style="font-family:-apple-system,helveticaneue"><br></span></div>