[X3D-Ecosystem] Answer to Don. Python HAnim example for CGE skin
John Carlson
yottzumm at gmail.com
Fri Jan 23 18:14:48 PST 2026
Feel free to forward this message.
This python, from a simple example from Aaron, and dragged through an LLM
to clean it up can be used. While not a skin, I propose that it might be
a skin if the geometry is grouped under a CGE skin. My hope is we can take
RawKee X3DPSAIL in place of X3DPSAIL to render CGE skin directly from
Python:
https://github.com/coderextreme/x3danari/blob/main/eric5.py
It uses X3DPSAIL to render to XML and VRML.
X3D ANARI can be used to render the Python directly to the animated scene.
https://github.com/coderextreme/x3danari
If anyone wants to develop a way to render textures using a python API to
ANARI, possibly using pynari, a good way to do ANARI for raytracing from
python, using X3D technologies, that would be a great assistance to this
project! 4 months ago, I couldn’t describe it well enough to LLMs.
Here’s the current code to render eric5.py:
https://github.com/coderextreme/x3danari/blob/main/skinned_x3d_renderer.py
<https://github.com/coderextreme/x3danari/blob/main/eric5.py>
If that renderer doesn’t cut it, I have another for HAnim Part 1:
<https://github.com/coderextreme/x3danari/blob/main/eric5.py>
https://github.com/coderextreme/x3danari/blob/main/interactive_x3d_renderer.py
What you can do is either change the menu to put your X3DPSAIL Python scene
there, or do an import at the bottom of the file in the latter renderer.
The renderers were also generated with LLMs, with a small amount of editing
on my part. The scenes were generated from my “DOM to Python” JavaScript
code, but a stylesheet could be used as well.
Maybe some adventurous spirit will take the ride?
Of course, Aaron can take his original example, and do something similar.
John
On Fri, Jan 23, 2026 at 3:35 PM Don Brutzman via X3D-Ecosystem <
x3d-ecosystem at web3d.org> wrote:
> 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.
>
> all the best, Don
> --
> X3D Graphics, Maritime Robotics, Distributed Simulation
> Relative Motion Consulting https://RelativeMotion.info
>
>
> On Fri, Jan 23, 2026 at 1:26 PM Joe D Williams via X3D-Ecosystem <
> x3d-ecosystem at web3d.org> wrote:
>
>> > GCE Skin node’s “shapes” field
>>
>>
>>
>> should be GCESkin but should not have 'skin' in the name.
>>
>> It is more than skin and less than skin at the same time
>>
>> and it is not HAnim, it is HAnim Part 2 import stuff.
>>
>> Not much if anything to do with HAnim part 1.
>>
>> Then you are overloading this node with other stuff, like lights?
>>
>> Really step back and think about how to do this without trying to load
>> everything into this 'Node;
>>
>> Thanks,
>>
>> Joe
>>
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Bergstrom, Aaron <aaron.bergstrom at und.edu>
>> Sent: Jan 22, 2026 7:22 AM
>> To: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>, Joe D
>> Williams <joedwil at earthlink.net>, Katy Schildmeyer KS APPAREL DESIGN <
>> katy at ksappareldesign.com>, GPU Group <gpugroup at gmail.com>, Michalis
>> Kamburelis <michalis.kambi at gmail.com>
>> Cc: John Carlson <yottzumm at gmail.com>
>> Subject: RE: [X3D-Ecosystem] Blender export: Bone+Transform = Joint
>>
>>
>>
>> All,
>>
>>
>>
>> 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.
>>
>>
>>
>> Hoewver, “Transform” nodes under a CGE Skin node’s “shapes” field will
>> still NOT be allowed.
>>
>>
>>
>> Unfortunately, I cannot provided any feedback on Blender Armature nodes
>> as I have not read up on how they work.
>>
>>
>>
>> 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…
>>
>>
>>
>> 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.
>>
>>
>>
>> Oh well, it’s always hard to buy xmas gifts for dad.
>>
>>
>>
>> Disappointing, nonetheless.
>>
>>
>>
>> Aaron
>>
>>
>>
>> *From:* X3D-Ecosystem <x3d-ecosystem-bounces at web3d.org> *On Behalf Of *John
>> Carlson via X3D-Ecosystem
>> *Sent:* Wednesday, January 21, 2026 11:56 PM
>> *To:* Joe D Williams <joedwil at earthlink.net>; Katy Schildmeyer KS
>> APPAREL DESIGN <katy at ksappareldesign.com>; GPU Group <gpugroup at gmail.com>;
>> X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>; Michalis
>> Kamburelis <michalis.kambi at gmail.com>
>> *Cc:* John Carlson <yottzumm at gmail.com>
>> *Subject:* [X3D-Ecosystem] Blender export: Bone+Transform = Joint
>>
>>
>>
>> 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.
>>
>>
>>
>> This is for the XML encoding. I am not currently including other
>> encodings.
>>
>>
>>
>> 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.
>>
>>
>>
>> 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.
>>
>>
>>
>> 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).
>>
>>
>>
>> That’s as far as I got. Please review.
>>
>>
>>
>> Please discuss how Groups work under Shapes in this case. Also the CGE
>> Skin node should be discussed.
>>
>>
>>
>> John
>>
>>
>> --
>> X3D-Ecosystem mailing list
>> X3D-Ecosystem at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org
>>
> --
> X3D-Ecosystem mailing list
> X3D-Ecosystem at web3d.org
> http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20260123/7dd00eac/attachment-0001.html>
More information about the X3D-Ecosystem
mailing list