<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">> <span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">I am doing Blender bones so i can assign vertex groups to the bone. That’s a known.</span> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Fine, just give the "bone" name the name of the parent Joint. It doesn't care what it it called, the hierarchy is important. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Vertex groups and weights assigned to the 'bone' in b is the same as if assigned to the parent joint in x3d. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Sent: Nov 25, 2024 8:46 AM<br>To: vmarchetti@kshell.com <vmarchetti@kshell.com><br>Cc: John Carlson <yottzumm@gmail.com>, X3D-Public <x3d-public@web3d.org><br>Subject: Re: [x3d-public] X3D, Blender, and which way is up.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="auto">What’s important to realize in Blender is, a Blender bone is not an Object. We can make HAnim stuff Objects in Blender. There’s an outstanding question as to whether Objects can have vertex groups with skin weights.</div>
<div dir="auto"> </div>
<div dir="auto">I am doing Blender bones so i can assign vertex groups to the bone. That’s a known.</div>
<div dir="auto"> </div>
<div dir="auto">An Armature is a type of Object.</div>
<div dir="auto"> </div>
<div dir="auto">John</div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Mon, Nov 25, 2024 at 8:20 AM <a href="mailto:vmarchetti@kshell.com">vmarchetti@kshell.com</a> <<a href="mailto:vmarchetti@kshell.com">vmarchetti@kshell.com</a>> wrote:</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: #cccccc;">
<div style="line-break: after-white-space;">
<div>Regarding the poblem with importing HAnim and supporting animation</div>
<div> </div>
The problem seems to be that when Blender imports an X3D in default settings, it does a coordinate transformation on the mesh coordinates, and it is difficult to apply a corresponding correct transformation on geometric operators such as the rotations that are an integral part of HAnim - based animation.
<div> </div>
<div>The X3D importer/exporter allows through the UI to configure the transformation through the choice of Up and Forward. The choices of +Z Up and +Y forward leads to the identity transformation, that is x,y,z coordinates are unchanged. The can be verified with the model at <span style="font-family: Calibri; color: #000000;"><span style="font-size: 11pt; font-family: Calibri;"><a style="font-family: Calibri;" href="https://drive.google.com/file/d/1lumRBRjqoygHCw88kwzcSKS5M-KxGXLf/view?usp=drive_link" target="_blank" rel="noopener">https://drive.google.com/file/d/1lumRBRjqoygHCw88kwzcSKS5M-KxGXLf/view?usp=drive_link</a></span></span> , it is a 3.4 MB zip file. When unzipped it has a .x3d file of a sculpture head, with the scalp being at the +Y extremity and the sculpture is looking in the +Z direction. With +Z up and +Y forward import and export these axes are preserved in the imported blender scene and in the re-exported x3d scene,</div>
<div> </div>
<div>Would it help your work with HAnim to have a version of the importer/exporter prepared for which the +Z Up and +Y forward is the fixed choice of orientation transform, meaning no x-y-z transformation is performed?</div>
<div> </div>
<div>Vince Marchetti</div>
<div><br>
<div> </div>
</div>
</div>
<div style="line-break: after-white-space;">
<div>
<div>
<blockquote>
<div>On Nov 25, 2024, at 5:09 AM, John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>> wrote:</div>
<br>
<div>
<div dir="auto">Probably this will be ignored. Joe makes a valid point on this one.</div>
<div dir="auto"> </div>
<div dir="auto">This comment is about X3D and Blender, not glTF and Blender. “Sorted out,” but look at the coordinate axes with when you load a typical coordinate X3D coordinate axes (with x,y,z labels) into Blender. Then look at what Blender thinks in the coordinate axes gizmo (see the bulbous X,Y,Z coordinates with red, green, blue coloring).</div>
<div dir="auto"> </div>
<div dir="auto">Nothing has changed but defaults, AFAIK, which I have been trying to override.</div>
<div dir="auto"> </div>
<div dir="auto">What we really want is Blender’s “floor” to be in the X-Z plane. You can make the “floor” as a “wall” be in the X-Z plane by choosing the correct viewpoint, but try to move the gizmo slightly. What they’ve done is put the “floor” grid in the X-Z plane temporarily (as a wall). Try moving the gizmo and watch the “floor” flip out of the X-Z plane.</div>
<div dir="auto"> </div>
<div dir="auto">It’s a marketing ploy…the Emperor has no clothes.</div>
<div dir="auto"> </div>
<div dir="auto">We’d be perfectly happy if we could select which plane the Blender “floor” was in, with no changes to the defaults. In python, please!</div>
<div dir="auto"> </div>
<div dir="auto">If you hit Num pad 7 in Blender, you will see the typical X3D viewpoint with +Y up, +Z towards the viewer, and +X to the right, just like you learned in high school, just like OpenGL. The only problem is the floor is now a wall! Indeed, it looks a lot like the Cartesian Coordinate System we all learned, with the grid in the a X-Y plane. But wait, the grid is supposed to be the floor, I thought…</div>
<div dir="auto"> </div>
<div dir="auto">Don’t look at the model! Look at the gizmo! Look at them both!</div>
<div dir="auto"> </div>
<div dir="auto">I don’t know what Blender was thinking making the floor so hard to change. If we could shift some concrete there, that would be great!</div>
<div dir="auto"> </div>
<div dir="auto">The great trick is to make the standard floor invisible and draw your own floor, which I haven’t done yet because I’ve been struggling with elasticman. If someone does that to you, try selecting the grid. You can’t select the floor grid in normal Blender. Zorro unmasked!</div>
<div dir="auto"> </div>
<div dir="auto">Where’s this is really going to hurt everyone is when we try to introduce animations, that’s where elasticman steps in. We’re going to have to apply Blender’s ideas to our interpolators. That means negating z…what does that mean for orientation interpolators? Just negate Z there? Really, if someone has an answer for this, you earn a gold star in my book! Euler angles with negated z???</div>
<div dir="auto"> </div>
<div dir="auto">Hopefully we can solve animations without forcing everything to default X3D axes (which was what I was trying to do by setting up to be forward and forward, up—please check my math—I’ll probably change my Blender importer back to that). That’s in __init__.py and can be set on import separate from export.</div>
<div dir="auto"> </div>
<div dir="auto">What happens when you swap -Z with Z in your animations? What do you also do on export? Have we even considered export yet?</div>
<div dir="auto"> </div>
<div dir="auto">Hopefully, the underlying code is doing rotation and not scaling!</div>
<div dir="auto"> </div>
<div dir="auto">I think the safest bet is loading X3D models “laying down” and moving the floor underneath their feet. This will give +Y above the models head, +Z in front of the model, and +X to the models left.</div>
<div dir="auto"> </div>
<div dir="auto">I’m not seeing importing X3D animations into blender coming to X3D soon until everyone gets their heads out of the sand.</div>
<div dir="auto"> </div>
<div dir="auto">I heard that HAnim was built on dead people’s measurements. If we get more people’s eyes on the technical details, maybe Blender won’t kill X3D.</div>
<div dir="auto"> </div>
<div dir="auto">I really like that Blender uses a right hand coordinate system!</div>
<div dir="auto"> </div>
<div dir="auto">Oh, I believe you can set floor *constraints* for an object. If you can set the floor constraints to the fake floor, maybe that would work?</div>
<div dir="auto"> </div>
<div dir="auto">I sure wish it was as easy as swapping -Z for Z. In my dreams!</div>
<div dir="auto"> </div>
<div dir="auto">Does glTF animation work in Blender?</div>
<div dir="auto"> </div>
<div dir="auto">I’m sure smarter people than me have been down this path, why HAnim is not implemented in Blender, why animation import is disabled, etc. I’m just a math dummy who thinks it’s possible, indeed, I wrote an HAnim exporter that mostly worked with one use case. No one gave me any other use cases, so I started my own HAnim importer.</div>
<div dir="auto"> </div>
<div dir="auto"> </div>
<div dir="auto">Perhaps we should only focus on Blender exports? Anyone? This seems like a higher priority. But then, do we expect HAnim names? How do we map Transforms to HAnim? Been there, done that:
<div dir="auto"><a href="https://github.com/coderextreme/HAnimDecoratorAssembly" target="_blank" rel="noopener">https://github.com/coderextreme/HAnimDecoratorAssembly</a> let me know if someone wants me to work on that, but I require HAnim names for Transforms. My system is limited to 32GB. For larger skins (500000 polys), I’ll probably have to recode in something besides Perl. X3DJSAIL is likely, if it’s ready to handle the workload.</div>
</div>
<div dir="auto"> </div>
<div dir="auto">Maybe moving Blender’s floor is a bit like moving the lid of a coffin?
<div dir="auto"><a href="https://youtu.be/6o2gISJYwQU?si=uuCoKE8W_-6NBBEp" target="_blank" rel="noopener">https://youtu.be/6o2gISJYwQU</a> Motel is glTF, Blender is Tzietel, and Lazar Wolf is X3D? That scene was pretty terrifying as a 7 year old.</div>
</div>
<div dir="auto"> </div>
<div dir="auto">Maybe we should fork Blender?</div>
<div dir="auto"> </div>
<div dir="auto">Another thing I see with importing animations is PREF_FLAT equals True (current). This currently wipes out intermediate transforms, and puts them on shapes (there’s a hierarchy of shapes with associated matrices in blender). So how the heck are we supposed to animate intermediate Transforms if they aren’t there? This whole thing needs to be rethought. We should start by looking at creating EMPTY objects as Transforms, as Joe said. Then we need to think about what to do on export. Since I just tripped upon a hierarchy of shapes (Thanks, Katy), this whole thing might need to be thought out. Fortunately, Katy’s example exports well with Blender’s exporter (but I’ve not tried recently, since the -Z/Z change.</div>
<div dir="auto"> </div>
<div dir="auto">If people want to get serious about HAnim and animations in Blender, and have mental capacity to understand the issues with PREF_FLAT, the effect of animating X3D files in Blender with different coordinate systems and import/export of animations, especially skin weights, maybe we can talk. I’m yottzumm on Discord and I hang out in The CGE, MSF and Khronos servers (friend me). I’m also on a Blender server, but there’s probably many.</div>
<div dir="auto"> </div>
<div dir="auto">Maybe we should just prioritize creating glTF and OpenUSD from X3D?</div>
<div dir="auto"> </div>
<div dir="auto">John </div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sun, Nov 24, 2024 at 8:11 PM Brutzman, Donald (Don) (CIV) via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>> wrote:</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: #cccccc;">
<div dir="ltr">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">Your definition sounds good to me. Glad to hear that this is consistently sorted out and implemented in recent Blender version.</div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;"> </div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">Here are X3D Tooltip hints for Viewpoint and orientation:</div>
<ul style="list-style-type: disc;">
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">X3D Tooltips: Viewpoint</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">Viewpoint provides a specific location and direction where the user may view the scene. Viewpoints are the primary way for a user to navigate within a scene, and for an author to show critical aspects of a model. Unless modified by the orientation field, the default direction for a Viewpoint to look is along the -Z axis. </div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;"><a style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;" href="https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint" target="_blank" rel="noopener">https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint</a></div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;"> </div>
</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="margin: 0px; font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">X3D Tooltips: Viewpoint orientation</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;"><a style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;" href="https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint.orientation" target="_blank" rel="noopener">https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint.orientation</a></div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;"><strong style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">[orientation <a id="m_5121513450527247724m_-7132815826132124438OWA0c5c34c5-9ae6-ba96-ada6-7e542a63a5e1" style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;" title="initializable field that can send or receive events at run time" href="https://www.web3d.org/x3d/content/X3dTooltips.html#accessType" target="_blank" rel="noopener"> accessType inputOutput</a>, <a id="m_5121513450527247724m_-7132815826132124438OWAf304c919-0588-52b5-b051-a5660baf03f8" style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;" title="Single-Field 4-tuple value" href="https://www.web3d.org/x3d/content/X3dTooltips.html#SFRotation" target="_blank" rel="noopener"> type SFRotation</a> <a id="m_5121513450527247724m_-7132815826132124438OWA9f162e5e-a6df-d2be-f707-24781b9c5c3a" style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;" title="CDATA means Character Data plain text (DTD validation)" href="https://www.web3d.org/x3d/content/X3dTooltips.html#CDATA" target="_blank" rel="noopener"> CDATA</a> "0 0 1 0"]</strong><br>Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.<br><strong style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">Hint:</strong> this is orientation _change_ from default direction (0 0 -1).<br><strong style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">Hint:</strong> complex rotations can be accomplished axis-by-axis using parent Transforms.<br><strong style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;">Warning:</strong> for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.</div>
</li>
</ul>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;">Improvements always welcome. Have fun with X3D! 🙂</div>
<div id="m_5121513450527247724m_-7132815826132124438Signature">
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;"> </span></div>
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">all the best, Don</span></div>
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">--</span></div>
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br <a style="font-family: 'Courier New';" href="mailto:brutzman@nps.edu" target="_blank" rel="noopener">brutzman@nps.edu</a></span></div>
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></div>
<div style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics <a style="font-family: 'Courier New';" href="https://faculty.nps.edu/brutzman" target="_blank" rel="noopener">https://faculty.nps.edu/brutzman</a></span></div>
<p style="margin: 0in; font-family: Calibri,sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;"> </span></p>
</div>
<div id="m_5121513450527247724m_-7132815826132124438appendonsend"></div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt;"> </div>
<hr style="display: inline-block; width: 98%;">
<div id="m_5121513450527247724m_-7132815826132124438divRplyFwdMsg" dir="ltr"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: #000000;"><strong style="font-family: Calibri,sans-serif;">From:</strong> x3d-public <<a style="font-family: Calibri,sans-serif;" href="mailto:x3d-public-bounces@web3d.org" target="_blank" rel="noopener">x3d-public-bounces@web3d.org</a>> on behalf of vmarchetti--- via x3d-public <<a style="font-family: Calibri,sans-serif;" href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br><strong style="font-family: Calibri,sans-serif;">Sent:</strong> Sunday, November 24, 2024 11:39 AM<br><strong style="font-family: Calibri,sans-serif;">To:</strong> X3D-Public <<a style="font-family: Calibri,sans-serif;" href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br><strong style="font-family: Calibri,sans-serif;">Cc:</strong> <a style="font-family: Calibri,sans-serif;" href="mailto:vmarchetti@kshell.com" target="_blank" rel="noopener">vmarchetti@kshell.com</a> <<a style="font-family: Calibri,sans-serif;" href="mailto:vmarchetti@kshell.com" target="_blank" rel="noopener">vmarchetti@kshell.com</a>><br><strong style="font-family: Calibri,sans-serif;">Subject:</strong> [x3d-public] X3D, Blender, and which way is up.</span>
<div> </div>
</div>
</div>
<div dir="ltr">
<div style="line-break: after-white-space;">I've seen that the email thread starting with the minutes of the last Blender-X3D support call had a subthread about the orientation conventions that glTF, Blender, and X3D use.
<div> </div>
<div>I recommend Michalis' answer at <a href="https://web3d.org/pipermail/x3d-public_web3d.org/2024-November/020882.html" target="_blank" rel="noopener">https://web3d.org/pipermail/x3d-public_web3d.org/2024-November/020882.html</a>.</div>
<div> </div>
<div>One confusing aspect is that not only do Blender and glTF disagree about which axis is forward, they disagree about what the word "forward" means.</div>
<div> </div>
<div>For Blender, the word "forward" refers to the axis that the viewer is looking along when they are viewing the front of the model. </div>
<div>The viewer is translated from the model in the -Y direction, and they are looking in the +Y direction. That, +Y, is Blender "forward"</div>
<div> </div>
<div>glTF defined "forward" by the model.Looking at the first sentence of the of section 3.4 of the glTF specification. <a href="https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units" target="_blank" rel="noopener">https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units</a>, </div>
<div><span style="font-family: -webkit-standard; font-size: medium;"> </span></div>
<blockquote>
<div><span style="font-family: -webkit-standard; font-size: medium;">glTF uses a right-handed coordinate system. glTF defines +Y as up, +Z as forward, and -X as right; the front of a glTF asset faces +Z.</span></div>
</blockquote>
<div> </div>
<div> </div>
<div>glTF says the "forward" refers to the direction the asset, a.k.a. model is facing and the spec shows this example picture . In Blender terminology this model is oriented "-Z forward"</div>
<div> </div>
<div> </div>
<div> </div>
<div><span id="m_5121513450527247724cid:ii_1936225282fdb107a741"><boombox.png></span></div>
<div> </div>
<div>The X3D standard has the same orientation convention as glTF, by virtue of the X3D default placement of the Viewpoint at a Z=+10 position and looking in the -Z direction. That is why in Blender terminology the X3D convention should be considered -Z forward. The code in the Blender extensions server was changed to this default for X3D import and export on Nov 4 2024 and this default is in release 2.4.0 of this Blender extension.</div>
<div> </div>
<div>Vince Marchetti</div>
<div> </div>
<div> </div>
<div> </div>
</div>
</div>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></blockquote>
</div>
</div>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>