[x3d-public] update: X3D Java Scene Access Interface Library (X3DJSAIL) and X3D Examples Javadoc

John Carlson yottzumm at gmail.com
Mon May 6 09:04:26 PDT 2024


I’ve relied on X3DJSAIL for a long time now, looking forward to limiting
resolution features!

Great work!   Now if I can only figure out how to concatenate
OrientationInterpolators for a HAnimJoint, given a TimeSensor order.  One
nice thing to have would be to be able to easily remove sone ROUTEs,
TimeSensors and OrientationInterpolators, in preparation for replacements.

I’ve got concatenating OrientationInterpolators mostly done (he says), but
I need to rescale back the keys to [0,1] (should be easy), combine
TimeSensors, etc.

Cleaning up old stuff is a mystery to me.  I’d like something that takes a
list of ROUTEs (statements) or a list of nodes, to remove old cruft.

Or pass an X3D class method a function or class that is used in a visitor
pattern.   There’s probably some options here.

I have many uses for visitor/listener patterns, if they are available or
could be added at some point.  XML and VRML generation are just two
applications.

I realize this could be done with SAX, etc., but where’s the fun in that?

John

On Mon, May 6, 2024 at 10:19 AM Brutzman, Donald (Don) (CIV) via x3d-public
<x3d-public at web3d.org> wrote:

