<div dir="auto">I haven’t read your second message yet.  Yes people have tried using x3d.py with blender.  You have to have your own copy in your extension/addon, unless you’re planning on deploying with Blender itself.  Ultimately, it’s about getting something approved through Blender.</div><div dir="auto"><br></div><div dir="auto">I already an intimately familiar with Blender import and 2 exporters, one uses x3d.py that Doug started.</div><div dir="auto"><br></div><div dir="auto">On previous meetings, we discussed how there might be a web3d organization within Blender source repository.  Is that what you’re referring to?</div><div dir="auto"><br></div><div dir="auto">I can’t keep on patching x3d.py myself to make it fit into blender. Ultimately, someone should accept changes from downstream.</div><div dir="auto"><br></div><div dir="auto">So yes, I do like getting rid of a dependency I don’t have any control over.</div><div dir="auto"><br></div><div dir="auto">John </div><div dir="auto"><div class="gmail_quote gmail_quote_container" dir="auto"><div dir="ltr" class="gmail_attr">On Wed, Feb 11, 2026 at 10:25 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>1. John it is not clear what you mean by "versions of x3d.py that get out of date" since x3d.py is autogenerated by X3DUOM, and therefore guaranteed to match X3D as defined by the International Specification.  As we keep refining utilities and adding features, this is a stable Python module.</div><div><br></div><div>2. Reiterating a question from this week's call:  wondering if anyone has tried using x3d.py in combination with the Blender Python API.  Might be interesting, and that is another alternative that might be an interesting and durable approach.</div><div><br></div><div>3. Zooming back: am thinking that improvements to native Blender X3D export has the most potential for broad usage and impact.  Thanks for sharing the source link.  The example that Vince shared, now online in archives, is super and demonstrates that the existing exporter has many capabilities.</div><div><ul><li style="margin-left:15px"><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheoremIndex.html" target="_blank">X3D4AM, X3D for Advanced Modeling Examples Archive, Conversions, Blender X3D Theorem</a></li><li style="margin-left:15px"><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheoremIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheoremIndex.html</a></li></ul><div>If someone is looking for a relatively small but important improvement to the blender exporter, namely</div></div><div><ul><li><span style="color:rgb(0,0,0);font-family:"Times New Roman"">Blender exporter for Web3D X3D/VRML2 format v2.5.1</span></li><li><a href="https://extensions.blender.org/add-ons/web3d-x3d-vrml2-format/versions" style="font-family:"Times New Roman"" target="_blank">https://extensions.blender.org/add-ons/web3d-x3d-vrml2-format/versions</a></li></ul><div>then a good entry-level challenge would be to improve how Blender exports Viewpoint nodes.  Nesting them inside a Transform makes them hard to modify for a Plain Old X3D Author.  Example using X3D Model Documentation:</div></div><div><ul><li><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#Camera_TRANSFORM" target="_blank">BlenderX3dTheorem.x3d (X3dToXhtml listing)</a> lines 113-115</li><li><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#Camera_TRANSFORM" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#Camera_TRANSFORM</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"><table id="m_181732817118134663gmail-LineNumberTable.bottom" style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><tbody><tr><td style="font-family:monospace"><font size="1"><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#113" target="_blank">113</a> </font></td><td><font size="1"><a id="m_181732817118134663gmail-113"></a><a id="m_181732817118134663gmail-Camera_TRANSFORM"></a>          <span title="Transform translates, orients and scales child geometry within the local world coordinate system"><<span style="color:navy">Transform</span> <span style="color:green">DEF</span>='<a title="bookmark link to Camera_TRANSFORM" href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#Camera_TRANSFORM" style="color:maroon" target="_blank">Camera_TRANSFORM</a>' <span style="color:green">rotation</span>='<span style="color:teal">-0.788280 -0.609329 -0.085636 0.352866</span>' <span style="color:green">scale</span>='<span style="color:teal">1.000000 1.000000 1.000000</span>' <span style="color:green">translation</span>='<span style="color:teal">-1.197213 1.649556 5.238984</span>'></span></font></td></tr><tr><td style="font-family:monospace"><font size="1"><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#114" target="_blank">114</a> </font></td><td><font size="1"><a id="m_181732817118134663gmail-114"></a><a id="m_181732817118134663gmail-CA_Camera"></a>               <span title="Viewpoint provides a specific location and direction where the user may view the scene"><<span style="color:navy">Viewpoint</span> <span style="color:green">DEF</span>='<a title="bookmark link to CA_Camera" href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#CA_Camera" style="color:maroon" target="_blank">CA_Camera</a>' <span style="color:green">description</span>='<a title="viewpoint image (produced using Xj3D)" href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/_viewpoints/BlenderX3dTheorem.x3d._VP_Blender_5.0.1_view.png" target="_blank">Blender 5.0.1 view</a>' <span style="color:green">fieldOfView</span>='<span style="color:teal">0.906</span>' <span style="color:green">orientation</span>='<span style="color:teal">0.97 -0.01 -0.22 0.00</span>' <span style="color:green">position</span>='<span style="color:teal">-0.00 -0.00 -0.00</span>'/></span></font></td></tr><tr><td style="font-family:monospace"><font size="1"><a id="m_181732817118134663gmail-115"></a><a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Conversions/BlenderX3dTheorem.html#115" target="_blank">115</a> </font></td><td><font size="1">          <span title="Transform translates, orients and scales child geometry within the local world coordinate system"></<span style="color:navy">Transform</span>></span></font></td></tr></tbody></table><br></blockquote><div>Perhaps an even-simpler exporter-improvement task would be to omit trailing zeroes from floating point numbers. </div></div><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><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 11, 2026 at 4:30 PM John Carlson via X3D-Ecosystem <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 11, 2026 at 5:22 AM Vincent Marchetti 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:1px solid rgb(204,204,204);padding-left:1ex"><div><br id="m_181732817118134663m_3246583959017379340m_2273510991162374979m_5350705288322146617lineBreakAtBeginningOfMessage"><div><br><div dir="auto">1. The Blender Python API documentation ; my practice for locating information is to do a search on "Blender Python API {keywords}" . Ignore the AI generated stuff, it's generally a directly plagiarize of the Blender documentation.</div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">Good point, Vince.  I assume you mean AI generated documentation.  Of course everyone who programs in Blender Python is plagiarizing the documentation (or the glTF addon/extension code).</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="auto"></div><div><br></div><div dir="auto">2. The source code for the Blender extension for exporting glTF; it also searches the Blender shader graph to populated the glTF material properties. This source code is at <a href="https://projects.blender.org/blender/blender/src/branch/main/scripts/addons_core/io_scene_gltf2" target="_blank">https://projects.blender.org/blender/blender/src/branch/main/scripts/addons_core/io_scene_gltf</a>2</div></div></div></blockquote><div dir="auto"><br>see above comment.   The beauty of blender XML is that it uses ElementTree to generate and read XML, so there’s no custom XML API and no need to include versions of x3d.py that get out of date.   Indeed, Blender XML currently operates as an external script, and may evolve independently.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="auto"></div><div><br></div><div dir="auto">3. For deep level hacking, the results of the BlenderXML work might solve a deep-level problem; but as Michalis pointed out,  what you get from that might be dependent on Blender version.</div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">Yes, we will have to version blender XML, but we have to version the Web3D Blender plugin as well.   The goal of Blender XML is to discover what’s in Blender without constantly referring to the web.  I’m not really sure terminal-based web is ideal, but I’ve not tried it for very long.  What the web offers is search.</div><div dir="auto"><br></div><div dir="auto">We can hope that the Blender XML code remains stable, but there’s really no guarantees about that, as it leverages Blender C++ code made accessible through python.   Ultimately, .blend files remains the stablest way to upgrade.</div><div dir="auto"><br></div><div dir="auto">Blender XML is currently a WIP, because I now have 3 versions of the importer and 2 versions of the exporter, based on 4 models-3 that mostly work.  I am currently working to resolve 2 importers into one.  It has to do with skin coloring in the Shader tab.</div><div dir="auto"><br></div><div dir="auto">John</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="auto"></div></div></div>
</blockquote></div></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- <br></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
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>