<div dir="auto">Don,</div><div dir="auto"><br></div><div dir="auto">I hope this doesn’t mean I am required to run your Java code anymore!  I was pretty happy that it didn’t produce any outputs when I ran it.  Now I have to deal with your XML and Classic VRML if I run output from X3dToJava.xslt, AFAIK. (half joking)</div><div dir="auto"><br></div><div dir="auto">Probably I’ll run an output disabled version, until I run into something.</div><div dir="auto"><br></div><div dir="auto">I guess this is getting one’s wish granted!</div><div dir="auto"><br></div><div dir="auto">I’ll continue with creating JSON and XML from my Java for continued testing of JSON and XML round trips.  More later.</div><div dir="auto"><br></div><div dir="auto">All is good, great to see core external validation coming to X3DJSAIL outputs.</div><div dir="auto"><br></div><div dir="auto">Further ideas for QA include developing XML roundtrip diffing!  I am mostly unsatisfied with what I’ve done with this.  Any efforts regarding this are most appreciated!</div><div dir="auto"><br></div><div dir="auto">You are welcome to repurpose my fledgling ideas, found at:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/xmldiff.js">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/xmldiff.js</a></div><br></div><div dir="auto">Sorry for lack of documentation.  Primarily, I am missing canonicalization, which I originally did to both original and result XML, things like defaults, scripts and number precision might be current issues, it’s been a while since I looked at it.  A java version which didn’t drop canonical files on the file system except when there’s an issue would be like, “wow!”</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jul 6, 2024 at 5:44 PM Brutzman, Donald (Don) (CIV) via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">




<div dir="ltr">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Am happy to report further progress in X3DJSAIL quality assurance (QA).</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="text-align:left;margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;margin:0in;color:rgb(0,0,0)">
X3D Java Scene Access Interface Library (X3DJSAIL)</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;margin:0in;color:rgb(0,0,0)">
X3D Java Scene Access Interface Library (X3DJSAIL) supports programmers with standards-based X3D Java interfaces and objects, all as open source.</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;margin:0in;color:rgb(0,0,0)">
<a href="https://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/specifications/java/X3DJSAIL.html</a></li></ul>
<div style="margin:0in;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
 For each Java-language conversion of all 4000 models in the X3D Examples Archives, the build scripts are now testing both export and validation of .x3d XML and .x3dv ClassicVRML exports.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
