[x3d-public] announce: HAnim Bones model collection is now upgraded and available
Don Brutzman
don.brutzman at gmail.com
Mon Apr 6 13:05:56 PDT 2026
We now have a recovered example of skin mesh:
- Joe shared an earlier model that was humongous (over 50,000
coordinate x-y-z values and over 50,000 color r-g-b values)... using
X3D-Edt global search and replace for some values (with sixteen digits of
precision, mostly imperceptible) and some node-editing panes, I was able to
reduce precision to 4 digits after decimal place. Now sharable, still with
same number of coordinates and colors
- Humanoid Animation X3D Examples Archive, Medical, Body Skin Indexed
Face Set NISTcolors
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTcolorsIndex.html>
- Joe D. Williams applied colors to this large mesh, helping to identify
different sections
- Screenshots from browser rendering using X_ITE
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTcolorsIndex.html
[image: image.png]
The original example is a single giant mesh so the structures (including
eyeballs) are not very extractable. Perhaps someday we will have the
capability to assign vertex indices to a set of HAnimJoint nodes in an
HAnimHumanoid for animation. Plain mesh also available:
- X3D Example Archives: Humanoid Animation, Medical, Body Skin Indexed
Face Set NIST
- Human body skin made of IndexedFaceSet polygons, gender neutral,
semi-transparent for use with MedicalMetadata and MedicalMetadataViewer.x3d.
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical/BodySkinIndexedFaceSetNISTIndex.html
[image: image.png]
Further progress on LOA5:
Have implemented all bones in LOA5 using Inline nodes. Have similarly
animated implemented all bones in LOA5 using InlineGeometry nodes, with
careful work continuing to recenter/translate each of those meshes.
- X3D Example Archives: Humanoid Animation, Bones, All Bones LOA 5
Skeletons
- Two HAnim LOA4 skeletons that integrate all bones using HAnimJoint and
HAnimSegment nodes, composing either external models or individual
meshes. Left-side HAnimHumanoid skeleton created with Inline nodes where
translation, center, Appearance, and Material values are defined in each
external model. Right-side HAnimHumanoid skeleton shows InlineGeometry
loading of meshes, with alternate translation, center, Appearance and
Material values defined locally. All units are in meters.
- <meta name='* warning *' content='* work in progress *'/> (recentering
bones one at a time in right-hand blue mesh skeleton)
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/AllBonesLOA5SkeletonsIndex.html
- Original HAnimHumanoid model JinLOA4 also shown for height and size
comparison.
[image: image.png]
The HAnim draft specification received some small revisions for precision
to match this implementation + evaluation effort. The key point for adding
LOA-5 is that we can include all bones and relevant cartilage, plus further
head-related features (e.g. ears, tongue, etc.) to align with emerging work
on avatar commonality by Metaverse Standards Forum (MSF). Given the
excellent progress, we will discuss correctness/completeness and elevation
of several sections from Editors Note to Prose.
- HAnim Architecture draft v2.1, claus 4 Concepts, 4.11.6.6 LOA‑5
hierarchy
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5>
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy5
Many thanks to Michalis Kamburelis for implementing InlineGeometry node,
which gives us another browser for testing. Super helpful complement to
the already-excellent Sunrize X_ITE tool as well.
[image: image.png]
Many thanks to Joe Williams for close work together on design and
implementation of these highly detailed models.
Have fun with HAnim and X3D! 😀 👉 🚶🏿♂️
all the best, Don
--
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting https://RelativeMotion.info
On Tue, Mar 17, 2026 at 4:00 PM Don Brutzman <don.brutzman at gmail.com> wrote:
> Summary: we now have nearly every bone in the human body easily available.
>
> Several weeks of careful refinements and fine-tuning are now complete,
> including rename of directory name (from Skeleton to Bones) since
> everything in there is a collection of bones. Further touchup questions
> comments are always welcome.
>
> - X3D Example Archives: Humanoid Animation, Bones (279 models total)
> - https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones
>
> The Bones example models are simple geometric shapes of bones and
> cartilage, with no HAnim structural nodes included. They are suitable for
> composition and reuse in HAnim models by loading via either Inline or
> InlineGeometry nodes.
>
> These models are improved versions of Shape geometry found in the originals
> subdirectory
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/index.html> with
> naming changes recorded in CHANGELOG.md
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/CHANGELOG.md>
> .
>
> These examples were first published in X3D Example Archives: Basic,
> Medical <https://www.web3d.org/x3d/content/examples/Basic/Medical> and
> support the work of the Web3D Humanoid Animation (HAnim) Working Group
> <https://www.web3d.org/working-groups/hanim>.
>
> The majority of these bones are connected to animatable joints and can be
> found, with the same names, in HAnim Level of Articulation (LOA)-4, defined
> at Humanoid Animation (HAnim) Architecture specification draft version
> 4.1, clause 4 Concepts, section 4.11.6.5 LOA‑4 hierarchy
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy4>.
> Of future note: a number of models listed here (such as teeth and
> cartilage) might someday get added to the HAnim Specification in a new
> section defining LOA-5.
>
> TODO: rename cartilage models; continue adding models for LOA-4 segments
> that are combinations of bones. Missing: c1disc.x3d r_patella.x3d
> l_patella.x3d l_tarsal_distal_phalanx_5.x3d l_carpal.x3d r_carpal.x3d.
> There are also nice native-X3D user interface within each individual bone
> that allows simple in-depth exploration of large collections.
>
> - TouchSensor selection isOver: display bone name as tooltip, show a
> scoped blue light highlighting the Shape of interest
> - TouchSensor selection isActive: bind a hidden Viewpoint providing a
> close-up view of selected bone or tooth
>
> Based on group discussion, we collected cap and root for each tooth
> together and renamed each according to functionality plus ID numbers from
> both U.S. UNS and international ISO standards. You can view the top row of
> teeth as part of the skull model, and bottom teeth as part of the jaw.x3d
> model.
>
> - jaw.x3d
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/jawX_ITE.html> for
> lower row of teeth, and skull.x3d
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/skullX_ITE.html>
> for upper row of teeth
> -
> https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg
>
> So.... we do not need to copy/paste large geometry shapes anymore when a
> bone is needed. Continuing work will begin streamlining a number of
> skeleton models in the archives, first using Inline and then InlineGeometry
> to dem bones.
>
> This excellent asset is ready for re-use. Again thanks for all
> contributions to this collected asset over the past 12 years, especially
> Joe Williams, John Carlson and Damon Hernandez.
>
> Have fun with HAnim and X3D! 😀 🦴 🩻
>
> all the best, Don
> --
> X3D Graphics, Maritime Robotics, Distributed Simulation
> Relative Motion Consulting https://RelativeMotion.info
>
> p.s. the initial work-in-progress message follows, with corrected
> directory name applied.
>
> On Mon, Mar 9, 2026 at 2:12 PM Don Brutzman <don.brutzman at gmail.com>
> wrote:
>
>> I have done a ton of work on the bone models, with excellent results so
>> far. Thanks Joe for keeping a close eye on this heavy lifting!
>>
>> Perhaps half of the nearly 300 models have been renamed to match the
>> HAnim segment names. Example: loscoxae.x3d renamed to l_hip.x3d
>>
>> Updated build is now available at
>>
>> - X3D Example Archives: Humanoid Animation, Bones
>> - https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones
>>
>> The Skeleton examples are simple geometric shapes of bones and cartilage,
>>> with no HAnim structural nodes included. They are suitable for composition
>>> and reuse in HAnim models by loading via either Inline or InlineGeometry
>>> nodes.
>>>
>>> These models are improved versions of Shape geometry found in the originals
>>> subdirectory
>>> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/index.html> with
>>> naming changes recorded in CHANGELOG.md
>>> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/originals/CHANGELOG.md>
>>> .
>>>
>> Am keen to show multiple improvements afternoon on our group call.
>>
>> - Renamed models for consistency with HAnim specification, retaining
>> all originals unmodified
>> - Consistent reuse is possible with Inline, gaining TouchSensor
>> identification and possibly other features
>> - Alternative reuse is also possible using InlineGeometry, solely
>> retrieving geometry mesh
>>
>> *Current design approach for model retrieval*, which we can continue to
>> use:
>>
>> - HAnimHumanoid
>> - HAnimJoint
>> - HAnimSegment
>> - *Inline* HumanoidAnimation/Bones/c1.x3d
>>
>> Aside from teeth and cartilage, which still need normalization, the names
>> are pretty stable now. Thus we can begin updating our various skeleton
>> models, and avoid error-prone copying of large blocks of geometry in the
>> future.
>>
>> Now let's look at the scene-graph pattern within the models themselves.
>> Inside each model is the structure
>>
>> - WorldInfo title="c1.x3d"
>> - TouchSensor description="c1"
>> - Transform DEF="c1"
>> - Shape
>> - Appearance
>> - Material DEF="BoneMaterial" (or CartilageMaterial or
>> ToothMaterial) ...
>> - IndexedFaceSet DEF="c1_geometry"
>> - Coordinate DEF="c1_coordinate"
>> - # these coordinates are high in the air for a particular
>> human
>>
>> Next... am thinking we might further center the geometry in these models
>> by moving the offset values currently contained in the Coordinate values,
>> without breaking the essential HAnim design requirements.
>>
>> Possible, compatible alternative design for models:
>>
>> - WorldInfo title="c1.x3d"
>> - TouchSensor description="c1"
>> - Transform DEF="c1" translation="offset values x, y, z"
>> - # translate this model Shape back by adding offset values, high
>> in the air for a particular human
>> - Viewpoint description="c1" position="appropriate local viewing
>> offset"
>> - Shape
>> - Appearance
>> - Material DEF="BoneMaterial" ...
>> - IndexedFaceSet DEF="c1_geometry"
>> - Coordinate DEF="c1_coordinate"
>> - # these coordinate values have offset values subtracted,
>> thus centered around local origin
>>
>> This modification would let our current model-reuse approach continue
>> without change.
>>
>> These models are primarily individual bones, such as each part of the
>> head, or caps & roots of each tooth.
>>
>
> (these Transform adjustments were subsequently computed and applied.)
>
>
>> Joe and I will work on composite examples, for example chest.x3d and
>> skull.x3d. Here are two initial composite examples which we have reviewed:
>>
>> - X3D Example Archives: Humanoid Animation, Skeleton, teeth Bottom
>> Row Comparison
>> - bottom row of teeth caps and roots, comparing Inline model loading
>> (on left) to duplicative copies of rescaled geometry used previously (on
>> right)
>> -
>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethBottomRowComparisonIndex.html
>>
>> and
>>
>> - X3D Example Archives: Humanoid Animation, Skeleton, teeth Top Row
>> Comparison
>> - top row of teeth, comparing Inline model loading (on left) to
>> duplicative copies of rescaled geometry used previously (on right)
>> -
>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/teethTopRowComparisonIndex.html
>>
>> Meanwhile, and perhaps significantly at some future point this
>> modification will also allow other HAnimHumanoid models to use
>> InlineGeometry to position the model where they want inside an
>> HAnimSegment. This means that even-more advanced HAnimHumanoid models of
>> different sizes might easily re-use these model assets.
>>
>> *Potential compatible additional future approach for model retrieval:*
>>
>> - HAnimHumanoid
>> - HAnimJoint
>> - HAnimSegment
>> - Transform # position, scale for current human's dimensions
>> - Shape
>> - Appearance
>> - *InlineGeometry *HumanoidAnimation/Skeleton/c1.x3d#
>> c1_geometry (which is centered at local origin)
>>
>> or maybe even moving values into HAnimJoint - that will be a good
>> experiment.
>>
>> Evolution for group discussion:
>>
>> 1. Does anyone know of preferable standard naming/numbering for
>> teeth? Several schemes are out there.
>> 2. Adding segment (bone) diagrams to the HAnim specification will be
>> useful.
>> 3. We might also consider defining an LOA-5 for teeth and cartilage,
>> since (very) slight animation for those is possible too.
>>
>> So, it is an interesting and steady progression of possible HAnim
>> capability. Happy to discuss when convenient,.
>>
>> We are making excellent progress, I think. Looking forward to
>> demonstrations today, thanks for considering the possibilities.
>>
>> Have fun with the HAnim skeleton! 😃 🦴 🩻
>>
>> all the best, Don
>> --
>> X3D Graphics, Maritime Robotics, Distributed Simulation
>> Relative Motion Consulting https://RelativeMotion.info
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260406/dbf707d4/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 137747 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260406/dbf707d4/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 29138 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260406/dbf707d4/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 65120 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260406/dbf707d4/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 460464 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260406/dbf707d4/attachment-0007.png>
More information about the x3d-public
mailing list