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

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon May 6 08:18:38 PDT 2024


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  <https://www.web3d.org/standards> X3D Graphics 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  <https://www.web3d.org/specifications/X3DUOM.html> X3D Unified Object Model (X3DUOM).

*        Validation of individual fields includes application of  <https://www.web3d.org/specifications/X3dRegularExpressions.html> X3D Regular Expressions (regexes).

*        X3DJSAIL  <https://www.web3d.org/specifications/java/javadoc/index.html> Javadoc includes all descriptions, links, hints, and warnings from the  <https://www.web3d.org/x3d/tooltips/X3dTooltips.html> X3D Tooltips.

Available products include  <https://www.web3d.org/specifications/java/javadoc/index.html> Javadoc documentation, several thousand self-validating  <https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples> examples,  <https://www.web3d.org/specifications/java/src/> source code,  <https://www.web3d.org/specifications/java/build.xml> build support for  <https://www.web3d.org/specifications/java/classes/> compiled classes,  <https://www.web3d.org/specifications/java/X3DJSAIL.html#Downloads> run-time jar archives, and draft specification annexes for  <https://www.web3d.org/specifications/java/draftJavaLanguageBindingAnnexes/Part2/nodeInterfaces.html> node interfaces and  <https://www.web3d.org/specifications/java/draftJavaLanguageBindingAnnexes/Part2/nodeTypeInterfaces.html> abstract-node type interfaces.

This library successfully supports multiple purposes:

*        Create high-performance standalone Java applications using a  <https://en.wikipedia.org/wiki/Plain_Old_Java_Object> Plain Old Java Object (POJO) implementation for X3D.

*        Such X3D-capable Java applications can be client-based, server-based, or driven via  <https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html> command-line invocation (CLI) such as  <https://www.java.com/en/download/help/javaconsole.html> Java Console (jconsole).

*        No additional Java packages are necessary, with all included code offered under a royalty-free  <https://www.web3d.org/specifications/java/license.html> license suitable for any legitimate purpose.

*        Confirms correct implementation of ISO standard  <https://www.web3d.org/x3d4> X3D version 4.0 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  <https://www.web3d.org/x3d/stylesheets/python/python.html> Python and  <https://www.web3d.org/x3d/content/semantics/semantics.html> X3D Ontology 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

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240506/61744001/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 7709 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240506/61744001/attachment-0001.p7s>


More information about the x3d-public mailing list