[x3d-public] announce: x3d.py release 4.0.65.0 now deployed on Python Package Index (PyPi)

John Carlson yottzumm at gmail.com
Sat Feb 7 11:55:12 PST 2026


You’re doing great work Don!   I hope you resolve all issues soon.  I have
forgotten the approach I took with Python, but I’m fairly sure I avoided
deep nesting.  I do remember using “””…””” but that was for multi-line
comments.

I have not yet moved my single line commented .x3d files over my multi-line
commented .x3d files, so I appreciate you forging ahead on this.

I did look at one of your python examples, and was impressed that numpy was
used!  I do recall a request for rounding long floats in x3d.py, and status
on that is welcome, realizing  I have found cumbersome workarounds.

I do have my own GraalPy and Python serializers that need to be tested.  I
am fairly sure my GraalPy examples use X3DJSAIL’s technique for comments.

If someone knows a good Java 3D renderer, I may try my hand at rendering
X3DJSAIL-based apps.  JavaFX or Java3D?

Another thing I might try is converting JavaScript serializers to
stylesheets, instead of the reverse.  This didn’t work too well for JSON
schema generation and Python, so I am doubtful.  I don’t want to spend
$1000s to have AI do it.

John

On Sat, Feb 7, 2026 at 12:02 PM Don Brutzman <don.brutzman at gmail.com> wrote:

