[X3D-Ecosystem] X3DJSONLD 12 plans for beta, was: Re: [x3dom-users] Donation of STL and PLY output

John Carlson yottzumm at gmail.com
Mon Jul 7 22:10:49 PDT 2025


Development plans for X3DJSONLD 12 beta (web viewer multi-format bake-off)
status.

* Three spine points in x-axis extrusions worked great for X3DOM. Yay!
Thanks Andreas, for your hints on GitHub.  Solved a very long term issue I
was having!

*  I have been working on Proto Expanders for STL and PLY output.  AFAIK,
these formats don’t offer a native way to create prototypes.  So hopefully,
I will be able to combine the proto expanders (via JSON) at some point in
the future, and we will have a 4th implementation of proto expansion
(X_ITE, X3DOM, my deleted version and the new version) on the web.

* I am going to start working converting the AllenDutton.x3d to JSON (done,
by X3dToJson.xslt, and create3000 thanks, Don and Holger!) and then to PLY,
to hopefully to gain some color examples of humanoids in PLY.  Jin Scaled
V2 Is an option to convert.  Will also consider converting a SuperCobra
example to PLY.  PLY output is a feature included in X3DJSONLD 12.
Previously, I only considered PLY input. A “friend” helped with
tessellation.

* I plan to convert my example.ply to a rubikPly.x3d example, to enable
gradient shapes with prototypes.

* Extrusion conversion to STL needs further testing, and I don’t recall if
I fixed PLY output yet.  pp3.x3d to STL is  working, but not deployed yet.

* I still plan on putting X3D binding outputs in a tabbed panel.
Currently, I use table cells.  More debugging on outputs will be useful.

* Waiting for demo on how to load any scene into Castle mobile model
viewer, will add a third iframe.

* Maybe I’ll start converting from X3D JSON to .gltf.

* Starting to think about how to do Inline and ExternProtoDeclare
conversions to STL and PLY.

* Will start to consider STL and PLY Serializers in the X3DJSONLD test
harness.

* At some point, I’ll reconsider asking my “friend” to improve the Script
to script conversion for X3DOM, likely based on:
https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Script.js

* Converting metadata to PLY comments, especially author and license
information.

If anyone wants to experiment with JSON Proto expansion to STL, this is
available:

https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/html/main_viewer.html


I don’t currently have it deployed to production.  And older alpha version
is available.

John


On Mon, Jul 7, 2025 at 2:58 PM John Carlson <yottzumm at gmail.com> wrote:

