<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
we used to have to specify</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<br>
</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<HAnimHumanoid localCoordSystem="true" </div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
 for InstantPlayer to render some toolchain products as expected;</div>
<div id="ms-outlook-mobile-body-separator-line" data-applydefaultfontstyles="true" dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt;">
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
not sure if this is your issue</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<br>
</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
br,</div>
<div style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);" dir="auto">
N</div>
</div>
<div dir="auto" id="mail-editor-reference-message-container"><br>
<hr style="display: inline-block; width: 98%;">
<div id="divRplyFwdMsg" style="font-size: 11pt;" dir="auto"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> on behalf of Len Bullard via x3d-public <x3d-public@web3d.org><br>
<b>Sent:</b> Wednesday, June 10, 2026 10:23:58 PM<br>
<b>To:</b> holger.seelig@gmail.com <holger.seelig@gmail.com>; x3d-public@web3d.org <x3d-public@web3d.org><br>
<b>Cc:</b> cbullard@hiwaay.net <cbullard@hiwaay.net><br>
<b>Subject:</b> [x3d-public] X_ITE GLTF¡÷HAnim Export and Skinning<br>
</div>
<br>
<meta name="Generator" content="Microsoft Exchange Server">
<div dir="auto" class="PlainText" style="font-size: 11pt;">X_ITE GLTF¡÷HAnim Export and Skinning<br>
<br>
Context<br>
<br>
We are building a multi-avatar HAnim scene using X_ITE for GLTF¡÷X3D<br>
conversion<br>
and Sunrize for rendering. Source avatars are Mixamo-rigged characters<br>
exported<br>
from Blender 5.1.2 as GLB. We are encountering a specific skinning<br>
artifact and<br>
have some questions about the export pipeline.<br>
---<br>
Question 1 ¡X skeletalConfiguration='GLTF' and skin deformation<br>
<br>
When X_ITE exports a GLB to X3D, it produces HAnimHumanoid with<br>
`skeletalConfiguration='GLTF'` and `jointBindingPositions` /<br>
`jointBindingRotations` attributes. This mode renders correctly in<br>
Sunrize<br>
(mesh visible, T-pose correct).<br>
When we remove `skeletalConfiguration='GLTF'` and replace it with<br>
classic<br>
HAnim 2.0 skinning (`skinCoordIndex` / `skinCoordWeight` on joints,<br>
`containerField='skinCoord'` Coordinate on the humanoid, Shape with<br>
`containerField='skin'`), the skeleton animates but the skin mesh does<br>
not<br>
deform ¡X it stays in bind pose.<br>
<br>
Question: Is classic HAnim 2.0 skinned mesh deformation fully<br>
implemented<br>
in Sunrize v2.1.4? Or does skinned mesh deformation require<br>
`skeletalConfiguration='GLTF'`?<br>
---<br>
Question 2 ¡X Spider finger artifact in GLTF skinning mode during<br>
animation<br>
With `skeletalConfiguration='GLTF'` intact, the mesh renders correctly<br>
in<br>
T-pose. However during animation playback, finger joints and<br>
occasionally neck<br>
joints exhibit severe elongation ¡X vertices are displaced radially<br>
outward from<br>
the joint rather than rotating with it. The effect varies across<br>
animation clips<br>
(some clips are clean, others show the artifact).<br>
<br>
We have investigated and ruled out:<br>
Scale channels in the GLB (stripped ¡X no effect)<br>
Non-root translation channels in the GLB (stripped ¡X no effect)<br>
Non-unit axis vectors in OrientationInterpolator keyValues (normalized ¡X<br>
no effect)<br>
The jointBindingPositions / jointBindingRotations values themselves<br>
<br>
The artifact appears to be inside X_ITE's GLTF skinning runtime ¡X<br>
specifically<br>
in how it computes the final vertex transform for joints deep in the<br>
finger<br>
chain when `skeletalConfiguration='GLTF'` is active.<br>
<br>
Question: Is there a known issue with GLTF skinning mode and compound<br>
joint<br>
chains (4+ joints deep, e.g. finger chains) in X_ITE? Is there a<br>
workaround,<br>
export setting, or X3D attribute we can set to correct this?<br>
---<br>
Question 3 ¡X Quaternion to axis-angle conversion in X_ITE export<br>
<br>
X_ITE's GLTF¡÷X3D exporter converts glTF quaternion rotation channels to<br>
HAnim<br>
`OrientationInterpolator` keyValues (axis-angle format). We have<br>
observed that<br>
some of the exported keyValues contain axis vectors with magnitude<br>
slightly<br>
greater than 1.0 (e.g. `-1.00000177 -5e-8 -1.2e-6`). HAnim requires unit<br>
vectors for the axis component.<br>
Question: Is this a known precision issue in the quaternion¡÷axis-angle<br>
conversion in X_ITE's exporter? Would it be possible to add axis<br>
normalization<br>
as a post-processing step in the export?<br>
---<br>
Question 4 ¡X Recommended workflow for Mixamo ¡÷ X_ITE ¡÷ HAnim<br>
<br>
We are currently using:<br>
Mixamo FBX ¡÷ Blender ¡÷ GLB (via Khronos glTF Blender I/O v5.1.20)<br>
GLB ¡÷ X_ITE ¡÷ X3D export<br>
The Mixamo GLB includes 65 scale animation channels per clip (one per<br>
bone,<br>
all near-identity values). X_ITE converts these to ScaleInterpolator<br>
nodes<br>
which cause bone elongation at runtime.<br>
Question: Is there a recommended export workflow from Mixamo/Blender to<br>
X_ITE that avoids these artifacts? Specifically:<br>
Should scale channels be stripped from the GLB before X_ITE ingestion?<br>
Are there Blender glTF export settings that produce cleaner HAnim<br>
output?<br>
Is there an X_ITE import option that ignores scale channels?<br>
---<br>
System Details<br>
X_ITE version: 15.1.2<br>
Sunrize version: 2.1.4<br>
Blender: 5.1.2 with Khronos glTF Blender I/O v5.1.20<br>
Source: Mixamo FBX ¡÷ Blender ¡÷ GLB<br>
HAnim profile: X3D 4.1, HAnim component level 1<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
x3d-public@web3d.org<br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fweb3d.org%2Fmailman%2Flistinfo%2Fx3d-public_web3d.org&data=05%7C02%7Cnpolys%40vt.edu%7C2526d48a074a4c34bb4b08dec7607c21%7C6095688410ad40fa863d4f32c1e3a37a%7C0%7C0%7C639167414381188322%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=MPzqLZvRk%2BWLAUzNSidri8KkmxXqQQhEJS2SBWzzVlU%3D&reserved=0</a><br>
</div>
<br>
</div>
</body>
</html>