[x3d-public] new HAnimDisplacer example model, plus default HAnim site names proposed: humanoid_sacrum and humanoid_origin
Don Brutzman
don.brutzman at gmail.com
Tue Jul 22 18:51:15 PDT 2025
Joe has an interesting new example model that we are working on.
- X3D Example Archives: Humanoid Animation, Motion Animation, HAnim
Displacer Examples
- This model illustrates use of the HAnimDisplacer node.
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.x3d
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamplesIndex.html
The model shows HAnimDisplacer nodes modifying both the head and a finger
on the left hand. Of note is displacers vary weights on their parent
HAnimSegment node, without requiring ROUTE connections.
- X3D Tooltips: HAnimDisplacer
- HAnimDisplacer nodes alter the shape of coordinate-based geometry
within parent HAnimJoint or HAnimSegment nodes. Displacer effects are
scaled by the corresponding weight field.
Hint: HAnimDisplacer can be used in three different ways: (a) identify
vertices corresponding to a particular feature in a parent HAnimSegment
node, (b) represent a particular muscular action for a parent HAnimJoint
node by displacing corresponding HAnimHumanoid skin vertices in various
directions (linearly or radially), or (c) represent a complete
configuration of coordinate vertices in parent HAnimSegment or HAnimJoint
nodes.
- https://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimDisplacer
Happy to report that the model works in both X3DOM and X_ITE! Model
refinements continue.
We came up with an interesting proposed specification addition: predefined
site names for the humanoid's sacrum and also origin. This is perhaps an
unusual case because we usually think of HAnimSite nodes being used for
skin on an HAnimSegment node, showing an external location on the body.
Nevertheless, addition of geometry and viewpoints for visualization of the
two use cases is fairly common and helpful. Site locations of interest:
- sacrum (base of spine where Humanoid translation/rotation is applied
to move a human in the scene),
- origin (0 0 0 is centered between feet on ground plane)
Here is what the corresponding definitions look like in the X3D HAnim model:
- X3D Documentation for model HAnim Displacer Examples
-
http://web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_Human
31
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#31>
<HAnimHumanoid DEF='Joe_Human
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_Human>
' name='Human'>
32
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#32>
<!-- HAnimJoint Joe_humanoid_root is a DEF node that
has 1 USE node: USE_1
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_humanoid_root_USE_1>
-->
<HAnimJoint DEF='Joe_humanoid_root
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_humanoid_root>
' center='0 0.875 0' containerField='skeleton' name='humanoid_root' ulimit='0
0 0' llimit='0 0 0'>
33
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#33>
<HAnimSegment DEF='Joe_sacrum
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_sacrum>
' name='sacrum'>
34
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#34>
<!-- this first HAnimSite is located
directly at the sacrum, ordinarily not visible -->
35
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#35>
<HAnimSite DEF='Joe_humanoid_sacrum_pt
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_humanoid_sacrum_pt>
' name='humanoid_sacrum_pt' translation='0 0.875 0'>
36
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#36>
<Shape DEF='RedBox
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#RedBox>
'>
37
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#37>
<Box size='0.01 0.01 0.01'/>
38
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#38>
<Appearance>
39
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#39>
<Material diffuseColor='1 0 0
'/>
40
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#40>
</Appearance>
41
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#41>
</Shape>
42
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#42>
</HAnimSite>
43
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#43>
<!-- Note that this site is not located at
the sacrum center, but rather is centered at the Humanoid origin between
the feet. -->
44
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#44>
<HAnimSite DEF='Joe_humanoid_origin_view
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#Joe_humanoid_origin_view>
' name='humanoid_origin_view'>
45
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#45>
<Transform DEF='HAnimHumanoidOrigin
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#HAnimHumanoidOrigin>
' scale='0.175 0.175 0.175'>
46
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#46>
<Viewpoint DEF='ViewBodyRootAxes
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#ViewBodyRootAxes>
' description='Joe_HAnim Root Coordinate Axes View
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/_viewpoints/HAnimDisplacerExamples.x3d._VP_Joe_HAnim_Root_Coordinate_Axes_View.png>
'/>
47
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#47>
<!-- Shape AxisLinesShape is a DEF
node that has 1 USE node: USE_1
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#AxisLinesShape_USE_1>
-->
<Shape DEF='AxisLinesShape
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#AxisLinesShape>
'>
48
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#48>
<IndexedLineSet
colorPerVertex='false' colorIndex='0 1 2' coordIndex='0 1 -1 0 2 -1 0 3 -1'>
49
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#49>
<Coordinate point='0 0
0 1.0 0 0 0 1.0 0 0 0 1.0'/>
50
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#50>
<Color color='1 0 0 0
0.6 0 0 0 1'/>
51
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#51>
</IndexedLineSet>
52
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#52>
</Shape>
53
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#53>
</Transform>
54
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#54>
</HAnimSite>
55
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/HAnimDisplacerExamples.html#55>
</HAnimSegment>
These two recommended site names, humanoid_sacrum and humanoid_origin, have
been documented in the Mantis issue tracker:
- Mantis 1499: add humanoid_root site names corresponding to
humanoid_sacrum and humanoid_origin
- https://mantis.web3d.org/view.php?id=1499 (web3d member only)
... and added to the draft specification:
- HAnim Architecture draft 2.1, clause 7 Concepts, Table 4.7 — Site and
Segment relationships
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#t-SiteSegments
98 humanoid_sacrum (reserved)
(translation = humanoid_root center) sacrum sacrum sacrum sacrum sacrum
99 humanoid_origin (reserved)
(no translation or center values) sacrum sacrum sacrum sacrum sacrum
Seems useful, we will look for this design pattern in other HAnim models in
the example archives. Once again, interoperability and evolution often
depend on consistent naming of metadata-related model information.
As ever: questions, comments and improvements welcome.
Have fun with HAnim + X3D! 😀👍
all the best, Don (and Joe)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250722/a3255842/attachment-0001.html>
More information about the x3d-public
mailing list