> All the links are in the email and on the X3DSAIL page.  Here are a few
> repeats.
>
> For X3D Example Archives, the .x3d models are checked into SourceForge
> version control as master versions.  The conversions (for instance to .py)
> are on the web page for each model.  See the Hello World example in the
> email.
>
> The unit test examples are all easily inspected and tested.  See
>
>    - Python X3D Package x3d.py - Examples
>    - https://www.web3d.org/x3d/stylesheets/python/python.html#Examples
>
> There are still some conversions that need work to handle the Comment
> class feature you requested.  It is a good translation feature, but has
> required multiple days of debugging.  Nevertheless over 90% of the
> translations are correct, and I will keep working on adjusting the others.
> If you want to check on correct syntax, status log is found as follows...
> search for "SyntaxError:" to see failures.
>
>    - https://www.web3d.org/x3d/content/examples/build.python.all.log.txt
>
> ===================================
>> create python:
>> C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForAdvancedModeling/Animation//CubeWithLabeledSidesViewpointSequencer.x3d processing with X3dToPython stylesheet...
>> C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForAdvancedModeling/Animation//CubeWithLabeledSidesViewpointSequencer.py self-validation tests...
>> validate python:
>>   File "C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForAdvancedModeling\Animation\CubeWithLabeledSidesViewpointSequencer.py", line 89
>>     Comment(' ==================== '),],])
>>                                         ^
>> SyntaxError: closing parenthesis ']' does not match opening parenthesis '(' on line 53
>> Result: 1
>> ===================================
>>
>>
> While some .x3d to .py conversions are still misplacing a round
> parenthesis or square bracket, python detects that instantly and (as usual)
> they will eventually get fixed.  Fiddling around with the Python-provided
> IDLE editor (for example) can quickly fix such errata.  Meanwhile there are
> no known errors in the x3d.py module, so the release is solid.
>
> Thanks for further testing and use of the library.  Have fun with X3D
> Python!
>
> all the best, Don
> --
> X3D Graphics, Maritime Robotics, Distributed Simulation
> Relative Motion Consulting  https://RelativeMotion.info
>
>
> On Fri, Feb 6, 2026 at 7:32 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> Clarification, Don, are all the archives stored on sourceforge, or just
>> .x3d files and associated images?  If there’s a whole lot of Python files,
>> I may hold back on downloading the whole thing from sourceforge and prefer
>> to do onesy-twosy downloads, from published pages @web3d.org.
>>
>> I’m guessing the Example Archives and the sourceforge archive remains
>> separate.  If so, there’s no need to respond.  I’ll just wait a few days
>> before doing an update.
>>
>> I also look for a new X3DUOM on sourceforge at that time.
>>
>> Thanks,
>>
>> John
>>
>> On Fri, Feb 6, 2026 at 7:14 PM Don Brutzman via x3d-public <
>> x3d-public at web3d.org> wrote:
>>
>>> Am happy to announce that x3d.py release 4.0.65.0 now deployed on Python
>>> Package Index (PyPi).
>>>
>>>    - Python package x3d <https://pypi.org/project/x3d/> is part of Python
>>>    Package Index (PyPI) <https://pypi.org>, a repository of software
>>>    for the Python programming language.
>>>    - PyPI helps you find and install software developed and shared by
>>>    the Python community.
>>>
>>> The x3d.py package provides a simple, convenient mechanism for python
>>> programmers to update their local x3d python configuration.
>>>
>>> Project production details are found as follows.
>>>
>>>    - 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.
>>>    - "Pythonic is a word because Python programming is... different, in
>>>    many excellent ways."
>>>    - https://www.web3d.org/x3d/stylesheets/python/python.html
>>>
>>> This is a significant release for Python programmers that adds several
>>> new features to existing capabilities.
>>>
>>>    - Full support for X3D 4.0 International Standard, plus additional
>>>    support for new nodes undergoing implementation in draft X3D 4.1
>>>    specification.
>>>    - Online x3d module documentation
>>>    <https://www.web3d.org/x3d/stylesheets/python/x3d.html> produced
>>>    using PyDoc, matching built-in x3d.py module documentation.  In-context
>>>    hints and help descriptions originate from the X3D Tooltips
>>>    <https://www.web3d.org/x3d/content/X3dTooltips.html>.
>>>    - Rigorously correct data structures and utilities for X3D scene
>>>    graphs in Python are produced in the x3d.py library through source-code
>>>    autogeneration using the X3D Unified Object Model (X3DUOM)
>>>    <https://www.web3d.org/specifications/X3DUOM.html>.
>>>    - Valid data correctness of strict typing, along with carefully
>>>    matched plus flexibility of Python "duck" typing.
>>>    - Full expressive power that supports all model capabilities of the
>>>    X3D Architecture, equivalently matching XML, ClassicVRML, JSON, Compressed
>>>    Binary Encoding, EXI, Turtle, and Java.
>>>    - Refined best practices are applied in the x3d.py source for high
>>>    quality assurance (QA), resulting in a current pylint score of 9.96
>>>    out of 10
>>>    <https://sourceforge.net/p/x3d/code/38475/tree/www.web3d.org/x3d/stylesheets/python/build.pylint.log.txt>
>>>    .
>>>    - All work is maintained under a non-viral Web3D Consortium open-source
>>>    license <https://www.web3d.org/x3d/stylesheets/python/license.html> (
>>>    text <https://www.web3d.org/x3d/stylesheets/python/license.txt>).
>>>    - All assets and logs are maintained using subversion at Sourceforge
>>>    version control
>>>    <https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/>
>>>    .
>>>    - This release also adds improved optional support for persistent
>>>    retention of comments through use of a Comments class.
>>>
>>> Many updated X3D Python models are also available.  Given the innate
>>> strictness of Python programming, the x3d.py library makes it easy for
>>> Python programmers to create a correct X3D scene graphs and quite difficult
>>> to create an invalid X3D scene graph.
>>>
>>>    - Pre-release "smoke test program
>>>    <https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/PythonX3dSmokeTests.py>"
>>>    and example test models
>>>    <https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/>
>>>    with results log at build.examples.log.txt
>>>    <https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/build.examples.log.txt>
>>>    - Refreshed python versions for ~3800 models in the X3D Example
>>>    Archives
>>>    <https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples> were
>>>    created using X3dToPython.xslt stylesheet
>>>    - For instance:
>>>       - *X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 01
>>>       Technical Overview, Hello World*
>>>       - Simple X3D model example: Hello World!  Index page for multiple
>>>       encodings
>>>       <https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorldIndex.html>
>>>       and HelloWorld.py
>>>       <https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.py>
>>>
>>> Special thanks to John Carlson and Vince Marchetti for helpful issue
>>> reports.  All questions and trouble tickets are always welcome.
>>>
>>> Zooming back: the New Year's blog entry X3D and HAnim Assets Update
>>> <https://relativemotion.info/x3d-and-hanim-assets-update/> provides
>>> "big picture" descriptions of how X3D Python fits as part of many
>>> interlocking X3D capabilities
>>>
>>> Have fun with X3D and Python!  😀
>>>
>>> all the best, Don
>>> --
>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>> Relative Motion Consulting  https://RelativeMotion.info
>>> _______________________________________________
>>> 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/20260207/95d38510/attachment-0001.html>


More information about the x3d-public mailing list