<div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">If someone knows a good Java 3D renderer, I may try my hand at rendering X3DJSAIL-based apps. JavaFX or Java3D?</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto"><span style="font-family:-apple-system,sans-serif">John</span><br></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Feb 7, 2026 at 12:02 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>All the links are in the email and on the X3DSAIL page. Here are a few repeats.</div><div><br></div><div dir="auto">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.</div><div><br></div><div>The unit test examples are all easily inspected and tested. See</div><div><ul><li>Python X3D Package x3d.py - Examples</li><li><a href="https://www.web3d.org/x3d/stylesheets/python/python.html#Examples" target="_blank">https://www.web3d.org/x3d/stylesheets/python/python.html#Examples</a></li></ul></div><div>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.</div><div><ul><li><a href="https://www.web3d.org/x3d/content/examples/build.python.all.log.txt" target="_blank">https://www.web3d.org/x3d/content/examples/build.python.all.log.txt</a></li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><pre style="color:rgb(0,0,0)">===================================
create python:
C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\X3dForAdvancedModeling/Animation//CubeWithLabeledSidesViewpointSequencer.x3d processing with X3dToPython stylesheet...
C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\X3dForAdvancedModeling/Animation//CubeWithLabeledSidesViewpointSequencer.py self-validation tests...
validate python:
File "C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\X3dForAdvancedModeling\Animation\CubeWithLabeledSidesViewpointSequencer.py", line 89
Comment(' ==================== '),],])
^
SyntaxError: closing parenthesis ']' does not match opening parenthesis '(' on line 53
Result: 1
===================================</pre></blockquote><div><br></div><div>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.</div></div><div><br></div><div>Thanks for further testing and use of the library. Have fun with X3D Python!</div></div><div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 6, 2026 at 7:32 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">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 @<a href="http://web3d.org" target="_blank">web3d.org</a>.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">I also look for a new X3DUOM on sourceforge at that time.</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 6, 2026 at 7:14 PM Don Brutzman via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Am happy to announce that x3d.py release 4.0.65.0 now deployed on Python Package Index (PyPi).</div><div><ul><li><a href="https://pypi.org/project/x3d/" target="_blank">Python package x3d</a> is part of <a href="https://pypi.org" target="_blank">Python Package Index (PyPI)</a>, a repository of software for the Python programming language.</li><li>PyPI helps you find and install software developed and shared by the Python community.</li></ul><div>The x3d.py package provides a simple, convenient mechanism for python programmers to update their local x3d python configuration.</div></div><div><br></div><div>Project production details are found as follows.</div><div><ul><li>X3D Python Scene Access Interface Library (X3DPSAIL)</li><li>The x3d.py Python X3D Package supports programmers with Python interfaces and objects for standards-based X3D programming, all as open source.</li><li>"Pythonic is a word because Python programming is... different, in many excellent ways."</li><li><a href="https://www.web3d.org/x3d/stylesheets/python/python.html" target="_blank">https://www.web3d.org/x3d/stylesheets/python/python.html</a></li></ul></div><div>This is a significant release for Python programmers that adds several new features to existing capabilities.</div><div><ul><li>Full support for X3D 4.0 International Standard, plus additional support for new nodes undergoing implementation in draft X3D 4.1 specification.</li><li>Online <a href="https://www.web3d.org/x3d/stylesheets/python/x3d.html" target="_blank">x3d module documentation</a> produced using PyDoc, matching built-in x3d.py module documentation. In-context hints and help descriptions originate from the <a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank">X3D Tooltips</a>.</li><li>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 <a href="https://www.web3d.org/specifications/X3DUOM.html" target="_blank">X3D Unified Object Model (X3DUOM)</a>.</li><li>Valid data correctness of strict typing, along with carefully matched plus flexibility of Python "duck" typing.</li><li>Full expressive power that supports all model capabilities of the X3D Architecture,
equivalently matching XML, ClassicVRML, JSON, Compressed Binary Encoding, EXI, Turtle, and Java.</li><li>Refined best practices are applied in the x3d.py source for high quality assurance (QA), resulting in a current <a href="https://sourceforge.net/p/x3d/code/38475/tree/www.web3d.org/x3d/stylesheets/python/build.pylint.log.txt" target="_blank">pylint score of 9.96 out of 10</a>.</li><li><font face="arial, sans-serif"><span style="color:rgb(0,0,0)">All work is maintained under a non-viral Web3D Consortium </span><a href="https://www.web3d.org/x3d/stylesheets/python/license.html" target="_blank">open-source license</a><span style="color:rgb(0,0,0)"> (</span><a href="https://www.web3d.org/x3d/stylesheets/python/license.txt" target="_blank">text</a><span style="color:rgb(0,0,0)">).</span></font></li><li><font face="arial, sans-serif"><span style="color:rgb(0,0,0)">All assets and logs are maintained using subversion at </span><a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/" target="_blank">Sourceforge version control</a><span style="color:rgb(0,0,0)">.</span></font></li><li>This release also adds improved optional support for persistent retention of comments through use of a Comments class.</li></ul><div>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.</div></div><div><ul><li>Pre-release "<a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/PythonX3dSmokeTests.py" target="_blank">smoke test program</a>" and <a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/" target="_blank">example test models</a> with results log at <a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/build.examples.log.txt" rel="nofollow" title="build.examples.log.txt" style="box-sizing:inherit;margin:0px;padding:0px;font-size:14px;vertical-align:baseline;background:rgb(254,254,254);outline:none;font-family:Lato,sans-serif" target="_blank"><font color="#0000ff">build.examples.log.txt</font></a></li><li>Refreshed python versions for ~3800 models in the <a href="https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples" target="_blank">X3D Example Archives</a> were created using X3dToPython.xslt stylesheet</li><li>For instance: </li><ul><li><i>X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 01 Technical Overview, Hello World</i></li><li>Simple X3D model example: Hello World! <a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorldIndex.html" target="_blank">Index page for multiple encodings</a> and <a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.py" target="_blank">HelloWorld.py</a></li></ul></ul><div>Special thanks to John Carlson and Vince Marchetti for helpful issue reports. All questions and trouble tickets are always welcome.</div></div><div><br></div><div>Zooming back: the New Year's blog entry <a href="https://relativemotion.info/x3d-and-hanim-assets-update/" target="_blank">X3D and HAnim Assets Update</a> provides "big picture" descriptions of how X3D Python fits as part of many interlocking X3D capabilities</div><div><br></div><div>Have fun with X3D and Python! 😀</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div></div></div></div></div></div><div dir="ltr"><div dir="ltr"><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div></div>
</div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>
</blockquote></div>
</blockquote></div></div>