[x3d-public] X3DJSONLD and other development by me. A description

John Carlson yottzumm at gmail.com
Thu Apr 9 22:03:28 PDT 2020


The X3DJSONLD repository and application is a lot of things.  I like to
think of it as a generic (not specificaly X3D) JSON document to DOM
document converter, but is other things besides that.   In the repository,
there's several, what I call call "serializers" which either serialize
documents to various encodings and imperative programs. As a part of
dealing with JSON documents, and more specific to X3D is the Prototype
Expander and Script Processors.  These are meant to accompany X3DOM, and
extend the JSON capability of both X3DOM and X_ITE (X_ITE doesn't need
expanders or processors, which is primarily why I am a proponent of
X_ITE).  The X3DJSONLD webapp is a converter between JSON, XML, STL and PLY
formats, and additionally has a imperative language target conversion.
 The STL conversion is two-way to JSON, and the PLY is one way to JSON.
You may also find the three-x3d-loader which I send my X3D JSON to after
converting to another JSON format.

Another one of my projects which I'll simply call the X3DJSAIL project
under a different name, copies the main X3DJSAIL creation, and then applies
JSweet to it to transpile the Java to TypeScript.   The tsc.cmd command may
be run on the TypeScript to create JavaScript.  If someone wants to take
the pom.xml in the project and add it to the X3D sourceforge project, that
would be great!

So Don, I was wrong to call X3DJSONLD a single class, but really the whole
project is pretty much focused on the generic use of JSON and X3D to
generate various artifacts.  It stands separate in some cases from X3D, in
that the serializers are secondhandedly attached to X3DUOM--one may add
your own derivations to separate the serializers from X3DUOM by modifying
fieldTypes.js and mapToMethod*js.

In addition, I have python programs to creat fieldTypes.js, mapToMethod.js
and a schema generator for various X3DUOM versions.


Note that X3DJSONLD.js has been ported to Java and an alpha has been
created for C++.

The only place you'll see "SAI" in X3DJSONLD is where I have serializers
generating various Java, Nashorn, and Python programs. The Nashorn and
Python serializers are being deprecated, because they rely on X3DJSAIL, and
we're moving away from Java embedded in other languages.

If someone wants to team up to produces a new JavaScript/Node.js SAI, I am
open to that.   But I would prefer to sit on my laurels with my
serializers. In otherwords, I am a consumer of SAI, not a producer.  X3D
JSON was really my first project where I really put a test-driven
development as the primary goal of my work.  Thus X3DJSONLD has been
serving as my test harness for X3DJSAIL.

Thus, X3DJSONLD is *not* an SAI.  It's mainly a scene converter and test
harness.

Since X3DJSONLD.js is generic, and may go across several types of JSON
documents (XSeen was one at one point). It is not a class hierarchy for X3D
specifically. It can be used as a shim to shove JSON into a primarily
HTML/XML environment. However X3DJSONLD the webapp depends on many 3D
tools, X3DOM, X_ITE, and three.js.

I could probably talk a lot more about details, but that's enough for now.
Questions from the nut gallery?  Tomatoes?

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200410/094233d0/attachment.html>


More information about the x3d-public mailing list