<div dir="ltr"><div>I recommend getting a simple example first. I look forward to putting the .blend file and converted output into the HAnim X3D Examples Archive. Continuing testing, documentation and progress updates will likely benefit.</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 gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jan 23, 2026 at 1:26 PM Joe D Williams 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:1px solid rgb(204,204,204);padding-left:1ex"><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">> GCE Skin node’s “shapes” field </span></p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">should be GCESkin but </span><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">should not have 'skin' in the name. </span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">It is more than skin and less than skin at the same time</span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">and it is not HAnim, it is HAnim Part 2 import stuff. </span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">Not much if anything to do with HAnim part 1. </span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">Then you are overloading this node with other stuff, like lights? </span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">Really step back and think about how to do this without trying to load everything into this 'Node;</span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">Thanks,</span></p>
<p style="margin:0.1rem 0px;line-height:1"><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px;white-space:normal;float:none;display:inline">Joe</span></p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
</div>
<div style="border-left:1px solid rgb(170,170,170);box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px">
<p>-----Original Message-----<br>From: Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>><br>Sent: Jan 22, 2026 7:22 AM<br>To: X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>>, Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>>, GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>, Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>><br>Cc: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Subject: RE: [X3D-Ecosystem] Blender export: Bone+Transform = Joint</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<div>
<p class="MsoNormal">All,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Initially, the GCE Skin node’s “shapes” field was not going to allow any node types other than “Shapes”, but recently Michalis has changed his mind on this. It may be a bit before it is implemented, but “shapes” will also allow “Group” nodes and many other node types.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Hoewver, “Transform” nodes under a CGE Skin node’s “shapes” field will still NOT be allowed.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Unfortunately, I cannot provided any feedback on Blender Armature nodes as I have not read up on how they work.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I had planned to read up on the topic. I received the book “Beginner’s Guide to Creating Characters in Blender” for Christmas, which I figured would have some discussion of Blender character rigging…</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">But alas, unfortunately there is absolutely no discussion about Armature or character rigging in that book. I guess I should have looked at the book’s Table of Contents before asking for it.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Oh well, it’s always hard to buy xmas gifts for dad.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Disappointing, nonetheless.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Aaron</p>
<p class="MsoNormal"> </p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class="MsoNormal"><strong>From:</strong> X3D-Ecosystem <<a href="mailto:x3d-ecosystem-bounces@web3d.org" target="_blank">x3d-ecosystem-bounces@web3d.org</a>> <strong>On Behalf Of </strong>John Carlson via X3D-Ecosystem<br><strong>Sent:</strong> Wednesday, January 21, 2026 11:56 PM<br><strong>To:</strong> Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>; Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>>; GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>>; Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>><br><strong>Cc:</strong> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br><strong>Subject:</strong> [X3D-Ecosystem] Blender export: Bone+Transform = Joint</p>
</div>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I am starting to realize that for Blender HAnim export, at least for sandrunner, that Bone parent + Transform child (Empty object) = HAnimJoint (combined). So you must go down the non-bone hierarchy under Armature to collect the Transform (translation, rotation, scale), go to the parent bone of the non-bone to get the head (center), and create an HAnimJoint from those values. Then, you must (somehow) attach the mesh (skin) to the HAnimJoint through vertex groups (skinCoordWeight and skinCoordIndex). And collect all coordinates from the meshes into the skinCoord containerField in a Coordinate.point field. All the meshes will be Shape (mesh) nodes in the skin containerField field.</p>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">This is for the XML encoding. I am not currently including other encodings.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">The HAnimJoints should not have *any* children except other HAnimJoints and HAnimDisplacers. There’s no HAnimSegments or HAnimSites. There will be HAnimDisplacers, but I don’t know how to export those yet, help is desired. I suggest we get browsers ready for this.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">The only Transforms that will be exported will be outside the Humanoid or in skin, but the latter is unlikely, since HAnimJoints can’t contain Transforms.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">If there’s no bone parent for a Blender object inside the armature, an HAnimJoint will be created with its closest ancestor’s bone head (center).</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">That’s as far as I got. Please review.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Please discuss how Groups work under Shapes in this case. Also the CGE Skin node should be discussed.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">John</p>
</div>
</div>
</div>
<p style="margin:0.1rem 0px;line-height:1"> </p>-- <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>