[x3d-public] X3DJSAIL update: improved output when exporting ClassicVRML/VRML97 models

John Carlson yottzumm at gmail.com
Sat Jul 6 17:06:09 PDT 2024


Don,

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)

Probably I’ll run an output disabled version, until I run into something.

I guess this is getting one’s wish granted!

I’ll continue with creating JSON and XML from my Java for continued testing
of JSON and XML round trips.  More later.

All is good, great to see core external validation coming to X3DJSAIL
outputs.

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!

You are welcome to repurpose my fledgling ideas, found at:

https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/xmldiff.js

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

John

On Sat, Jul 6, 2024 at 5:44 PM Brutzman, Donald (Don) (CIV) via x3d-public <
x3d-public at web3d.org> wrote:

> Am happy to report further progress in X3DJSAIL quality assurance (QA).
>
>
>    - X3D Java Scene Access Interface Library (X3DJSAIL)
>    - X3D Java Scene Access Interface Library (X3DJSAIL) supports
>    programmers with standards-based X3D Java interfaces and objects, all as
>    open source.
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html
>
>
>  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.
>
> This testing has led to further improvements in X3DJSAIL export, with
> ongoing improvements and bugfixes expected.  Build logs are maintained
> online.
>
>
> ========================================================================================
> processScenes.java for all of the example archives
> ...
> X3dForAdvancedModeling,X3dForWebAuthors,Vrml2Sourcebook,HumanoidAnimation,ConformanceNist,Basic,Savage
> ... results maintained at
> http://www.web3d.org/x3d/content/examples/build.java.all.log.txt
>
> ========================================================================================
>
> As ever, Javadoc for the example archives is also generated.
>
>
>    - X3D Resources, X3D Examples: Scene Archives for X3D
>    - https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>
>
>
>    - https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/javadoc
>    -
>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/javadoc
>    - https://www.web3d.org/x3d/content/examples/Basic/javadoc
>    - https://www.web3d.org/x3d/content/examples/ConformanceNist/javadoc
>    - https://www.web3d.org/x3d/content/examples/HumanoidAnimation/javadoc
>    - https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/javadoc
>
>
> Acknowledgements:
>
>
>    - Trouble report by John Carlson with testable example, which enabled
>    further sleuthing and correction
>    - Ticket 33, joints (USE) listed before skeleton (DEF)
>    - https://sourceforge.net/p/x3d/tickets/33
>
>
>
>    - Castle Model Converter (formerly tovrmlx3d)
>    - https://castle-engine.io/castle-model-converter
>
>
> Have fun with X3D using Java and X3DJSAIL!  8)
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, navy robotics
> https://faculty.nps.edu/brutzman
>
>
>
> ------------------------------
> *From:* Brutzman, Donald (Don) (CIV)
> *Sent:* Saturday, June 22, 2024 1:28 AM
> *To:* X3D Public Mailing List (x3d-public at web3d.org)
> *Cc:* x3d at web3d.org; brutzman at nps.edu
> *Subject:* X3DJSAIL update: improved output when exporting
> ClassicVRML/VRML97 models
>
> Am happy to report an X3DJSAIL update: improved output when exporting
> ClassicVRML/VRML97 models.
>
>
>
>    - X3D Java Scene Access Interface Library (X3DJSAIL)
>    - X3D Java Scene Access Interface Library (X3DJSAIL) supports
>    programmers with standards-based X3D Java interfaces and objects, all as
>    open source.
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html
>
>
>
> Motivating problem: excellent sleuthing and a well-stated issue report by
> John Carlson revealed a significant issue with the ClassicVRML export.
>
>
>
>    - X3DJSAIL: VRML head and Scene out of order
>    - https://sourceforge.net/p/x3d/tickets/27
>
>
>
> To improve quality assurance (QA) of ClassicVRML and VRML97 output by
> X3DJSAIL.  I applied command-line validation of the ClassicVRML .x3dv
> output using the *castle-model-converter* 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.
>
>
>
>    - Castle Model Converter (formerly tovrmlx3d)
>    - https://castle-engine.io/castle-model-converter
>
>
>
> Test program and output:
>
>
>
>    - HelloWorldProgram.java
>    - Description:  Example "smoke test" program to create a highly
>    detailed X3D model using the X3D Java Scene Access Interface Library
>    (X3DJSAIL).
>    -
>    https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgram.java
>
>
>
>    - HelloWorldProgram output, ClassicVRML and VRML97
>    -
>    https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3dv
>    -
>    https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.wrl
>    - note that other outputs are also provided:  XML .x3d, pretty-print
>    .html, Java, Python.py, compressed .exi, X_ITE and X3DOM html, etc.
>
>
>
>    - Build test log is in version control to track improvements and avoid
>    backsliding:
>    -
>    https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/build.test.X3DJSAIL.txt
>    - Excerpt showing castle-model-converter validation:
>
>
>
> ClassicVRML validation: castle-model-converter.exe C:\x3d-code\
> www.web3d.org\x3d\stylesheets\java\examples/HelloWorldProgramOutput.x3dv
> --validate --enable-downloads
>
> 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).
>
> castle-model-converter: Warning: VRML/X3D: Prototype "ArtDeco02"
> referenced by external prototype "ArtDeco02" doesn't have field
> "description"
>
> castle-model-converter: Warning: VRML/X3D: Inline node name "inlineScene"
> not found (or nothing was EXPORTed from it), cannot IMPORT
>
> 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).
>
> castle-model-converter: Warning: X3D: Node "Anchor" is not allowed in the
> field "watchList" of the node "LoadSensor"
>
> castle-model-converter: Warning: X3D: Node "GeoMetadata" is not allowed in
> the field "watchList" of the node "LoadSensor"
>
> Exception "Exception":
>
> Validation failed (consult the warnings above), exiting with non-zero
> status
>
>
>
> 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!
>
>
>
> Javadoc documentation for X3DJSAIL programmers:
>
>    - https://www.web3d.org/specifications/java/javadoc
>
>
>
> Over 4000 examples using X3DJSAIL, converted automatically from .x3d to
> .java in the X3D Example Models Archives:
>
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples
>
>
>
> 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.
>
>
>
> Have fun with X3D Java!  😊
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, navy robotics
> https://faculty.nps.edu/brutzman
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240706/0710b9c9/attachment-0001.html>


More information about the x3d-public mailing list