[x3d-public] What is X3DJSONLD?

John Carlson yottzumm at gmail.com
Fri Feb 4 13:48:38 PST 2022


There may be a point of confusion between X3DJSONLD.js (and other
languages) and the rest of X3DJSONLD.   The former is the JSON to DOM
document load and export class.   There are additional parts of X3DJSONLD
which start with the JSON encoding and produce SAI compatible language
binding examples: In the past these were reliant on X3DJSAIL, but I’ve been
working on a new x3djsonld.py which skips the DOM step and relies on
x3d.py, and is still pretty much a WIP.

To be clear, X3DJSONLD will probably never be SAI, except as a way to load
JSON into a scenegraph, a single, uninteresting method or two.

If you are interested in developing a JavaScript/ECMAScript/TypeScript SAI,
I suggest you look at my es6x3d repository on GitHub.  But I would
recommend you look at X_ITE and X3DOM first.

FYI

On Fri, Feb 4, 2022 at 2:28 PM John Carlson <yottzumm at gmail.com> wrote:

> One thing I tried to adopt when developing X3DJSONLD was a “standards
> neutral” approach.   That means it would be applicable for X3D, XSeen,
> glTF, SVG, HTML, etc.  in the spirit of D3.js.   So it isn’t an SAI
> interface.  Someone else should work on that who already has a scenegraph
> built.
>
> X3D JSON schema is a patch in X3DJSONLD at this point, if the XML/DOM
> output isn’t validated.   I have not heard of XML validation in X3DOM or
> X_ITE.
>
> I would welcome SVG JSON and HTML JSON standardization at this point.
>
> John
>
> On Fri, Feb 4, 2022 at 2:09 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> We use .json because we started that way, not for any reasonable reason.
>>   I agree we should put in effort to change, I think some things like this
>> may currently be hard-coded into X3DOM at this point.
>>
>> We don’t have any X3D JSON standard at this point, so often we make
>> decisions that may require a lot of rework, such as changing property names
>> for cross language compatibility, or simple decisions, like changing
>> default field values.   Ultimately we’ll settle on a standard, but
>> everything is pretty much up in the air, probably because we’re waiting for
>> a JSON Schema standard.   Tools are starting to fail behind the drafts of
>> the JSON schema standards, for example, there is no Java implementation of
>> the 2020-12 draft that I know of.   We thought we had a good Java tool, but
>> in hindsight, we probably jumped the gun.
>>
>> So the JSON standards world is pretty much a mess.   Good python tools
>> that worked extremely quickly were displaced by extremely slow alternatives.
>>
>> In hindsight, I wish we were still at draft07.   Lots of good tool
>> support in many languages.
>>
>> There’s one good thing that I treasure in all of this, and that’s the Ajv
>> package.   Please fund if you can!
>>
>> I do not know if glTF ASCII is going through the same schema pains we are.
>>
>> Also Andreas did some good work in the JSON loading in SAI for X3DOM.  I
>> suggest adopting it for the JavaScript and perhaps other language bindings.
>>
>> John
>>
>> On Fri, Feb 4, 2022 at 12:36 PM Michalis Kamburelis <
>> michalis.kambi at gmail.com> wrote:
>>
>>> Indeed, glTF files should have .gltf or .glb extensions. (See
>>>
>>> https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#file-extensions-and-media-types
>>> , """JSON glTF files SHOULD use .gltf extension and model/gltf+json
>>> Media Type."""")
>>>
>>> While .gltf is also valid JSON, using a generic .json extension for
>>> them feels "unnecessarily generic". It would be like using .xml
>>> instead of .x3d for models in X3D XML encoding.
>>>
>>> That being said, why do you validate with X3D JSON schema all *.json?
>>> Shouldn't X3D JSON also have a specific extension, not use generic
>>> .json?
>>>
>>> Regards,
>>> Michalis
>>>
>>> pt., 4 lut 2022 o 18:21 John Carlson <yottzumm at gmail.com> napisał(a):
>>> >
>>> > I believe glTF files end in .gltf and .glb (binary), not .json.
>>>  Please confirm and update glTF .json files found in archives.  See files
>>> below in X3dForAdvanceModeling.   They do no pass X3D JSON schema.
>>> >
>>> > Thanks, John
>>> >
>>> > $ grep file: results.txt |grep -i /gltf|sort -u
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/AlphaBlendModeTest.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/AntiqueCamera.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/AttenuationTest.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/DamagedHelmet.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/DragonAttenuation.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/GlamVelvetSofa.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/Lantern.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/Suzanne.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/ToyCar.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/TransmissionTest.json
>>> >  file: C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/WaterBottle.json
>>> > _______________________________________________
>>> > 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/20220204/d0841d4b/attachment.html>


More information about the x3d-public mailing list