[X3D-Ecosystem] Loading into X3DPSAIL (for Maya and Blender)

John Carlson yottzumm at gmail.com
Tue Jan 27 11:19:53 PST 2026


1. Object Parent/Child Hierarchy
To traverse the parenting structure (e.g., a car body with child wheels),
use a recursive function that accesses object.children.
python

import bpy
def traverse_objects(obj, depth=0):
    print("  " * depth + obj.name)
    for child in obj.children:
        traverse_objects(child, depth + 1)
# Start from root objects in the scene (objects without parents)roots
= [o for o in bpy.context.scene.objects if not o.parent]for root in
roots:
    traverse_objects(root)

Use code with caution.
2. Collection Hierarchy
To traverse the organizational structure of collections in the Outliner,
use a similar recursive approach on collection.children.
python

import bpy
def traverse_collections(col, depth=0):
    print("  " * depth + col.name)
    # Perform actions on objects within this collection
    for obj in col.objects:
        print("  " * (depth + 1) + f"Object: {obj.name}")

    # Recurse into sub-collections
    for child in col.children:
        traverse_collections(child, depth + 1)
# Start from the Scene's Master Collection
traverse_collections(bpy.context.scene.collection)



On Tue, Jan 27, 2026 at 1:16 PM John Carlson <yottzumm at gmail.com> wrote:

