[x3d-public] HAnim agenda, Monday 8 DEC 2025, 1600 pacific: Latin, vc7:c7 in LOA2, LOA and partial figure definitions, joint parents table
Don Brutzman
don.brutzman at gmail.com
Tue Dec 9 10:44:43 PST 2025
[cc: x3d-public]
Monday 1600-1745 8 DEC 2025. Attendees Carol, Cheryl, Katy, Joe, Aaron,
Don. Regrets Dick.
We had another excellent meeting yesterday, getting through the entire
agenda (improving draft HAnim specification prose) and then some.
Discussion summaries are next, detailed agenda follows as attached email.
Carol identified Daz3D as a popular tool with many capabilities. They
offer both free and paid versions of their software under a commercial
license. They are also careful to distinguish between software and 3D
models by a Published Author (PA), separately or in their online store.
Their license also pays attention to physical copies of virtual 3D models
that are produced using 3D printing (aka additive manufacturing AM) or
Computer Numerical Control (CNC) (aka subtractive manufacturing).
- Daz3D, world's most versatile Genesis character creator
- The integrated character creation system in our free 3D software forms
the cornerstone of Daz’s ecosystem
- https://www.daz3d.com
We had an excellent discussion about adding synonym names in Latin to
continue building potential usage of HAnim models in a medical context.
Cheryl's medical expertise is very helpful for clarifying our
understanding. Continuing work expected.
Carol showed her work in Rhino3D to create a curved spine for the Jin
model. Very clear, impressive progress!
She showed a mesh Poncho that had three versions: initial/flat, midpoint
bending while draping, final draped over shoulder. These should be easily
adapted into an animation. Here is a quite-similar example for that
technique:
- X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 07 Event
Animation Interpolation, Dolphin Morpher
- Morph coordinates for smooth animation between 3 different dolphin
poses using CoordinateInterpolator.
-
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/DolphinMorpherIndex.html
- individual 3 poses follow as DolphinPose01.x3d DolphinPose02.x3d
and DolphinPose03.x3d
- The technique is pretty simple, copy the three sets of point values in
three Coordinate nodes to create a CoordinateInterpolator node, which is
then a simple source of smooth animation for the mesh.
- Animation design for this example:
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorScalarInterpolatorFilterDiagram.png
- 10-step animation design process:
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/Chapter07-EventAnimationInterpolation.10StepAnimationDesignProcess.pdf
- X3D model documentation, Event Graph ROUTE Table shows event
connections
-
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/DolphinMorpher.html#EventGraph
- [image: image.png]
Carol also showed a side-view cross-section comparison of the original
(mostly straight) Jin spine, plus a second curved Jin spine. When ready,
this will be an excellent example to add to HAnim Example Archives. Am
thinking there are two ways to do this, and probably both are important to
pursue for this important example. Something like:
a. *JinSpineCurved.x3d *HAnimHumanoid *skeleton *field replaced
with the curved-spine coordinates,
b. *JinSpineOffsetBinding.x3d *HAnimHumanoid *skeleton *field containing
the original curved-spine coordinates, then compute offsets and add
*jointBindingPositions
*for the curved-spine corrections. This can adapt a reusable model (such
as Jin) to a person's individual posture.
I don't think we have a good example using HAnimHumanoid
*jointBindingPositions* so these would be great additions. For
specification details on functionality see
- X3D Tooltips, HAnimHumanoid
- https://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid
- X3D Architecture, draft v4.1, clause 26 Humanoid animation, 26.3.2
HAnimHumanoid
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/components/hanim.html#HAnimHumanoid
- HAnim Architecture, draft 2.1, clause 6 Object interfaces, 6.3 Humanoid
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Humanoid
We finished up with scrutiny and adjustments to Site object general
definitions, reflecting the larger role expected for Site nodes. I made
the ordering and prose consistent for the following Site sections, this is
a good topic for repeated review next week.
- HAnim Architecture, draft 2.1, clause 4 Concepts, 4.8 Site object
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#SegmentObject
- HAnim Architecture, draft 2.1, clause 6 Object interfaces, 6.7 Site
-
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Site
Everything else in the agenda seemed pretty agreeable. As usual we made a
number of specification adjustments and clarifications as we proceeded.
Am expecting to see our emphasis of activity increasingly shift towards
implementation and evaluation of HAnim by building even more X3D example
models.
All scrutiny, examples and feedback are always welcome.
Have fun with HAnim and X3D! 😀
all the best, Don
--
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting https://RelativeMotion.info
On Sun, Dec 7, 2025 at 7:28 PM Don Brutzman <don.brutzman at gmail.com> wrote:
> Lots of interesting work is progressing!
>
> 0. *Latin*. As Carol mentioned last week, Cheryl thinks that adding
> Latin-language synonyms for each Joint and Segment names can aid our
> ability to cross reference precisely using medical terminology. We have
> figured out a number of cool references and how to add them to X3DUOM.
>
> - AnatoNomina
> - http://terminologia-anatomica.org/en (note http vice https)
> - http://terminologia-anatomica.org/en/Terms/Occurence/1455 for Sternoclavicular
> joint
> - Suprahyoid and infrahyoid neck muscles
> <http://terminologia-anatomica.org/en/ImageSet/ViewSet/2287?imageId=755&imageAnnotationId=24324&mobile=false>
>
> also wikipedia and wikidata have a lot of excellent reference links,
> including to Semantic Web RDF.
>
> - NIH MeSH https://meshb.nlm.nih.gov/record/ui?ui=D013247
>
>
> - TA98 Entity Page, English, articulatio sternoclavicularis
> -
> https://ifaa.unifr.ch/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/03.5.04.001%20Entity%20TA98%20EN.htm
>
>
> - TA2 Viewer
> - https://ta2viewer.openanatomy.org/?id=1750
>
>
> - Wikidata: sternoclavicular articulation (Q640022) includes alternate
> human languages, Gray's Anatomy images
> - https://www.wikidata.org/wiki/Q640022
>
> We have an abundance of riches available to guide our correctly aligning
> with medical references! 😀👍
>
>
> 1. * Addition of vc7 : c7 joint:segment pair to LOA-2.*
>
> Following up on some interesting review comments by Cheryl and Carol, Joe
> noticed an important discrepancy between LOA-2 and LOA-3/4. LOA-2 was
> missing joint:segment objects vc7 : c7, which broke our HAnim design
> requirement to have each skeleton subgraph a consistent, strict subset of
> greater LOAs (specifically "all LOA-2 joints and segments are included in
> an LOA-3 model"). This is an important animation discrepancy to find!
>
> We've added vc7 : c7 to the LOA-2 tree diagram. This looks to be an
> important correction that does not break any previously existing HAnim
> LOA-2 models.
>
> - Humanoid Animation (HAnim) Architecture v2.1 draft, clause 4
> Concepts, 4.11.6.3 LOA‑2 hierarchy
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Hierarchy2
>
> vl5 : l5
> vl3 : l3
> vl1 : l1
> vt10 : t10
> vt6 : t6
> vt1 : t1
> vc7 : c7
> | vc4 : c4
> | vc2 : c2
> | skullbase : skull
> l_sternoclavicular : l_clavicle
> | l_acromioclavicular : l_scapula
> | l_shoulder : l_upperarm
> | l_elbow : l_forearm
> | l_radiocarpal : l_carpal
>
> This change will require simple updates to several of our validation tools
> and tables - am rechecking.
>
> Let's review this on Monday. If agreed upon, then *Myeong *we are hoping
> you might update the corresponding figure.
>
> - Figure 4.6 4.5 — LOA‑2 joints, for additional information see Figure 4.10.5
> Levels of Articulation (LOA)
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#LevelsOfArticulation>
> (Editors note: Myeong please add vc7 to the corresponding drawing)
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA2Joints
>
> [image: image.png]
>
>
> 2. *Improved LOA definitions.*
>
> Discussions over the past few weeks have continued to bring our
> understanding of LOA into better focus. I have applied some editorial
> improvements, and request review. Getting clear on goals for each LOA
> helps us decide whether some joint-segment pairs can be added to the lesser
> LOAs, leaving LOA-4 unchanged.
>
> - Humanoid Animation (HAnim) Architecture v2.1 draft, clause 4
> Concepts, 4.10.5 Levels of articulation (LOA)
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#LevelsOfArticulation
>
> 4.10.5 Levels of articulation (LOA) 4.8.5
>
> Level of articulation (LOA) represents the complexity and detail of joints that
> make up for a humanoid skeletal hierarchy. The skeletal hierarchy can be
> used for generating various joint motions based on the joints and is also
> the basis for animating meshes that represent the skin.
>
> Defining the LOA for a given humanoid is useful for sharing interoperable
> animations. The humanoid_root Joint object is always required for every
> LOA, so that the location and direction of any Humanoid can be moved
> consistently within a scene.
>
> Each LOA is a strict subset of the next LOA. This means that
>
> - the LOA-0 definition has a single joint and segment included in all
> greater LOA models,
> - all LOA-1 joints and segments are included in an LOA-2 model,
> - all LOA-2 joints and segments are included in an LOA-3 model,
> - all LOA-3 joints and segments are included in an LOA-4 model, and
> - an LOA-4 model contains all joints and segments (primarily adding
> hands and feet).
>
> There are five defined levels of articulation. Since each lesser LOA
> remains a strict subset of the greater LOAs, animations for lesser LOAs
> also work as satisfactory animations for greater LOAs. Above LOA-0, each
> segment typically has a corresponding parent joint in the hierarchy.
>
> - *LOA‑0* consists of 1 joint and 1 segment (see Figure 4.4
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA0Joint>
> and Figure 4.11
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-BasicSetJointHierarchy0>).
> LOA‑0 represents only the humanoid_root Joint object with a single
> sacrum segment and no accompanying hierarchy. , as shown in (Figure 4.4
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA0Joint>
> ).
> - *LOA‑1* consists of up to 18 joints and 18 segments (see Figure 4.5
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA1Joints>
> and Figure 4.12
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-BasicSetJointHierarchy1>).
> LOA-1 represents the simplest specified organization and hierarchy of
> joints for a humanoid. Each segment has a joint in the hierarchy. Figure
> 4.5
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA1Joints>
> represents LOA‑1 joints.
> - *LOA‑2* consists of up to 72 joints and 72 segments (see Figure 4.6
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA2Joints>
> and Figure 4.13
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-BasicSetJointHierarchy2>
> ).
> - *LOA‑3* consists of up to 94 joints and 94 segments (see Figure 4.7
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA3Joints>
> and Figure 4.14
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-BasicSetJointHierarchy3>
> ).
> - *LOA‑4* consists of up to 146 148 joints and 146 148 segments. LOA‑4 builds
> on LOA‑3 by adding anatomical details of hands and feet (see Figure 4.8
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-LOA4Joints>
> and Figure 4.15
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#f-BasicSetJointHierarchy4>
> ). Hands Hand joints and feet joints for LOA‑4 are illustrated in
> Figure 4.10.3
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#TheHands>
> and Figure 4.10.4
> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#TheFeet>
> respectively.
>
> Animation interoperability is a key design goal of LOA representations,
> where animations for lesser LOAs can work correctly for humanoids at
> greater LOAs. Some of the predefined joints for a given LOA might be
> omitted, while additional joints might be included in the given model, and
> so animation for missing (or added) joints might be ignored without effect.
> Inclusion of child Segment objects is always optional. Animations for
> greater LOAs can work for humanoid models at lesser LOAs, if the correct
> joints are found. Unused animation events intended for undefined Joint objects
> may be ignored without run-time errors.
>
> TODO. Specification editors are considering how to best list descriptions
> of typical usage for each LOA, in order to better communicate the
> functionality of LOA use cases.
>
> General functional descriptions for each LOA are defined as follows.
>
> - *LOA-0 purpose*. Humanoid location and direction,
> - *LOA-1 purpose*. Simple animation and poses,
> - *LOA-2 purpose*. Everyday motion and sports,
> - *LOA-3 purpose*. Clothing and apparel plus an individual's body
> posture,
> - *LOA-4 purpose*. Anatomically correct human skeleton that includes
> all movable joints, suitable for medical applications.
>
> TODO. Specification editors and the HAnim Working Group are willing to
> consider inclusion or removal of already-defined joints in the lesser LOAs,
> in order to better support modeling of clothing. Adjustments have potential
> to encourage interoperable animation with other specifications, such as
> IEEE 3DBP requirements as well as Character and Avatar practices under
> consideration by Metaverse Standards Forum (MSF).
>
> TODO. Facial expressions are expected to be defined separately as part of
> a set of definitions using Facial Action Coding System (FACS)
> <https://en.wikipedia.org/wiki/Facial_Action_Coding_System>.
>
> 3. *Partial Human Figures update*
>
> Have revised the following section, now simpler and able to work
> compatibly across different LOAs. Review and comment please.
>
> - 4.10.6 Partial HAnim figures
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#PartialHAnimFigures
>
> 4.10.6 Partial HAnim figures 4.8.6
>
> Modelling of partial figures (e.g., a limb or internal skeletal
> structure) is accomplished by listing no joints (e.g., an arm or leg) is
> supported by using empty joints between the humanoid_root Joint object
> *humanoidRoot* and the first joint to be modelled. This approach permits
> integration of the partial figure at the correct location within a parent
> Humanoid object of arbitrary LOA.
>
> EXAMPLE If providing a partial model that consists of a head, starting
> at the skullbase Joint object, a hierarchy such as the following meets
> all relationship rules compatibly with all LOAs. but can be used to
> display only the head:
>
> humanoid_root : sacrum
> skullbase : skull
> humanoidRoot : sacrum
> vc3 : c3
> vc2 : c2
> vc1 : c1
> skullbase : skull
>
> For this example case the geometry can be such that the listed
> humanoid_root Joint object humanoidRoot is simply a reference object. dummy
> object, not being drawn. The skullbase : skull joint and segment can then
> be correctly composed within the parent Humanoid object *skeleton* tree,
> attached at the correct location in the skeletal hierarchy. The remaining
> joints and segments then follow within the example skullbase Joint object,
> providing desired structures and values for the head and facial models.
>
> Transforms can modify the translations so that the vc3 : c3 vertebrae is
> at 0 height. The rest then follow with default values for the head/facial
> portion.
>
> Editors note: These changes for partial HAnim models are intended to allow
> correct integration of partial figures with any LOA. It assumes that a
> browser will insert the topmost joint at the correct location corresponding
> to the given LOA. Careful editorial review needs to confirm correctness of
> the preceding important change. Once ready, circulate proposed prose
> broadly for comment and establishing consensus.
>
> Editors note, possible TODO: We have not described all details about
> collecting multiple partial figures together into a single Humanoid. This
> is not necessarily a requirement for the HAnim Architecture, but might be
> interesting to consider.
>
> *4. Work in progress: * *new table for Joint parent relationships at each
> LOA. *
>
> I've created the following table, likely insertable as Appendix C of the
> specification. Thank you Joe for steady help checking correctness.
>
> - HAnim2JointParentsLoaTable.html
> -
> https://x3d-code/www.web3d.org/x3d/stylesheets/HAnim2JointParentsLoaTable.html
> - Cells with a greenyellow background indicates that the row has been
> checked against all specification LOA tables.
>
> HAnim2JointParentsLoaTable.html
>
> This table shows parent-child relationships between all Joint objects for
> all LOAs, providing an alternate view for relationships already defined in 4.
> Concepts <http://concepts.html>.
>
> This table is a candidate for inclusion as a new Annex C (informative) in
> the HAnim Architecture draft v2.1.
>
> This table can help authors checking skeleton hierarchies, and also
> reflects how strong validation rules can precisely confirm parent-child
> Joint correctness for each LOA.
>
> Latest draft version available at
> https://www.web3d.org/x3d/stylesheets/HAnim2JointParentsLoaTable.html
>
> Color key:
>
> - Cells with a greenyellow background indicates that the row has been
> checked against all specification LOA tables.
> - Cells with a lightgrey background indicates a lower LOA value than
> the joint for that row.
> - An empty cell entry indicates that next parent Joint to right (in
> lower LOA column) is appropriate.
>
> Index Joint name, LOA LOA-4
> parent Joint LOA-3
> parent Joint LOA-2
> parent Joint LOA-1
> parent Joint LOA-0
> parent Joint
> 1 humanoid_root 0 none
> 2 sacroiliac 1 humanoid_root (loa=0) humanoid_root
> 3 l_hip 1 sacroiliac (loa=1) sacroiliac humanoid_root
> 4 l_knee 1 l_hip (loa=1) l_hip humanoid_root
> 5 l_talocrural 1 l_knee (loa=1) l_knee humanoid_root
> 6 l_talocalcaneonavicular 4 l_talocrural (loa=1) l_talocrural
> humanoid_root
>
> 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/20251209/8f323454/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 469525 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20251209/8f323454/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 216504 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20251209/8f323454/attachment-0003.png>
More information about the x3d-public
mailing list