This testing has led to further improvements in X3DJSAIL export, with ongoing improvements and bugfixes expected.  Build logs are maintained online.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
========================================================================================</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
processScenes.java for all of the example archives</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
... X3dForAdvancedModeling,X3dForWebAuthors,Vrml2Sourcebook,HumanoidAnimation,ConformanceNist,Basic,Savage</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
... results maintained at <a href="http://www.web3d.org/x3d/content/examples/build.java.all.log.txt" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">http://www.web3d.org/x3d/content/examples/build.java.all.log.txt</a></div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
========================================================================================</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
As ever, Javadoc for the example archives is also generated.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">X3D Resources, X3D Examples: Scene Archives for X3D</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples</a></div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/javadoc</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="margin:0px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/javadoc</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="margin:0px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/Basic/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/Basic/javadoc</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="margin:0px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/ConformanceNist/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/ConformanceNist/javadoc</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="margin:0px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/javadoc</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="margin:0px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/javadoc" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/javadoc</a></div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Acknowledgements:</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">Trouble report by John Carlson with testable example, which enabled further sleuthing and correction</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">Ticket 33, joints (USE) listed before skeleton (DEF)</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><a href="https://sourceforge.net/p/x3d/tickets/33" target="_blank" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">https://sourceforge.net/p/x3d/tickets/33</a></div>
</li></ul>
<div style="font-family:Aptos,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="font-family:Aptos,sans-serif">Castle Model Converter (formerly tovrmlx3d)</div>
</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in;color:rgb(0,0,0)">
<div style="font-family:Aptos,sans-serif"><a href="https://castle-engine.io/castle-model-converter" target="_blank" style="font-family:Aptos,sans-serif">https://castle-engine.io/castle-model-converter</a></div>
</li></ul>
<div style="font-family:Aptos,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Have fun with X3D using Java and X3DJSAIL!  8)</div>
<div id="m_8008628142083268801Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
<div id="m_8008628142083268801appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="display:inline-block;width:98%">
<span style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><b style="font-family:Calibri,Arial,Helvetica,sans-serif">From:</b> Brutzman, Donald (Don) (CIV)<br>
<b style="font-family:Calibri,Arial,Helvetica,sans-serif">Sent:</b> Saturday, June 22, 2024 1:28 AM<br>
<b style="font-family:Calibri,Arial,Helvetica,sans-serif">To:</b> X3D Public Mailing List (<a href="mailto:x3d-public@web3d.org" target="_blank" style="font-family:Calibri,Arial,Helvetica,sans-serif">x3d-public@web3d.org</a>)<br>
<b style="font-family:Calibri,Arial,Helvetica,sans-serif">Cc:</b> <a href="mailto:x3d@web3d.org" target="_blank" style="font-family:Calibri,Arial,Helvetica,sans-serif">x3d@web3d.org</a>; <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:Calibri,Arial,Helvetica,sans-serif">brutzman@nps.edu</a><br>
<b style="font-family:Calibri,Arial,Helvetica,sans-serif">Subject:</b> X3DJSAIL update: improved output when exporting ClassicVRML/VRML97 models
</span></div><div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Am happy to report an X3DJSAIL update: improved output when exporting ClassicVRML/VRML97 models.</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">X3D Java Scene Access Interface Library (X3DJSAIL)</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">X3D Java Scene Access Interface Library (X3DJSAIL) supports programmers with standards-based X3D Java interfaces and objects, all as open source.</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank" style="font-family:Aptos,sans-serif">https://www.web3d.org/specifications/java/X3DJSAIL.html</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Motivating problem: excellent sleuthing and a well-stated issue report by John Carlson revealed a significant issue with the ClassicVRML export.</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">X3DJSAIL: VRML head and Scene out of order</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://sourceforge.net/p/x3d/tickets/27" target="_blank" style="font-family:Aptos,sans-serif">https://sourceforge.net/p/x3d/tickets/27</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">To improve quality assurance (QA) of ClassicVRML and VRML97 output by X3DJSAIL.  I applied command-line validation of the ClassicVRML .x3dv output using the
<i style="font-family:Aptos,sans-serif">castle-model-converter</i> application by Michalis Kamburelis, all to good effect.  Troubleshooting led to fixes of the original reported problem and perhaps a dozen other errors also.  This validation is now part of the build scripts so that further regression
 testing is always produced as part of X3DJSAIL library development.</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">Castle Model Converter (formerly tovrmlx3d)</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://castle-engine.io/castle-model-converter" target="_blank" style="font-family:Aptos,sans-serif">https://castle-engine.io/castle-model-converter</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Test program and output:</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">HelloWorldProgram.java</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">Description:  Example "smoke test" program to create a highly detailed X3D model using the X3D Java Scene Access Interface Library (X3DJSAIL).</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgram.java" target="_blank" style="font-family:Aptos,sans-serif">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgram.java</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">HelloWorldProgram output, ClassicVRML and VRML97</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3dv" target="_blank" style="font-family:Aptos,sans-serif">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3dv</a></li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.wrl" target="_blank" style="font-family:Aptos,sans-serif">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.wrl</a></li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">note that other outputs are also provided:  XML .x3d, pretty-print .html, Java, Python.py, compressed .exi, X_ITE and X3DOM html, etc.</li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">Build test log is in version control to track improvements and avoid backsliding:</li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/build.test.X3DJSAIL.txt" target="_blank" style="font-family:Aptos,sans-serif">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/build.test.X3DJSAIL.txt</a></li><li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in">Excerpt showing castle-model-converter validation:</li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">ClassicVRML validation: castle-model-converter.exe C:\x3d-code\<a href="http://www.web3d.org" target="_blank" style="font-family:"Courier New"">www.web3d.org</a>\x3d\stylesheets\java\examples/HelloWorldProgramOutput.x3dv
 --validate --enable-downloads</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: X3D: Invalid X3D file: Invalid sequence in a string: "\n". Backslash must be followed by another
 backslash or double quote, for SFString and MFString (in X3D classic (VRML) encoding) and for MFString (in X3D XML encoding).</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: VRML/X3D: Prototype "ArtDeco02" referenced by external prototype "ArtDeco02" doesn't have field
 "description"</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: VRML/X3D: Inline node name "inlineScene" not found (or nothing was EXPORTed from it), cannot
 IMPORT</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: X3D: Invalid X3D file: Invalid sequence in a string: "\n". Backslash must be followed by another
 backslash or double quote, for SFString and MFString (in X3D classic (VRML) encoding) and for MFString (in X3D XML encoding).</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: X3D: Node "Anchor" is not allowed in the field "watchList" of the node "LoadSensor"</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">castle-model-converter: Warning: X3D: Node "GeoMetadata" is not allowed in the field "watchList" of the node "LoadSensor"</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">Exception "Exception":</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:8pt">Validation failed (consult the warnings above), exiting with non-zero status</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Michalis was informed of the last two watchlist errors and reportedly has already fixed them.  Many of the other warnings are also fixable if the test program is improved to use actual
 file addresses instead of pseudo-urls.  Progress steadily continues…  the only “really bad errors” are the ones you don’t know about!</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Javadoc documentation for X3DJSAIL programmers:</p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://www.web3d.org/specifications/java/javadoc" target="_blank" style="font-family:Aptos,sans-serif">https://www.web3d.org/specifications/java/javadoc</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Over 4000 examples using X3DJSAIL, converted automatically from .x3d to .java in the X3D Example Models Archives:</p>
<ul style="margin-top:0in;margin-bottom:0in">
<li style="font-family:Aptos,sans-serif;font-size:11pt;margin:0in"><a href="https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples" target="_blank" style="font-family:Aptos,sans-serif">https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples</a></li></ul>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">So X3DJSAIL is excellent for plain-old Java handling of X3D, and keeps getting better.  Again thanks to John and Michalis for their contributions to identify problems that are now fixed.</p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt">Have fun with X3D Java! 
<span style="font-family:"Segoe UI Emoji",sans-serif">😊</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Aptos,sans-serif;font-size:11pt"> </p>
</div>

_______________________________________________<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>
</blockquote></div></div>