[X3D-Ecosystem] Layout and Layering component loading in X3DJSAIL.

John Carlson yottzumm at gmail.com
Sat Aug 16 20:06:16 PDT 2025


For example, this FACS model uses Layering fairly effectively for the
menus, and I’ve probably not validated it yet.  I am unsure if X3DUOM, et
al., can be applied here for naming or not:
https://github.com/coderextreme/ci2had/blob/main/resources/CleanedYouClocks.x3d

Let me know if I can be more effective with LayoutGroup.

It would be fun to validate these with X3D JSON schema, so I’m bringing
versions under X3DJSONLD.

In an ideal situation, I could build a whole GUI toolkit with these
components, which might be fun!

Enjoy,

John

On Sat, Aug 16, 2025 at 9:01 PM John Carlson <yottzumm at gmail.com> wrote:

> I created a special build of x3d.py for Blender called x3dv.py.  Perhaps
> that’s where the confusion lies.  I do know that you upgraded x3d.py, but I
> don’t have those changes, and I may fall back to your version.   I recall
> that Andreas added some changes for containerField, and I think I tried to
> handle DEF/USE slightly better.
>
> If you’re interested in my changes to x3d.py, they are here:
>
> https://github.com/coderextreme/BlenderX3DSupport/blob/main/io_scene_x3dv/blender/com/x3dv.py but
> I’ve moved in the direction of modifying main blender repository, which
> doesn’t have x3dv.py.  So I generally use x3d.py in my main X3DJSONLD
> testing.  I am modifying my PythonSerializer.js to output x3d.py
> application code.
>
> I also have a GraalPySerializer,js that currently works better than the
> PythonSerializer.js.   It emits GraalPy application code, which makes use
> of x3dpsail.py and through that, X3DJSAIL.
>
> I don’t know if Aaron has custom x3d.py in his codebase or whether he’s
> using OOTB, perhaps with some customization for JSON.  My guess is he uses
> Python-based JSON, rather than a library on top of it.
>
> My custom X3DJSAIL testing is going extremely well, and I’ve reduced the
> number of “brutzman” messages in the Layer and Layout components, but I
> don’t think I’m handling ProtoInstances very well.  I do want to fold my
> changes into the main branch.
>
> I you want some examples for Layer and Layout, I have some, one must wade
> through the X3D-Edit messages.   Christoph V. gave me a head start.  Also,
> I think the combined FACS example may have some examples.  I’m not too
> worried about Spatial Audio presently, but those models need to be
> validated with X3DJSAIL and one or the other fixed.
>
> There’s lots of stuff to do, and I’m sure you have your own priorities!
>
> I have tried using npx x3dvalidate to validate old JSON files, and
> apparently, many fall short.  There’s apparently some more MFStrings that
> were in enumerations like the align field (in the components above) and a
> few more fields.  I will try to make a post about the progress I am making,
> but I didn’t do any work today (it’s the weekend).
>
> Enjoy!
>
> John
>
> On Sat, Aug 16, 2025 at 8:01 PM Don Brutzman <don.brutzman at gmail.com>
> wrote:
>
>> Apologies if I misunderstood from your prior email, it sounded like you
>> had created a new build with the same name. That was simply the point of
>> confusion I was hoping to avoid.
>>
>> If you are using the official x3d.py (Also known as X3DJSAIL) then that
>> is super! Providing a reusable package for everybody is certainly a design
>> goal for that library. Thanks for your many efforts John.
>>
>> all the best, Don
>>
>> --
>> Don Brutzman
>> X3D graphics, virtual worlds, Navy robotics
>> https://faculty.nps.edu/brutzman
>>
>>
>> On Wed, Aug 13, 2025 at 23:04 John Carlson <yottzumm at gmail.com> wrote:
>>
>>> Don, let me try to clarify, I use x3dpsail.py as the file which loads
>>> X3DJSAIL into GraalPy.  It’s not another API or package, it’s a binding.
>>>
>>> The original x3dpsail.py dates from before x3d.py, remember when I was
>>> working on the pyjnius python interface to X3DJSAIL, for example, here:
>>> https://github.com/carlsonsolutiondesign/x3dpsail/blob/master/x3dpsail.py
>>>
>>> Obviously, I don’t want to quibble about any x3d trademarks.  I suggest
>>> that I rename the file to ex3d.py or ex3dpsail.py?  Maybe you should talk
>>> to AMD about trademarks?   I’m not making any money off any names.
>>>
>>> Also recall that I gave up the original x3d python package name that I
>>> registered.  I can be gracious.   There’s no registered x3dpsail package
>>> that I know of, so there’s no confusion.  If you care to look at my
>>> x3dpsail.py now, you will see bunch of references to Java code bindings.
>>> There’s no science to it.  What I’m trying to say is, it’s impossible
>>> to use x3dpsail.py without X3DJSAIL.   There’s not going to be an official
>>> python package, unless web3d supports it.
>>>
>>> Anyway, x3dpsail.py  sits on top of X3DJSAIL, hence it’s aptly named.  I
>>> found commercially supported python on top of the JVM.   Getting off
>>> pyjnius and onto GraalPy was a great move, and Java’s XML handling is as
>>> good as python’s.   I can’t say that GraalPy’s python packages have great
>>> XML support on Windows.  Maybe more recently.
>>>
>>> Can I read any encoding into x3d.py yet?  Can I produce good JSON from
>>> x3d.py?  That’s why I continue to push  X3DJSAIL, and languages related to
>>> Java.  X3DJSAIL’s ability to validate DOM remains key to validating X3D
>>> JSON with XML schema, X3DJSAIL and eventually schematron.  Also, X3DJSAIL’s
>>> JSON stylesheets are great!
>>>
>>> Pretty much whatever you want me to do is ok, it’s going to be confusing
>>> if google continues to refer to X3DPSAIL’s GitHub repository as outdated
>>> code.  Obviously you want to point to the python x3d package on sourceforge.
>>>
>>> What I really wanted was a way to distinguish the GraalPy’s
>>> X3Dautoclass.py from Pyjnius’.   So I gave it an “unused” filename that was
>>> familiar.  I can go back to autoclass, if desired, since Pyjnius is
>>> retired.   I needed a way to distinguish GraalPy from Pyjnius so people
>>> wouldn’t confuse the files.  x3dpsail.py was unused at the time.   So
>>> great, you’re arguing about a filename.
>>>
>>> I think you would agree that X3DJSAIL is preferred over x3d.py?
>>>
>>> Do you want me to remove the X3D trademark from everything?  Just
>>> plainly state that.
>>>
>>> John
>>>
>>> On Wed, Aug 13, 2025 at 10:43 PM Don Brutzman <don.brutzman at gmail.com>
>>> wrote:
>>>
>>>> John, thanks for all efforts but am not sure what you are doing.  It is
>>>> not a good idea to call a different codebase exactly the same name as the
>>>> original.
>>>>
>>>> Perhaps yours is a different fork?  Or something quite different?
>>>> Please come up with a different way to refer to it.
>>>>
>>>> The original X3DPSAIL x3d.py remains available as follows.  It is
>>>> currently up to date, with further modifications possible in September.
>>>> Each release goes through an extensive testing and review process.
>>>>
>>>>    - Python X3D Package x3d.py
>>>>    - X3D Python Scene Access Interface Library (X3DPSAIL)
>>>>    - https://www.web3d.org/x3d/stylesheets/python/python.html
>>>>    - https://pypi.org/project/x3d
>>>>    - latest release 15 JAN 2025, exactly matching the X3D 4.0
>>>>    Architecture International Standard (IS)
>>>>
>>>> If you have been working on any of the open TODO items listed on the
>>>> X3DPSAIL page, I'll be happy to look at them when the spotlight of effort
>>>> comes around again.
>>>>
>>>> Very respectfully yours, Don
>>>>
>>>> On Wed, Aug 13, 2025 at 6:11 PM John Carlson via X3D-Ecosystem <
>>>> x3d-ecosystem at web3d.org> wrote:
>>>>
>>>>> I just discovered that x3dpsail.py could not be downloaded from a
>>>>> X3DJSONLD 12,  here:
>>>>> https://coderextreme.net/X3DJSONLD/src/main/html/responsive.html
>>>>>
>>>>> So I am making it available here:
>>>>>
>>>>>
>>>>> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graalpy/net/coderextreme/data/x3dpsail.py
>>>>>
>>>>>
>>>>> This is for use with GraalVM’s GraalPy, available here:
>>>>>
>>>>> https://github.com/oracle/graalpython/releases/tag/graal-24.2.2
>>>>>
>>>>> I use this version:
>>>>>
>>>>> graalpy-community-jvm-24.2.2-windows-amd64.zip
>>>>> <https://github.com/oracle/graalpython/releases/download/graal-24.2.2/graalpy-community-jvm-24.2.2-windows-amd64.zip>
>>>>>
>>>>> The JVM is for accessing Java code (X3DJSAIL).
>>>>>
>>>>> Apologies for the oversight.
>>>>>
>>>>> I will publish a blog post.
>>>>>
>>>>> John
>>>>> --
>>>>> X3D-Ecosystem mailing list
>>>>> X3D-Ecosystem at web3d.org
>>>>> http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org
>>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20250816/550c30f4/attachment-0001.html>


More information about the X3D-Ecosystem mailing list