<div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">If you’re interested in my changes to x3d.py, they are here:  <div dir="auto"><a href="https://github.com/coderextreme/BlenderX3DSupport/blob/main/io_scene_x3dv/blender/com/x3dv.py">https://github.com/coderextreme/BlenderX3DSupport/blob/main/io_scene_x3dv/blender/com/x3dv.py</a> 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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">There’s lots of stuff to do, and I’m sure you have your own priorities!</div><div dir="auto"><br></div><div dir="auto">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).</div><div dir="auto"><br></div><div dir="auto">Enjoy!</div><div dir="auto"><br></div><div dir="auto">John </div></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Aug 16, 2025 at 8:01 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br clear="all"><div dir="auto"><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">all the best, Don</div></div></div><div dir="auto"><div dir="auto"><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><br>-- <br>Don Brutzman <br>X3D graphics, virtual worlds, Navy robotics <br><a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a><br></div></div></div><div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 13, 2025 at 23:04 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-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">The original x3dpsail.py dates from before x3d.py, remember when I was working on the pyjnius python interface to X3DJSAIL, for example, here: <div><a href="https://github.com/carlsonsolutiondesign/x3dpsail/blob/master/x3dpsail.py" target="_blank">https://github.com/carlsonsolutiondesign/x3dpsail/blob/master/x3dpsail.py</a></div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.  <span style="background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">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.</span></div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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!</div><div dir="auto"> <br></div><div dir="auto"><div dir="auto">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.</div></div></div></div></div><div><div><div dir="auto"><div dir="auto"><br></div><div dir="auto">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.<br></div><div dir="auto"><br></div><div dir="auto">I think you would agree that X3DJSAIL is preferred over x3d.py?</div><div dir="auto"><br></div><div dir="auto">Do you want me to remove the X3D trademark from everything?  Just plainly state that.</div></div></div></div><div><div><div dir="auto"><div dir="auto"><br></div><div dir="auto">John <br></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 13, 2025 at 10:43 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com" target="_blank">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">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.<div><br></div><div>Perhaps yours is a different fork?  Or something quite different?  Please come up with a different way to refer to it.</div><div><br></div><div>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.</div><div><ul><li>Python X3D Package x3d.py</li><li>X3D Python Scene Access Interface Library (X3DPSAIL)</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><li><a href="https://pypi.org/project/x3d" target="_blank">https://pypi.org/project/x3d</a></li><li>latest release 15 JAN 2025, exactly matching the X3D 4.0 Architecture International Standard (IS)</li></ul><div>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.</div><div><br></div><div>Very respectfully yours, Don</div></div></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 13, 2025 at 6:11 PM John Carlson via X3D-Ecosystem <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">I just discovered that x3dpsail.py could not be downloaded from a X3DJSONLD 12,  here:  <div><a href="https://coderextreme.net/X3DJSONLD/src/main/html/responsive.html" target="_blank">https://coderextreme.net/X3DJSONLD/src/main/html/responsive.html</a></div><div dir="auto"><br></div><div dir="auto">So I am making it available here:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graalpy/net/coderextreme/data/x3dpsail.py" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/graalpy/net/coderextreme/data/x3dpsail.py</a></div><br></div><div dir="auto"><br></div><div dir="auto">This is for use with GraalVM’s GraalPy, available here:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/oracle/graalpython/releases/tag/graal-24.2.2" target="_blank">https://github.com/oracle/graalpython/releases/tag/graal-24.2.2</a></div><br></div><div dir="auto">I use this version:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/oracle/graalpython/releases/download/graal-24.2.2/graalpy-community-jvm-24.2.2-windows-amd64.zip" style="text-decoration:none;max-width:100%;min-width:0px;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji";font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgba(0,0,0,0)" target="_blank"><span style="min-width:1ch;text-overflow:ellipsis;white-space:nowrap;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji"">graalpy-community-jvm-24.2.2-windows-amd64.zip</span></a></div><br></div><div dir="auto">The JVM is for accessing Java code (X3DJSAIL).</div><div dir="auto"><br></div><div dir="auto">Apologies for the oversight.</div><div dir="auto"><br></div><div dir="auto">I will publish a blog post.</div><div dir="auto"><br></div><div dir="auto">John</div>
-- <br>
X3D-Ecosystem mailing list<br>
<a href="mailto:X3D-Ecosystem@web3d.org" target="_blank">X3D-Ecosystem@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org</a><br>
</blockquote></div>
</blockquote></div></div>
</div>
</div>
</blockquote></div></div>
</blockquote></div></div>