[x3d-public] announce: HAnim Bones model collection is now upgraded and available
John Carlson
yottzumm at gmail.com
Tue Mar 17 17:25:42 PDT 2026
Terrific work renaming Don. I think we may need HAnimHumanoid, HAnimJoints
and HAnimSegments, to complete the work. Happy to help with that, but I
will likely use AI/LLM. I can also provide preliminary joints here,
subject to more review, and renaming of .x3d urls if you have a list of
file names to rename the existing urls to.
medicalbones/0scaled/0skeleton1AImapped.x3d at main ·
coderextreme/medicalbones
<https://github.com/coderextreme/medicalbones/blob/main/0scaled/0skeleton1AImapped.x3d>
I prepared meiotic joints to try to fix the doppelganger issue in my .x3d
to .glb problem, but probably made it worse, that has been fixed, so it
might be important to revisit if we need dual joints in actuality.
Humanoid/Medical/AnimatedAssembledHumanSkeleton.x3d offers
complementary work, of course.
On Tue, Mar 17, 2026 at 6: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/20260317/01f04a39/attachment-0001.html>
More information about the x3d-public
mailing list