> Happy to report a successful codebase update:
>
>
>
>    - X3D Java Scene Access Interface Library (X3DJSAIL)
>    - X3DJSAIL supports programmers with standards-based X3D Java
>    interfaces and objects, all as open source.
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html
>
>
>
> This build release successfully tests the latest Java OpenJDK 22.0.1
> programming language.
>
>
>
> X3D scene conversion and file serialization using the X3D Examples
> Archives has produced over four thousand diverse models for unit testing.
> Unit testing has resulted in successful production of complete Javadoc for
> these Java translations.
>
>
>
>    - X3D Resources, Examples: Scene Archives for X3D
>       -
>       https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>    - X3DJSAIL Examples, Javadoc
>       - https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples
>       - https://www.web3d.org/specifications/java/javadoc
>    - Javadoc for each model archive
>       -
>       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
>       - https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/javadoc
>       - https://savage.nps.edu/Savage
>    - Comprehensive conversion, compilation and execution results
>       - Can search for  “*** Error” and  “*** Warning”  line prefixes to
>       find current model issues
>       - https://www.web3d.org/x3d/content/examples/build.java.all.log.txt
>
>
>
> Conversion of an .x3d model into X3DJSAIL .java program is a feature
> provided by X3D-Edit.  Have X3DJSAIL.4.0.full.jar in your CLASSPATH in
> order to compile and run the result.
>
>
>
>    - X3D-Edit 4.0 Authoring Tool for Extensible 3D (X3D) Graphics
>    - X3D-Edit is a free, open-source Extensible 3D (X3D) Graphics
>    authoring tool for simple high-quality authoring, editing, import/export,
>    validation and viewing of X3D scenes.
>    - https://savage.nps.edu/x3d-edit
>
>
>
>    - X3DJSAIL Downloads
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html#Downloads
>
>
>
> Looking ahead, two capabilities are identified as priorities for future
> X3DJSAIL releases.
>
>
>
>    - X3DJSAIL TODO Planned and Completed Work
>    - https://www.web3d.org/specifications/java/X3DJSAIL.html#TODO
>    - In order to help reduce model bloat for CAD and related exports,
>    provide ability to limit resolution (significant digits) of floating-point
>    outputs in order to reduce output file size. Provide separate optional
>    settings for lengths, rotations, and texture coordinates, both on a scene
>    and per-node basis. Note precision values as contained metadata.
>    - When updating specifications for X3D 4.0, use Java Annotations
>    <https://docs.oracle.com/javase/tutorial/java/annotations/index.html> to
>    confirm support for abstract 19775-2 X3D Scene Access Interface (SAI)
>    <https://web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-2v4.0-WD1/Part02/X3D_SAI.html> requirements,
>    once eventually applying updates to 19777-2 Java Scene Access
>    Interface (SAI)
>    <https://www.web3d.org/documents/specifications/19777-2/V3.3>.
>
>
>
> *Abstract*
>
> X3DJSAIL, the X3D Java Scene Access Interface Library is a set of strongly
> typed Java application programming interfaces (APIs) providing programmer
> access to an X3D scene graph. Two integrated Java packages are included
> that contain X3D SAI interfaces and support the X3D Graphics Standards
> <https://www.web3d.org/standards> for Java programmers.
>
> ·        org.web3d.x3d.jsail provides concrete implementation-oriented
> classes for building X3D scenes using standalone Java objects.
>
> ·        org.web3d.x3d.sai     contains standard X3D SAI interfaces to
> independently compile Script-node source for use in X3D players.
>
> *Goal outcomes:* make it easy to create a fully valid X3D scene graph
> using Java, while also making it hard to create an incorrect or invalid X3D
> model. X3DJSAIL has succeeded in accomplishing these goals.
>
> ·        Software design patterns are autogenerated from rigorous
> definitions of all X3D node and field relationships using the X3D Unified
> Object Model (X3DUOM) <https://www.web3d.org/specifications/X3DUOM.html>.
>
> ·        Validation of individual fields includes application of X3D
> Regular Expressions (regexes)
> <https://www.web3d.org/specifications/X3dRegularExpressions.html>.
>
> ·        X3DJSAIL Javadoc
> <https://www.web3d.org/specifications/java/javadoc/index.html> includes
> all descriptions, links, hints, and warnings from the X3D Tooltips
> <https://www.web3d.org/x3d/tooltips/X3dTooltips.html>.
>
> Available products include Javadoc
> <https://www.web3d.org/specifications/java/javadoc/index.html> documentation,
> several thousand self-validating examples
> <https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples>, source
> code <https://www.web3d.org/specifications/java/src/>, build support
> <https://www.web3d.org/specifications/java/build.xml> for compiled classes
> <https://www.web3d.org/specifications/java/classes/>, run-time jar
> archives
> <https://www.web3d.org/specifications/java/X3DJSAIL.html#Downloads>, and
> draft specification annexes for node interfaces
> <https://www.web3d.org/specifications/java/draftJavaLanguageBindingAnnexes/Part2/nodeInterfaces.html>
>  and abstract-node type interfaces
> <https://www.web3d.org/specifications/java/draftJavaLanguageBindingAnnexes/Part2/nodeTypeInterfaces.html>
> .
>
> This library successfully supports multiple purposes:
>
> ·        Create high-performance standalone Java applications using a Plain
> Old Java Object (POJO)
> <https://en.wikipedia.org/wiki/Plain_Old_Java_Object> implementation for
> X3D.
>
> ·        Such X3D-capable Java applications can be *client-based*,
> *server-based*, or driven via command-line invocation (CLI)
> <https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html> such
> as Java Console (jconsole)
> <https://www.java.com/en/download/help/javaconsole.html>.
>
> ·        No additional Java packages are necessary, with all included
> code offered under a royalty-free license
> <https://www.web3d.org/specifications/java/license.html> suitable for any
> legitimate purpose.
>
> ·        Confirms correct implementation of ISO standard X3D version 4.0
> <https://www.web3d.org/x3d4> while maintaining full support for prior X3D
> versions 3.0 through 3.3.
>
> X3DJSAIL also serves as a design template to autogenerate similar
> codebases for Python
> <https://www.web3d.org/x3d/stylesheets/python/python.html> and X3D
> Ontology <https://www.web3d.org/x3d/content/semantics/semantics.html> using
> Turtle. Similar future possibilities include ECMAScript and JSON Schema,
> C#/C++/C, and potentially programming languages.
>
>
>
>
>
> Feedback welcome.  Have fun with X3D using 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/20240506/3663a9fa/attachment-0001.html>


More information about the x3d-public mailing list