[x3d-public] Replacing my code with X3DJSAIL. Ideas

John Carlson yottzumm at gmail.com
Sun Jul 27 20:08:11 PDT 2025


I have been considering replacing X3DJSONLD’s stylesheet use with X3DJSAIL
only.

I see benefits and disadvantages:

* I no longer have to support RunSaxon.java

* It’s slightly harder to support my changes to stylesheets, and with more
dependence on others.

* RunSaxon.java takes multiple files at the command line.

* RunSaxon.java creates a list  of files transformed.  This is probably the
most important advantage.

* RunSaxon.java allows you to run any stylesheet.  I don’t know if X3DJSAIL
supports this.

* I have to replace code that’s be working for a long time.

If someone wants to support some of RunSaxon’s features, here’s the source,
 I can probably dual license if you want to crib code:

https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/coderextreme/RunSaxon.java

On Sun, Jul 27, 2025 at 9:15 PM John Carlson <yottzumm at gmail.com> wrote:

> So perhaps the next step is to compile with of Graal native-image to
> produce binaries.  Maybe l run a few performance tests before totally
> committing to it.   You will need to      determine any reflectivity loaded
> classes, but there are tools for that.
>
> Have with native-image! Woohoo!
>
> Or just create a renderer for X3DJSAIL, but that’s a lot of work!  Catch
> low hanging fruit!
>
> John
> On Sun, Jul 27, 2025 at 1:36 PM Don Brutzman via x3d-public <
> x3d-public at web3d.org> wrote:
>
>> Further work over the past few weeks has resulted in update releases of
>> two valuable open-source tools.
>>
>> 1.  X3D Schematron rule set has been updated online, complementing X3D
>> validation to detect and diagnose X3D model problems.
>>
>>    - *X3D Schematron Validation and Quality Assurance (QA)*
>>    - X3D Schematron helps authors by providing quality assurance to
>>    ensure intended results in X3D scenes and metadata.
>>    - https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html
>>
>> Summary of capabilities:
>>
>>    - XML Schematron is a language for making assertions about the
>>    presence or absence of patterns in linked XML documents.
>>    - X3D Schematron provides an additional form of XML validation for
>>    X3D scenes. Authors can use X3D Schematron reports to verify semantic
>>    correctness and detect internal-consistency problems.
>>    - X3D Schematron validation rules have greater expressive power than
>>    DOCTYPE and Schema constraints, and are most effective when applied
>>    following initial DOCTYPE and Schema validation.
>>
>> A comprehensive test of X3D Schematron has been applied to all models in
>> the X3D Example Models Archive.  This was a big job, providing
>> comprehensive diagnostics across multiple big libraries.  Lots of model
>> refinements await!
>>
>>    - X3D Resources, Examples: Scene Archives for X3D
>>    - The X3D Examples Archives demonstrate how X3D nodes and scenes
>>    work. Thousands of scenes are provided in all X3D encodings. You can browse
>>    them individually online or download fully complete, separately installable
>>    .zip archives.
>>    - X3D for Web Authors, X3D for Advanced Modeling, Basic, Conformance
>>    Nist, Humanoid Animation (HAnim), VRML 2 Sourcebook
>>    -
>>    https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>>
>> X3D Schematron build log:
>>
>>    -
>>    https://www.web3d.org/x3d/content/examples/build.validate.schematron.all.txt
>>    - 5MB.  5,108 minutes = 85 hours = 3 days 13 hours
>>
>> More information on validation testing can be found at
>>
>>    - X3D Resources: Quality Assurance (QA)
>>    -
>>    https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance
>>
>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - - - - - - - - - - - -
>>
>> 2. *X3DJSAIL, the 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
>>
>> X3DJSAIL is designed to make it easy for Java programmers to create
>> high-quality X3D models, perform conversions, launch tools.  The combined
>> strictness of Java, XML, and the X3D architecture means it is actually
>> quite difficult to create an invalid X3D model.
>>
>> Multiple improvements are included in this X3DJSAIL release, with the
>> most notable addition being built-in support for X3D Schematron diagnostics.
>>
>> Now running latest openjdk Java 24.0.2 and building with latest NetBeans
>> 26.
>>
>>    - Note recent changes to Java have led to much stricter handling of
>>    XML documents with many character-entity definitions... X3D is a big
>>    modeling language, so there are several such files.  Configuration details
>>    for building X3DJSAIL and other Java tools can be found at
>>
>>
>>    - *X3D Developers Guide* (see sections for Java
>>    <https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html#Java>
>>    and NetBeans
>>    <https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html#NetBeans>
>>    )
>>    - The X3D Developers Guide describes system configuration and setup
>>    recommendations that support various software projects supporting the
>>    Extensible 3D (X3D) Graphics International Standards.
>>    - https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html
>>    - This page is directly derived from the original NPS Savage
>>    Developers Guide.
>>
>> Every model in the X3D Examples Archives includes a corresponding Java
>> version that is autogenerated from the .x3d (XML) originals, compiled and
>> executed to run a self test.
>>
>> The comprehensive log file that tests X3DJSAIL against all of the
>> examples is online as follows.  It is always a good idea to check a model
>> for warnings or errors prior to running it in an X3D player or another
>> modeling tool.  Improvements are ongoing.
>>
>>    - https://www.web3d.org/x3d/content/examples/build.all.log.txt
>>    - 2501 minutes = 41.7 hours, 99MB
>>
>> Documentation and changes:
>>
>>    - X3DJSAIL API Javadoc
>>    - https://www.web3d.org/specifications/java/javadoc
>>
>>
>>    - *Complete.* Add per-model capabilities for X3D Schematron
>>    Validation and Quality Assurance (QA)
>>    <https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html> using
>>    diagnostics ruleset X3dSchematronValidityChecks.sch
>>    <https://www.web3d.org/x3d/tools/schematron/X3dSchematronValidityChecks.sch>
>>     with X3dSchematronValidityChecks.xslt
>>    <https://www.web3d.org/specifications/java/lib/stylesheets/X3dSchematronValidityChecks.xslt>
>>     and SvrlReportText.xslt
>>    <https://www.web3d.org/specifications/java/lib/stylesheets/SvrlReportText.xslt>
>>     stylesheets.
>>    - *Complete*. Added utility methods setFieldOfView(SFVec4f newValue)
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/OrthoViewpoint.html#setFieldOfView(org.web3d.x3d.jsail.fields.SFVec4f)>
>>     and setFieldOfView(float minimum_x, float minimum_y, float
>>    maximum_x, float maximum_y)
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/OrthoViewpoint.html#setFieldOfView(float,float,float,float)>.
>>    Nevertheless, multiple counterintuitive *MFFloat* accessor methods
>>    also appear... Probably need to change *fieldOfView* field to type
>>    *SFVec4f*, for programmer clarity when handling the *fieldOfView* field,
>>    as recommended by Mantis 1398
>>    <https://mantis.web3d.org/view.php?id=1398>.
>>    - *Considered but not possible.* Cannot add convenience methods for
>>    variable-length arguments (varargs
>>    <https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html>)
>>    since they get converted into an array of primitives by the compiler; such
>>    array methods are already supported in X3DJSAIL.
>>    - *Complete*. Corrected emergent errors detected during unit testing
>>    by fixing implementations of .equals() method for MF types (example
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFInt32.html#equals(org.web3d.x3d.jsail.fields.MFInt32)>).
>>    Added missing .toString() method for types SFNode
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/SFNode.html>
>>     and MFNode
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFNode.html>
>>    .
>>    - *Continuing.* Checks for optional/required MFString enumeration
>>    pairs are much improved, for examples see source for fields
>>    Layout.align
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Layout/Layout.html#setAlign(java.lang.String%5B%5D)>
>>     (tooltip
>>    <https://www.web3d.org/x3d/content/X3dTooltips.html#Layout.align>)
>>    and NavigationInfo.type
>>    <https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/NavigationInfo.html#setType(java.lang.String%5B%5D)>
>>     (tooltip
>>    <https://www.web3d.org/x3d/content/X3dTooltips.html#NavigationInfo.type>).
>>    Further checking continues to ensure that all allowed values (such as
>>    singletons) are included in X3D XML Schema and X3DUOM.
>>    - Web3D Consortium provides issue tracking for X3DJSAIL at SourceForge
>>    X3D Tickets <https://sourceforge.net/p/x3d/tickets>.
>>    - It is always interesting to consider adding additional utility
>>    methods, as needed. Suggestions are welcome!
>>
>> Thanks to Web3D Consortium for sustained support of these open-source
>> libraries under version control in SourceForge.  License information:
>>
>>    - Web3D Consortium Open Source License
>>    - https://www.web3d.org/x3d/content/examples/license.txt
>>    - https://www.web3d.org/x3d/content/examples/license.html
>>    - X3D Resources: License Support
>>    - https://www.web3d.org/x3d/content/examples/X3dResources.html#license
>>
>> Have fun with X3d using Schematron and X3DJSAIL Java!  😀👍
>>
>> all the best, Don
>>
>> _______________________________________________
>> 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/20250727/8fcd39a7/attachment-0001.html>


More information about the x3d-public mailing list