<div dir="auto">Sure, Doug Sanden started the io_scene_x3dv Blender exporter, and I tried to help, but I got embroiled in both import and export. Eventually, when it came to integrate into Blender source, there were too many changes, the code had diverged, so I switched back to XML export, where I have a couple of WIP PRs I could use help on:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://projects.blender.org/extensions/io_scene_x3d/pulls">https://projects.blender.org/extensions/io_scene_x3d/pulls</a></div><div dir="auto"><br></div><div dir="auto">The main things I worked on were animation import and HAnim, but I got stuck on one of Vince’s examples “sand runner” or something, trying to maintain dual hierarchies for bones and geometry (there’s probably some way to do one hierarchy in blender???). The suggestion is to make bones optional, but there’s no evidence one can do skin weights without bones (can you find some?). Also, the imported bone animations didn’t follow the X3D animation. Reading documentation or following other examples is probably critical here.</div><div dir="auto"><br></div><div dir="auto">I have other animation import attempts here, for non-HAnim, which were more successful:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/tree/master/blend/localtest">https://github.com/coderextreme/X3DJSONLD/tree/master/blend/localtest</a></div><br></div><br></div><div dir="auto">Well, now you know why I know so much about X3DPSAIL, why I had to change it, etc.</div><div dir="auto"><br></div><div dir="auto">“Recent” work has delved into support for multiple TimesSensors through Blender actions, tracking animations on import back to originating TimeSensors and creating animation “actions” as Michalis revealed in a meeting. Hopefully, we should be able to support anything that Blender-glTF supports as far as interactivity, but that’s a whole separate project for glTF, last I heard.</div><div dir="auto"><br></div><div dir="auto">I think the best thing to do is work on export until it’s complete, and then focus on import. Doing both is probably too much at the same time.</div><div dir="auto"><br></div><div dir="auto">When we want to do X3D to glTF, then we can work on X3D import. Let’s get export done, because many people want that.</div><div dir="auto"><br></div><div dir="auto">My main suggestion is to follow what Blender does, unless X3D wants to break away again.</div><div dir="auto"><br></div><div dir="auto">Some people are really stuck on the X-Z plane being the floor, but that’s not going to happen. False floors are acceptable. Unless you want to fork Blender.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">BTW, everyone, Blender 5 is available.</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Dec 10, 2025 at 2:35 AM Bergstrom, Aaron via X3D-Ecosystem <<a href="mailto:x3d-ecosystem@web3d.org">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)">
<div lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;">
<div class="m_-8940064208704654861WordSection1">
<p class="MsoNormal">I’m going to add this to the discussion.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I didn’t know about it.<u></u><u></u></p></div></div><div lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;"><div class="m_-8940064208704654861WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br>
<b>Sent:</b> Wednesday, December 10, 2025 2:05 AM<br>
<b>To:</b> X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>><br>
<b>Cc:</b> Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>><br>
<b>Subject:</b> Re: [X3D-Ecosystem] Dec 10 - Ecosystem Meeting Agenda<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">I looked through the minutes, and there is already an exporter based on x3d.py (aka x3dv.py)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal"><a href="https://github.com/coderextreme/BlenderX3DSupport/tree/main/io_scene_x3dv" target="_blank">https://github.com/coderextreme/BlenderX3DSupport/tree/main/io_scene_x3dv</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Enjoy!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This also tries to handle EMPTY Blender Objects and converts them to X3D objects of various types, based on a naming convention.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">John<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Wed, Dec 10, 2025 at 12:59 AM Bergstrom, Aaron via X3D-Ecosystem <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)">
<div>
<div>
<p class="MsoNormal">All,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Here’s my proposed Agenda for the meeting in the morning:<u></u><u></u></p>
<p class="MsoNormal"><b>Agenda Topics</b><u></u><u></u></p>
<ul type="disc">
<li class="m_-8940064208704654861m-8718240084823367702msolistparagraph">
Blender Topics - Materials<u></u><u></u></li><li class="m_-8940064208704654861m-8718240084823367702msolistparagraph">
Blender Exporter in General<u></u><u></u></li><li class="m_-8940064208704654861m-8718240084823367702msolistparagraph">
Maya Exporter<u></u><u></u></li><li class="m_-8940064208704654861m-8718240084823367702msolistparagraph">
Open Discussion<u></u><u></u></li></ul>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I apologize for sending this out so belated.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Below is the Zoom Link and Meeting Agenda can be found on the Web3D website:<u></u><u></u></p>
<p class="MsoNormal"><a href="https://www.web3d.org/calendar/2799/x3d-ecosystem-working-group-meeting/2025-11-12t140000-2025-12-10t140000-2026-01" target="_blank">https://www.web3d.org/calendar/2799/x3d-ecosystem-working-group-meeting/2025-11-12t140000-2025-12-10t140000-2026-01</a><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Aaron<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">-- <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" target="_blank">http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</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></div>