> I did see mention of the use of 3 spine points instead of two in the issue
> you linked.  This is what I will try to accomplish, and report back at some
> point in the future.
>
> Thanks,
>
> John
>
> On Sun, Jul 6, 2025 at 4:37 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
>> Hi John,
>>
>> you are right. This is a known issue. Extrusions only work reliably along
>> the y-axis in x3dom. There are several github issues but there were no
>> contributions for a proper fix.
>>
>> In the example, the extrusion is along the x-axis. So you could adjust
>> the code to first extrude along the y-axis and then rotate the extrusion,
>> around the z-axis by 90 degrees. Here is the example in x3dom with such a
>> work around (apologies for the long url, I currently cannot log in):
>>
>>
>> https://andreasplesch.github.io/Library/Viewer/index.html?url=data:text/plan;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIFgzRCBQVUJMSUMgIklTTy8vV2ViM0QvL0RURCBYM0QgNC4wLy9FTiIgImh0dHBzOi8vd3d3LndlYjNkLm9yZy9zcGVjaWZpY2F0aW9ucy94M2QtNC4wLmR0ZCI+CjxYM0QgcHJvZmlsZT0iSW1tZXJzaXZlIiB2ZXJzaW9uPSI0LjAiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzZDpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJodHRwczovL3d3dy53ZWIzZC5vcmcvc3BlY2lmaWNhdGlvbnMveDNkLTQuMC54c2QiPgogICAgPGhlYWQ+CiAgICAgICAgPG1ldGEgY29udGVudD0icXEzLngzZCIgbmFtZT0idGl0bGUiLz4KICAgICAgICA8bWV0YSBjb250ZW50PSJKb2huIENhcmxzb24iIG5hbWU9ImNyZWF0b3IiLz4KICAgICAgICA8bWV0YSBjb250ZW50PSJKb2huIENhcmxzb24iIG5hbWU9InRyYW5zbGF0b3IiLz4KICAgICAgICA8bWV0YSBjb250ZW50PSIxMSBKYW4gMjAxNSIgbmFtZT0iY3JlYXRlZCIvPgoJPG1ldGEgY29udGVudD0iMDUgTWF5IDIwMTciIG5hbWU9Im1vZGlmaWVkIi8+CiAgICAgICAgPG1ldGEgY29udGVudD0iMTIgZXh0cnVzaW9ucyIgbmFtZT0iZGVzY3JpcHRpb24iLz4KICAgICAgICA8bWV0YSBjb250ZW50PSJodHRwczovL2NvZGVyZXh0cmVtZS5uZXQveDNkL3FxMy54M2QiIG5hbWU9ImlkZW50aWZpZXIiLz4KICAgICAgICA8bWV0YSBjb250ZW50PSJtYW51YWwiIG5hbWU9ImdlbmVyYXRvciIvPgogICAgPC9oZWFkPgogICAgPFNjZW5lPgogICAgICAgIDxQcm90b0RlY2xhcmUgbmFtZT0iUHJvY2VzcyI+CiAgICAgICAgICAgIDxQcm90b0JvZHk+CiAgICAgICAgICAgICAgICA8R3JvdXA+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBsZWZ0IC0tPgogICAgICAgICAgICAgICAgICAgIDxUcmFuc2Zvcm0gc2NhbGU9IjAuNSAwLjUgMC41Ij4KICAgICAgICAgICAgICAgICAgICAgIDxUcmFuc2Zvcm0gREVGPSJUcmFmb0xlZnREb3duIiByb3RhdGlvbj0nMCAwIDEgLTEuNTcnPgogICAgICAgICAgICAgICAgICAgICAgICA8U2hhcGUgREVGPSJTaGFwZUxlZnREb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBlYXJhbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXRlcmlhbCBkaWZmdXNlQ29sb3I9IjAuNyAxIDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwZWFyYW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFeHRydXNpb24gc3BpbmU9IjAgLTIuNTAgMCAwIC0xLjUwIDAiIGNyZWFzZUFuZ2xlPSIwLjc4NSIgY3Jvc3NTZWN0aW9uPSIxLjAwIDAuMDAgMC45MiAtMC4zOCAwLjcxIC0wLjcxIDAuMzggLTAuOTIgMC4wMCAtMS4wMCAtMC4zOCAtMC45MiAtMC43MSAtMC43MSAtMC45MiAtMC4zOCAtMS4wMCAtMC4wMCAtMC45MiAwLjM4IC0wLjcxIDAuNzEgLTAuMzggMC45MiAwLjAwIDEuMDAgMC4zOCAwLjkyIDAuNzEgMC43MSAwLjkyIDAuMzggMS4wMCAwLjAwIiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L1NoYXBlPgogICAgICAgICAgICAgICAgICAgICAgPC9UcmFuc2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9UcmFuc2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPCEtLSByaWdodCAtLT4KICAgICAgICAgICAgICAgICAgICA8VHJhbnNmb3JtIHNjYWxlPSIwLjUgMC41IDAuNSI+CiAgICAgICAgICAgICAgICAgICAgICA8VHJhbnNmb3JtIERFRj0iVHJhZm9VcFJpZ2h0IiByb3RhdGlvbj0nMCAwIDEgLTEuNTcnPgogICAgICAgICAgICAgICAgICAgICAgICA8U2hhcGUgREVGPSJTaGFwZVVwUmlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGVhcmFuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hdGVyaWFsIGRpZmZ1c2VDb2xvcj0iMCAwLjcgMSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBlYXJhbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV4dHJ1c2lvbiBzcGluZT0iMCAxLjUwIDAgMCAyLjUwIDAiIGNyZWFzZUFuZ2xlPSIwLjc4NSIgY3Jvc3NTZWN0aW9uPSIxLjAwIDAuMDAgMC45MiAtMC4zOCAwLjcxIC0wLjcxIDAuMzggLTAuOTIgMC4wMCAtMS4wMCAtMC4zOCAtMC45MiAtMC43MSAtMC43MSAtMC45MiAtMC4zOCAtMS4wMCAtMC4wMCAtMC45MiAwLjM4IC0wLjcxIDAuNzEgLTAuMzggMC45MiAwLjAwIDEuMDAgMC4zOCAwLjkyIDAuNzEgMC43MSAwLjkyIDAuMzggMS4wMCAwLjAwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2hhcGU+CiAgICAgICAgICAgICAgICAgICAgICA8L1RyYW5zZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L1RyYW5zZm9ybT4KICAgICAgICAgICAgICAgICAgICA8IS0tIHVwIC0tPgogICAgICAgICAgICAgICAgICAgIDxUcmFuc2Zvcm0gc2NhbGU9IjAuNSAwLjUgMC41Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPFNoYXBlIFVTRT0iVHJhZm9VcFJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC9TaGFwZT4KICAgICAgICAgICAgICAgICAgICA8L1RyYW5zZm9ybT4KICAgICAgICAgICAgICAgICAgICA8IS0tIGRvd24gLS0+CiAgICAgICAgICAgICAgICAgICAgPFRyYW5zZm9ybSBzY2FsZT0iMC41IDAuNSAwLjUiPgogICAgICAgICAgICAgICAgICAgICAgICA8U2hhcGUgVVNFPSJUcmFmb0xlZnREb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9TaGFwZT4gICAKICAgICAgICAgICAgICAgICAgICA8L1RyYW5zZm9ybT4KICAgICAgICAgICAgICAgIDwvR3JvdXA+CiAgICAgICAgICAgIDwvUHJvdG9Cb2R5PgogICAgICAgIDwvUHJvdG9EZWNsYXJlPgogICAgICAgIDxWaWV3cG9pbnQgZGVzY3JpcHRpb249IlByb2Nlc3MgcGlwZXMiIG9yaWVudGF0aW9uPSIxIDAgMCAtMC40IiBwb3NpdGlvbj0iMCA1IDEyIi8+CiAgICAgICAgPFRyYW5zZm9ybSB0cmFuc2xhdGlvbj0iMCAtMi41IDAiPgogICAgICAgICAgICA8UHJvdG9JbnN0YW5jZSBuYW1lPSJQcm9jZXNzIi8+CiAgICAgICAgPC9UcmFuc2Zvcm0+CiAgICAgICAgPFRyYW5zZm9ybSB0cmFuc2xhdGlvbj0iMCAwIDAiPgogICAgICAgICAgICA8UHJvdG9JbnN0YW5jZSBuYW1lPSJQcm9jZXNzIi8+CiAgICAgICAgPC9UcmFuc2Zvcm0+CiAgICAgICAgPFRyYW5zZm9ybSB0cmFuc2xhdGlvbj0iMCAyLjUgMCI+CiAgICAgICAgICAgIDxQcm90b0luc3RhbmNlIG5hbWU9IlByb2Nlc3MiLz4KICAgICAgICA8L1RyYW5zZm9ybT4KICAgIDwvU2NlbmU+CjwvWDNEPg==
>>
>>
>> On Sun, Jul 6, 2025 at 12:51 AM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> It seems like X3DOM doesn’t do extrusion properly, at least according to
>>> successful renderings in other browsers.  This is a long term issue,
>>> mentioned several times.  This is one reason I don’t use X3DOM on a more
>>> regular basis.  So I tried converting my extrusion to PLY, and things are
>>> even worse.
>>>
>>> I need:
>>>
>>> 1) a way to render extrusions properly in X3DOM.
>>> 2) a way to tessellate X3D XML/JSON Extrusions to PLY.
>>>
>>> I will put this on a feature request.
>>>
>>> John
>>>
>> _______________________________________________
>>> X3dom-users mailing list
>>> X3dom-users at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/x3dom-users
>>
>>
>>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20250708/cac0acf9/attachment-0001.html>


More information about the X3D-Ecosystem mailing list