> Well, just asked Google, duh!
>
> The most prominent top-level data-block types, which can be accessed
> directly from bpy.data, include:
>
>    - *bpy.data.objects*: Contains all Object instances in the scene
>    (meshes, cameras, lights, etc.).
>    - *bpy.data.scenes*: Contains all Scenes.
>    - *bpy.data.collections*: Contains all Collections (used to organize
>    objects).
>    - *bpy.data.meshes*: Contains mesh data-blocks.
>    - *bpy.data.materials*: Contains material data-blocks.
>    - *bpy.data.images*: Contains loaded images.
>    - *bpy.data.armatures*: Contains armature data.
>    - *bpy.data.curves*: Contains curve data.
>    - *bpy.data.worlds*: Contains world data.
>
>
> Traversing all hierarchies in Blender—spanning objects, bone chains,
> animation data, and node trees—requires a recursive Python approach using
> the
> bpy module to navigate bpy.data and parent-child relationships.
> Here is a comprehensive guide on how to traverse these hierarchies,
> categorized by data type.
> 1. Scene Object Hierarchy (Parents & Children)
> To traverse all objects, including their child objects (recursive
> structure), use the following script.
> python
>
> import bpy
> def traverse_objects(obj, level=0):
>     print("  " * level + "Object:", obj.name, "Type:", obj.type)
>
>     # Traverse children
>     for child in obj.children:
>         traverse_objects(child, level + 1)
> # Start traversal from root objects (objects with no parent)for obj in bpy.context.scene.objects:
>     if obj.parent is None:
>         traverse_objects(obj)
>
> 2. Armature Bone Hierarchy (Rigging)
> Bones exist within armature data. You must iterate through the bonescollection,
> focusing on root bones (those without a parent) and navigating down.
> python
>
> import bpy
> def traverse_bones(bone, level=0):
>     print("  " * level + "Bone:", bone.name)
>     # Traverse children
>     for child in bone.children:
>         traverse_bones(child, level + 1)
> # Assumes an Armature object is selectedarm_obj = bpy.context.active_objectif arm_obj and arm_obj.type == 'ARMATURE':
>     # Use bone.parent is None to find root bones
>     for bone in arm_obj.data.bones:
>         if bone.parent is None:
>             traverse_bones(bone)
>
> 3. Animation Hierarchy (Actions & Keyframes)
> Animations are stored in bpy.data.actions and linked to objects via
> animation_data. To traverse keyframes within an action:
> python
>
> import bpy
> # Traverse all actions in the blend filefor action in bpy.data.actions:
>     print("Action:", action.name)
>     # Traverse F-Curves (animation channels)
>     for fcurve in action.fcurves:
>         print("  FCurve:", fcurve.data_path, "Array Index:", fcurve.array_index)
>         # Traverse keyframe points
>         for keyframe in fcurve.keyframe_points:
>             print("    Keyframe:", keyframe.co)
>
> 4. Node Hierarchy (Shader/Geometry Nodes)
> Nodes are structured within tree structures. You can traverse node trees
> in material nodes or geometry nodes.
> python
>
> import bpy
> def traverse_nodes(node_tree):
>     if node_tree is None: return
>     print("Node Tree:", node_tree.name)
>     for node in node_tree.nodes:
>         print("  Node:", node.name, "Type:", node.type)
>         # Check for node groups
>         if node.type == 'GROUP' and node.node_tree:
>             traverse_nodes(node.node_tree)
> # Example: Traversing active object's material nodesobj = bpy.context.active_objectif obj and obj.material_slots:
>     for slot in obj.material_slots:
>         if slot.material and slot.material.use_nodes:
>             traverse_nodes(slot.material.node_tree)
>
>
>
> On Tue, Jan 27, 2026 at 1:06 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> Aaron, it would be helpful to me to get the top-level Blender objects
>> that hold the scene:
>>
>> The object hierarchy.
>> The actions, key frames and animations.
>> The node graph roots (materials)
>> Anything else you can think of relevant to X3D.
>>
>> Thanks,
>>
>> John
>>
>> On Tue, Jan 27, 2026 at 12:17 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> I am now considering traversing the Blender object hierarchy and
>>> exporting “Blender XML,” such that I can translate Blender object
>>> structures directly to XML.  Then I will work towards translating X3D XML
>>> to Blender XML for loading using Blender XML examples, and write a Blender
>>> XML import for Blender.  Maybe I should use JSON?  What extension
>>> should I use?
>>>
>>> Somehow this seems very brittle.
>>>
>>> H**k,
>>>
>>> John
>>>
>>> On Tue, Jan 27, 2026 at 11:16 AM John Carlson <yottzumm at gmail.com>
>>> wrote:
>>>
>>>> I’m totally on board with that for X3D encodings in general, but I’m
>>>> currently narrowing down to using an X3D Python “encoding,” not a binding.
>>>>
>>>> On Tue, Jan 27, 2026 at 10:39 AM Bergstrom, Aaron <
>>>> aaron.bergstrom at und.edu> wrote:
>>>>
>>>>> All,
>>>>>
>>>>>
>>>>>
>>>>> I keep a python dictionary that I pass a node type to in the form of a
>>>>> string, and it returns an x3d.py node object.
>>>>>
>>>>>
>>>>>
>>>>> I keep a custom version of x3d.py to which I’ve added CGE, X_ITE, and
>>>>> X3DOM (sort of) node classes, so I can also export experimental nodes such
>>>>> as a CGE Skin, X_ITE material extensions, or X3DOM CommonSurfaceShader.
>>>>>
>>>>>
>>>>>
>>>>> The dictionary includes all of the X3D 4.0 node types, as well as a
>>>>> variety of pending 4.1 nodes and browser specific nodes as described above.
>>>>>
>>>>>
>>>>>
>>>>> It basically looks like this:
>>>>>
>>>>>
>>>>>
>>>>> def instantiateNodeFromString(x3dType):
>>>>>
>>>>>     x3dNodeMapping = {
>>>>>
>>>>>         ####################################### A
>>>>>
>>>>>         'AcousticProperties':AcousticProperties,
>>>>>
>>>>>         'Analyser':Analyser,
>>>>>
>>>>>         'Anchor':Anchor,
>>>>>
>>>>>         'AnisotropyMaterialExtension':AnisotropyMaterialExtension, #
>>>>> X_ITE - glTF extension
>>>>>
>>>>> ***snip***
>>>>>
>>>>>         'VolumeData':VolumeData,
>>>>>
>>>>>         'VolumeEmitter':VolumeEmitter,
>>>>>
>>>>>         'VolumePickSensor':VolumePickSensor,
>>>>>
>>>>>         ####################################### W
>>>>>
>>>>>         'WaveShaper':WaveShaper,
>>>>>
>>>>>         'WindPhysicsModel':WindPhysicsModel,
>>>>>
>>>>>         'WorldInfo':WorldInfo
>>>>>
>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>>     return x3dNodeMapping[x3dType]()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Aaron
>>>>>
>>>>>
>>>>>
>>>>> *From:* John Carlson <yottzumm at gmail.com>
>>>>> *Sent:* Tuesday, January 27, 2026 1:30 AM
>>>>> *To:* Don Brutzman <don.brutzman at gmail.com>
>>>>> *Cc:* Bergstrom, Aaron <aaron.bergstrom at und.edu>; X3D Ecosystem
>>>>> public discussion <x3d-ecosystem at web3d.org>
>>>>> *Subject:* Re: Loading into X3DPSAIL (for Maya and Blender)
>>>>>
>>>>>
>>>>>
>>>>> I think that Aaron was writing something that converted class names
>>>>> into X3D Python classes (and to scene graph objects?), but I haven’t heard
>>>>> much about it or if he imports X3D directly into Maya or some X3DPSAIL
>>>>> derivative (and then to Maya).  I am will to work on something that
>>>>> generates a XML Python loader (from X3DUOM), just realize I haven’t decided
>>>>> on a single loader class or multiple loader classes.  Opinions? At least I
>>>>> can take a first crack at it.   I probably won’t use AI at all.  I’ll study
>>>>> the structure of the Java version, but I do prefer ElementTree over DOM for
>>>>> this use case.
>>>>>
>>>>>
>>>>>
>>>>> Likely, it will be an adjunct to X3DPSAIL.
>>>>>
>>>>>
>>>>>
>>>>> I think the best test for reliability is to do roundtrip testing on
>>>>> the archive, which will also test XML output.
>>>>>
>>>>>
>>>>>
>>>>> John
>>>>>
>>>>> On Mon, Jan 26, 2026 at 6:01 PM Don Brutzman <don.brutzman at gmail.com>
>>>>> wrote:
>>>>>
>>>>> Yes "X3DLoaderDOM.java (load DOM into scenegraph)" was difficult to
>>>>> write, requires manual coding and time-consuming to debug.  It works and
>>>>> the generator for it is checked into open source as a key part of X3DJSAIL.
>>>>>
>>>>>    -
>>>>>    https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/X3DLoaderDOM.html
>>>>>    - (on web3d.org but direct access is blocked, library not is
>>>>>    version control since it is large and changeable; copy attached)
>>>>>
>>>>> The PythonX3dSmokeTests.py program builds a lot of snippets of python
>>>>> scene graph.  The same approach might be used to walk any X3D tree and
>>>>> construct a python scene graph.  If such code works, and is reliable, we
>>>>> can promote that code and integrate it as part of the x3d.py distribution.
>>>>>
>>>>>    -
>>>>>    https://www.web3d.org/x3d/stylesheets/python/examples/PythonX3dSmokeTests.py
>>>>>
>>>>> all the best, Don
>>>>>
>>>>> --
>>>>>
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>>
>>>>> Relative Motion Consulting  https://RelativeMotion.info
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jan 26, 2026 at 2:54 PM John Carlson <yottzumm at gmail.com>
>>>>> wrote:
>>>>>
>>>>> Thanks for fixing the TODO to add XML!
>>>>>
>>>>>
>>>>>
>>>>> I have tried to add Python code which loads JSON into an X3DPSAIL
>>>>> scene graph and failed.  I have zero confidence in my ability to load stuff
>>>>> into in memory scene graphs, preferring to load things into DOM first.
>>>>> This applies to much of my work, including JSON validation with X3D XML
>>>>> schema.
>>>>>
>>>>>
>>>>>
>>>>> I am attempting to load JSON into a CGE scene graph, but there’s no
>>>>> real evidence that it works yet.  I have a mostly working DOM solution.
>>>>>
>>>>>
>>>>>
>>>>> I realize X3DLoaderDOM.java (load DOM into scenegraph) is a lot of
>>>>> work, and if this was mostly automated, please tell us how if it’s
>>>>> not a national secret.  If we have that, then Python might be a lot easier!
>>>>>
>>>>>
>>>>>
>>>>> My overall plan is to push JSON things into DOM for loading, but Aaron
>>>>> might have a good solution for all encodings!
>>>>>
>>>>>
>>>>>
>>>>> I am reminded how Xj3D translated XML into a VRML scene graph.  Not
>>>>> ideal, but.
>>>>>
>>>>>
>>>>>
>>>>> My priorities are first CGE, then Blender import.  I realize my
>>>>> priorities change a lot.   If we had a way to export into Blender from
>>>>> X3DPSAIL, this would make working on X3DPSAIL import much more attractive.
>>>>> Easier said than done.
>>>>>
>>>>>
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jan 26, 2026 at 3:51 PM Don Brutzman <don.brutzman at gmail.com>
>>>>> wrote:
>>>>>
>>>>> Regarding C/C++/C# open source, no such library has yet been shared.
>>>>> As with our autogenerated Java and Python libraries, these are strong
>>>>> candidates for autogeneration once proper design patterns are written.
>>>>> Once written, library testing using the X3D Example Archives would be
>>>>> essential for success and straightforward to perform.
>>>>>
>>>>>
>>>>>
>>>>> Regarding X3D loaders in Python for X3DPSAIL, none has been written
>>>>> yet.  Please be aware that .x3d files are written in valid XML.  Refreshed
>>>>> TODO list:
>>>>>
>>>>>    - Python X3D Package x3d.py, X3D Python Scene Access Interface
>>>>>    Library (X3DPSAIL)
>>>>>    - The x3d.py Python X3D Package supports programmers with Python
>>>>>    interfaces and objects for standards-based X3D programming, all as open
>>>>>    source.
>>>>>    - https://www.web3d.org/x3d/stylesheets/python/python.html#TODO
>>>>>
>>>>> 🔖 <https://www.web3d.org/x3d/stylesheets/python/python.html#TODO>
>>>>>  TODO
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Lots! Much progress continues. For a release-summary log, please see *history
>>>>> log for this page*.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
>>>>>    - *TODO: clean up x3d.html documentation autogenerated by pydoc.
>>>>>       <https://www.web3d.org/x3d/stylesheets/python/python.html>*
>>>>>       - *TODO: We need a "Getting Started" tutorial on this page.
>>>>>       This is a good opportunity... who wants to help?!
>>>>>       <https://www.web3d.org/x3d/stylesheets/python/python.html>*
>>>>>       - *TODO: utility support for loaders from XML (.x3d or .xml),
>>>>>       ClassicVRML (.x3dv), VRML97 (.wrl), and JSON (.json or .x3dj) files.
>>>>>       <https://www.web3d.org/x3d/stylesheets/python/python.html>*
>>>>>       - *TODO: distribution support for Jupyter Notebook (initial
>>>>>       example works), Apache Zeppelin notebook, Anaconda distribution of Python,
>>>>>       and other data-science platforms.
>>>>>       <https://www.web3d.org/x3d/stylesheets/python/python.html>*
>>>>>
>>>>> To facilitate library review, I was recently able to autogenerate
>>>>> Python documentation for x3d.py using the pydoc tool.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>    - *https://www.web3d.org/x3d/stylesheets/python/x3d.html*
>>>>>    <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Please note that each X3D node has the following methods listed.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Methods defined here:
>>>>> *HTML5*(self, indentLevel=0)
>>>>> Provide HTML5 output serialization using modified
>>>>> XML encoding with no singleton self-closing elements.
>>>>> *JSON*(self, indentLevel=0, syntax='JSON')
>>>>> Provide *X3D*
>>>>>  output serialization using JSON encoding (usable for .json file suffix).
>>>>> *VRML*(self, indentLevel=0, VRML97=False)
>>>>> Provide *X3D*
>>>>>  output serialization using VRML encoding (usable for .x3dv or .wrl file suffix).
>>>>> *XML*(self, indentLevel=0, syntax='XML')
>>>>> Provide Canonical *X3D*
>>>>>  output serialization using XML encoding (usable for .x3d file suffix).
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Am thinking the HTML5 method is no longer needed, this was written
>>>>> when X3DOM had trouble with self-closing elements.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Thanks for all efforts that might improve x3d.py.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> all the best, Don
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> --  <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Relative Motion Consulting  *https://RelativeMotion.info*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> On Sun, Jan 25, 2026 at 4:18 AM John Carlson <*yottzumm at gmail.com*>
>>>>> wrote: <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> I guess I didn't send this earlier.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> I did see the standards progress page.  For C/C++/C#, are any
>>>>> libraries open source?  I’m thinking COIN 3D, OpenInventor,  H3D.   Maybe
>>>>> others.  I see there’s an ISO documentation for each language, but
>>>>> apparently the standard isn’t open source????  I’m looking for
>>>>> opportunities for X3DJSONLD serialization. OpenInventor (COIN 3D) looks
>>>>> super complex.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> For X3DPSAIL, can you point me at an example of loading XML or DOM
>>>>> into a scenegraph? Maybe I missed something????  I’m looking for something
>>>>> like CreateX3DFromString()???   I realized I can create Python from XML,
>>>>> just like my tools can go from JSON to DOM to Python; but my toolchain
>>>>> isn’t Python.   Running stylesheets in Python would be a great example.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Looking here:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
>>>>> *https://www.web3d.org/x3d/stylesheets/python/examples/PythonX3dSmokeTests.py*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> On Sun, Jan 25, 2026 at 12:19 AM Don Brutzman <
>>>>> *don.brutzman at gmail.com*> wrote:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Standards planning status appears on the following page.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>    - *X3D Standards Progress | Web3D Consortium*
>>>>>    <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>    - *https://www.web3d.org/x3d/progress*
>>>>>    <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Scroll past overview prose to find links to each version completed, in
>>>>> progress and planned.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> all the best, Don
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> --  <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Relative Motion Consulting  *https://RelativeMotion.info*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> On Fri, Jan 23, 2026 at 7:44 PM John Carlson via X3D-Ecosystem <
>>>>> *x3d-ecosystem at web3d.org*> wrote:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> A quick search reveals this page:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> *https://wiki.web3d.org/wiki/index.php/X3D_Python_Language_Binding*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> This link on the page is dead?
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> *https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC%2019777*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
>>>>> Btw: both 19776-4 and 19776-5 are titled JSON encoding?????
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> ==================================
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> I could start writing a Python binding standard?  Except we have three
>>>>> versions, one based on GraalPy/X3DJSAIL and one based on “normal”
>>>>> python-X3DPSAIL, and if course H3D, which AFAIK, has C++ underneath?  I
>>>>> believe CGE may also have plans for Python.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> GraalPy examples are here:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
>>>>> *https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/graalpy/net/coderextreme*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Python examples are on the X3D archives, some duplicated here:
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
>>>>> *https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/python/net/x3djsonld/data*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> It seems like the pure python implementation (pythonic) has more sway
>>>>> and implementations, so I am willing to capitulate, even though, in my
>>>>> experience, X3DJSAIL generates better JSON!  It was never really my idea to
>>>>> go with a pure python version though, but I don’t know how to install
>>>>> GraalPy in Blender!  I will pay anyone $100 if they can make blender run
>>>>> GraalPy for import/export addons on Windows!  I’m guessing X3DPSAIL can run
>>>>> stylesheets as well?  Perhaps it’s time to convert stylesheets to pure
>>>>> Java, with a stylesheet of course!
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> As far as support, GraalPy is supported by Oracle, and Python is
>>>>> supported by Microsoft (Does Guido still work there?).
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> It would be very nice to have a renderer for X3DJSAIL and X3DPSAIL
>>>>> (see previous post)!
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Has anyone used Xj3D from GraalPy?
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> ==================================
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> On Fri, Jan 23, 2026 at 8:52 PM John Carlson <*yottzumm at gmail.com*>
>>>>> wrote: <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Apologies, I just noticed I meant X3D python binding.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> On Fri, Jan 23, 2026 at 8:50 PM John Carlson <*yottzumm at gmail.com*>
>>>>> wrote: <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> What’s the status of the Python encoding standard?   Would my
>>>>> participation help?
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> Instead of spending time on Blender currently, my thought is to go
>>>>> back to developing an “X3D” JSON to CGE scenegraph converter, as that can
>>>>> be developed beyond DOM loading.   Does anyone know a good Pascal LLM?   I
>>>>> do find begin/end rather tedious.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> If there’s a lot of demand for a Blender HAnim export currently, I
>>>>> will reconsider.   Or X3D to glTF conversion.
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>   <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> John  <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>> --
>>>>> X3D-Ecosystem mailing list
>>>>> *X3D-Ecosystem at web3d.org*
>>>>> *http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org*
>>>>> <https://www.web3d.org/x3d/stylesheets/python/python.html>
>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20260127/91199f29/attachment-0001.html>


More information about the X3D-Ecosystem mailing list