[x3d-public] HAnim2 LOA4 Hierarchy from X3DUOM

John Carlson yottzumm at gmail.com
Sun Jan 29 00:28:37 PST 2023


While mentions of tree and parent/child relationships are good, there are
other possible data structures beyond trees with "no loops."  Like directed
acyclic graphs and hierarchies

But here's the standard:

https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/concepts.html#SkeletalHierarchy

The skeletal description of the HAnim figure consists of a tree of
Joint objects
that define the transformations from the humanoid_root Joint to the end
effector of each appendage of the humanoid. The only requirement of this
document for the definition of the skeletal hierarchy is that it shall have
a humanoid_root Joint object defined. All of the other Joint objects are
optional and are not required for a humanoid figure to be HAnim compliant.
It is expected that most HAnim figures have many more joints defined than
the required humanoid_root.

I was confused where "tree" came from for a long time, and then I realized
it's right there in the standard.

Thanks for clearing up the confusion, Don.   Are you on board, Joe?

John

On Sun, Jan 29, 2023 at 12:50 AM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> John, it is definitely helpful to know that every X3D scene has a tree
> structure and thus contains no loops.
>
>
>
>    - Wikipedia Tree (data structure)
>    - https://en.wikipedia.org/wiki/Tree_(data_structure)
>
>
>
> So each node only has one parent, and perhaps multiple ancestors in a
> straight line above that (each with only one parent).
>
>
>
> These kinds of relationships and constraints can appear in many ways
> outside of X3D.  Also interesting:
>
>
>
>    - Wikipedia: Tree structure
>    - https://en.wikipedia.org/wiki/Tree_structure
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, Navy robotics https://
> faculty.nps.edu/brutzman
>
>
>
> *From:* John Carlson <yottzumm at gmail.com>
> *Sent:* Saturday, January 28, 2023 10:18 PM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
> *Cc:* Joseph D Williams <joedwil at earthlink.net>; X3D Graphics public
> mailing list <x3d-public at web3d.org>
> *Subject:* Re: HAnim2 LOA4 Hierarchy from X3DUOM
>
>
>
> NPS WARNING: *external sender* verify before acting.
>
>
>
> Make that 2 USE and 1 DEF.
>
>
>
> Ugh, i fall into confusion now.
>
>
>
> The parents have different names and the child has 1 DEF and 2 USE.
>
>
>
> Sorry!
>
>
>
> John
>
>
>
> On Sun, Jan 29, 2023 at 12:09 AM John Carlson <yottzumm at gmail.com> wrote:
>
> Actually I haven’t checked my code for “several parent” issues yet.  I
> have no idea what several parents would look like, except for 3 USE/1 DEF
> nodes with same name field value.  I’m pretty sure this only applies to
> LOA4—we don’t have a lot of LOA4 examples of yet.
>
>
>
> If this is not yet included in your tools, that would be helpful to check.
>
>
>
> I hope we haven’t lost this info!
>
>
>
> It’s my recollection that this occurred in either the hands or feet.
>
>
>
> John
>
>
>
> I made a couple of changes from previous mail, below, sorry for confusion.
>
>
>
> On Sat, Jan 28, 2023 at 11:45 PM John Carlson <yottzumm at gmail.com> wrote:
>
> It’s also useful to recall that a couple of parts of the skeleton have
> multiple parents (with the root as topmost parent), which I have yet to
> include, FYI.   More details would be welcome!
>
>
>
> John
>
>
>
> On Sat, Jan 28, 2023 at 3:19 PM Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu> wrote:
>
> As part of followup actions from yesterday’s three specific parent-child
> relationship corrections, am now autogenerating the following table using
> X3DUOM.  It should match the international-standard hand-generated HAnim2
> specification for LOA-4 Hierarchy.
>
>
>
> Spot check:
>
>    1. Joint vl5 has parent humanoid_root
>    2. Joint l_sternoclavicular has parent vt1
>    3. Joint r_sternoclavicular has parent vt1
>
>
>
> Am hoping that someone can check that *everything* matches correctly --
> hey, this should match your body too!  Any remaining parent-child
> relationship errors that are similar to yesterday’s errors should stand
> out.  All corrections are most welcome.
>
>
>
> This is another great confirmation test to continue improving our
> confidence when producing and diagnosing the correctness of HAnim models.
> The autogeneration stylesheet and these results are all checked into
> version control, and they are now part of our production chain for X3D4
> validation.  I will continue work on various other autogenerated
> diagnostics (X3D Schematron, X3D Validator, X3D-Edit etc.) and report when
> everything is ready.
>
>
>
> Thanks again to Joe and John for dogged persistence tracking down the
> errors in the first place.  Essential work.
>
>
>
> Have fun with HAnim and X3D!  8)
>
>
>
>
>
> HAnim2 LOA4 Hierarchy from X3DUOM
>
> https://www.web3d.org/x3d/stylesheets/HAnimLOA4HierarchyTable.txt
>
>
>
> Authoritative reference: HAnim version 2, Part 1: Humanoid animation
> (HAnim) architecture,
>
>   clause 4 Concepts, section 4.9.6.4 LOA‑4 hierarchy
>
>
> https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy4
>
>   clause 4 Concepts, Figure 4.7 — LOA‑4 joints
>
>
> https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#f-LOA4Joints
>
>
>
> humanoid_root : sacrum
>
>   sacroiliac : pelvis
>
>   | l_hip : l_thigh
>
>   | | l_knee : l_calf
>
>   | |   l_talocrural : l_talus
>
>   | |     l_talocalcaneonavicular : l_navicular
>
>   | |     | l_cuneonavicular_1 : l_cuneiform_1
>
>   | |     | | l_tarsometatarsal_1 : l_metatarsal_1
>
>   | |     | |   l_metatarsophalangeal_1 : l_tarsal_proximal_phalanx_1
>
>   | |     | |     l_tarsal_interphalangeal_1 : l_tarsal_distal_phalanx_1
>
>   | |     | l_cuneonavicular_2 : l_cuneiform_2
>
>   | |     | | l_tarsometatarsal_2 : l_metatarsal_2
>
>   | |     | |   l_metatarsophalangeal_2 : l_tarsal_proximal_phalanx_2
>
>   | |     | |     l_tarsal_proximal_interphalangeal_2 :
> l_tarsal_middle_phalanx_2
>
>   | |     | |       l_tarsal_distal_interphalangeal_2 :
> l_tarsal_distal_phalanx_2
>
>   | |     | l_cuneonavicular_3 : l_cuneiform_3
>
>   | |     |   l_tarsometatarsal_3 : l_metatarsal_3
>
>   | |     |     l_metatarsophalangeal_3 : l_tarsal_proximal_phalanx_3
>
>   | |     |       l_tarsal_proximal_interphalangeal_3 :
> l_tarsal_middle_phalanx_3
>
>   | |     |         l_tarsal_distal_interphalangeal_3 :
> l_tarsal_distal_phalanx_3
>
>   | |     l_calcaneocuboid : l_calcaneus
>
>   | |       l_transversetarsal : l_cuboid
>
>   | |         l_tarsometatarsal_4 : l_metatarsal_4
>
>   | |         | l_metatarsophalangeal_4 : l_tarsal_proximal_phalanx_4
>
>   | |         |   l_tarsal_proximal_interphalangeal_4 :
> l_tarsal_middle_phalanx_4
>
>   | |         |     l_tarsal_distal_interphalangeal_4 :
> l_tarsal_distal_phalanx_4
>
>   | |         l_tarsometatarsal_5 : l_metatarsal_5
>
>   | |           l_metatarsophalangeal_5 : l_tarsal_proximal_phalanx_5
>
>   | |             l_tarsal_proximal_interphalangeal_5 :
> l_tarsal_middle_phalanx_5
>
>   | |               l_tarsal_distal_interphalangeal_5 :
> l_tarsal_distal_phalanx_5
>
>   | r_hip : r_thigh
>
>   |   r_knee : r_calf
>
>   |     r_talocrural : r_talus
>
>   |       r_talocalcaneonavicular : r_navicular
>
>   |       | r_cuneonavicular_1 : r_cuneiform_1
>
>   |       | | r_tarsometatarsal_1 : r_metatarsal_1
>
>   |       | |   r_metatarsophalangeal_1 : r_tarsal_proximal_phalanx_1
>
>   |       | |     r_tarsal_interphalangeal_1 : r_tarsal_distal_phalanx_1
>
>   |       | r_cuneonavicular_2 : r_cuneiform_2
>
>   |       | | r_tarsometatarsal_2 : r_metatarsal_2
>
>   |       | |   r_metatarsophalangeal_2 : r_tarsal_proximal_phalanx_2
>
>   |       | |     r_tarsal_proximal_interphalangeal_2 :
> r_tarsal_middle_phalanx_2
>
>   |       | |       r_tarsal_distal_interphalangeal_2 :
> r_tarsal_distal_phalanx_2
>
>   |       | r_cuneonavicular_3 : r_cuneiform_3
>
>   |       |   r_tarsometatarsal_3 : r_metatarsal_3
>
>   |       |     r_metatarsophalangeal_3 : r_tarsal_proximal_phalanx_3
>
>   |       |       r_tarsal_proximal_interphalangeal_3 :
> r_tarsal_middle_phalanx_3
>
>   |       |         r_tarsal_distal_interphalangeal_3 :
> r_tarsal_distal_phalanx_3
>
>   |       r_calcaneocuboid : r_calcaneus
>
>   |         r_transversetarsal : r_cuboid
>
>   |           r_tarsometatarsal_4 : r_metatarsal_4
>
>   |           | r_metatarsophalangeal_4 : r_tarsal_proximal_phalanx_4
>
>   |           |   r_tarsal_proximal_interphalangeal_4 :
> r_tarsal_middle_phalanx_4
>
>   |           |     r_tarsal_distal_interphalangeal_4 :
> r_tarsal_distal_phalanx_4
>
>   |           r_tarsometatarsal_5 : r_metatarsal_5
>
>   |             r_metatarsophalangeal_5 : r_tarsal_proximal_phalanx_5
>
>   |               r_tarsal_proximal_interphalangeal_5 :
> r_tarsal_middle_phalanx_5
>
>   |                 r_tarsal_distal_interphalangeal_5 :
> r_tarsal_distal_phalanx_5
>
>   vl5 : l5
>
>     vl4 : l4
>
>       vl3 : l3
>
>         vl2 : l2
>
>           vl1 : l1
>
>             vt12 : t12
>
>               vt11 : t11
>
>                 vt10 : t10
>
>                   vt9 : t9
>
>                     vt8 : t8
>
>                       vt7 : t7
>
>                         vt6 : t6
>
>                           vt5 : t5
>
>                             vt4 : t4
>
>                               vt3 : t3
>
>                                 vt2 : t2
>
>                                   vt1 : t1
>
>                                     vc7 : c7
>
>                                     | vc6 : c6
>
>                                     |   vc5 : c5
>
>                                     |     vc4 : c4
>
>                                     |       vc3 : c3
>
>                                     |         vc2 : c2
>
>                                     |           vc1 : c1
>
>                                     |             skullbase : skull
>
>                                     |               l_eyelid_joint :
> l_eyelid
>
>                                     |               r_eyelid_joint :
> r_eyelid
>
>                                     |               l_eyeball_joint :
> l_eyeball
>
>                                     |               r_eyeball_joint :
> r_eyeball
>
>                                     |               l_eyebrow_joint :
> l_eyebrow
>
>                                     |               r_eyebrow_joint :
> r_eyebrow
>
>                                     |               temporomandibular : jaw
>
>                                     l_sternoclavicular : l_clavicle
>
>                                     | l_acromioclavicular : l_scapula
>
>                                     |   l_shoulder : l_upperarm
>
>                                     |     l_elbow : l_forearm
>
>                                     |       l_radiocarpal : l_carpal
>
>                                     |         l_midcarpal_1 : l_trapezium
>
>                                     |         | l_carpometacarpal_1 :
> l_metacarpal_1
>
>                                     |         |   l_metacarpophalangeal_1
> : l_carpal_proximal_phalanx_1
>
>                                     |         |
> l_carpal_interphalangeal_1 : l_carpal_distal_phalanx_1
>
>                                     |         l_midcarpal_2 : l_trapezoid
>
>                                     |         | l_carpometacarpal_2 :
> l_metacarpal_2
>
>                                     |         |   l_metacarpophalangeal_2
> : l_carpal_proximal_phalanx_2
>
>                                     |         |
> l_carpal_proximal_interphalangeal_2 : l_carpal_middle_phalanx_2
>
>                                     |         |
> l_carpal_distal_interphalangeal_2 : l_carpal_distal_phalanx_2
>
>                                     |         l_midcarpal_3 : l_capitate
>
>                                     |         | l_carpometacarpal_3 :
> l_metacarpal_3
>
>                                     |         |   l_metacarpophalangeal_3
> : l_carpal_proximal_phalanx_3
>
>                                     |         |
> l_carpal_proximal_interphalangeal_3 : l_carpal_middle_phalanx_3
>
>                                     |         |
> l_carpal_distal_interphalangeal_3 : l_carpal_distal_phalanx_3
>
>                                     |         l_midcarpal_4_5 : l_hamate
>
>                                     |           l_carpometacarpal_4 :
> l_metacarpal_4
>
>                                     |           | l_metacarpophalangeal_4
> : l_carpal_proximal_phalanx_4
>
>                                     |           |
> l_carpal_proximal_interphalangeal_4 : l_carpal_middle_phalanx_4
>
>                                     |           |
> l_carpal_distal_interphalangeal_4 : l_carpal_distal_phalanx_4
>
>                                     |           l_carpometacarpal_5 :
> l_metacarpal_5
>
>                                     |             l_metacarpophalangeal_5
> : l_carpal_proximal_phalanx_5
>
>                                     |
> l_carpal_proximal_interphalangeal_5 : l_carpal_middle_phalanx_5
>
>                                     |
> l_carpal_distal_interphalangeal_5 : l_carpal_distal_phalanx_5
>
>                                     r_sternoclavicular : r_clavicle
>
>                                       r_acromioclavicular : r_scapula
>
>                                         r_shoulder : r_upperarm
>
>                                           r_elbow : r_forearm
>
>                                             r_radiocarpal : r_carpal
>
>                                               r_midcarpal_1 : r_trapezium
>
>                                               | r_carpometacarpal_1 :
> r_metacarpal_1
>
>                                               |   r_metacarpophalangeal_1
> : r_carpal_proximal_phalanx_1
>
>                                               |
> r_carpal_interphalangeal_1 : r_carpal_distal_phalanx_1
>
>                                               r_midcarpal_2 : r_trapezoid
>
>                                               | r_carpometacarpal_2 :
> r_metacarpal_2
>
>                                               |   r_metacarpophalangeal_2
> : r_carpal_proximal_phalanx_2
>
>                                               |
> r_carpal_proximal_interphalangeal_2 : r_carpal_middle_phalanx_2
>
>                                               |
> r_carpal_distal_interphalangeal_2 : r_carpal_distal_phalanx_2
>
>                                               r_midcarpal_3 : r_capitate
>
>                                               | r_carpometacarpal_3 :
> r_metacarpal_3
>
>                                               |   r_metacarpophalangeal_3
> : r_carpal_proximal_phalanx_3
>
>                                               |
> r_carpal_proximal_interphalangeal_3 : r_carpal_middle_phalanx_3
>
>                                               |
> r_carpal_distal_interphalangeal_3 : r_carpal_distal_phalanx_3
>
>                                               r_midcarpal_4_5 : r_hamate
>
>                                                 r_carpometacarpal_4 :
> r_metacarpal_4
>
>                                                 | r_metacarpophalangeal_4
> : r_carpal_proximal_phalanx_4
>
>                                                 |
> r_carpal_proximal_interphalangeal_4 : r_carpal_middle_phalanx_4
>
>                                                 |
> r_carpal_distal_interphalangeal_4 : r_carpal_distal_phalanx_4
>
>                                                 r_carpometacarpal_5 :
> r_metacarpal_5
>
>                                                   r_metacarpophalangeal_5
> : r_carpal_proximal_phalanx_5
>
>
> r_carpal_proximal_interphalangeal_5 : r_carpal_middle_phalanx_5
>
>
>                                            r_carpal_distal_interphalangeal_5
> : r_carpal_distal_phalanx_5
>
>
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, Navy robotics https://
> faculty.nps.edu/brutzman
>
>
>
> *From:* Brutzman, Donald (Don) (CIV)
> *Sent:* Friday, January 27, 2023 7:02 PM
> *To:* Joseph D Williams <joedwil at earthlink.net>; John Carlson <
> yottzumm at gmail.com>
> *Cc:* X3D Graphics public mailing list <x3d-public at web3d.org>;
> brutzman at nps.edu
> *Subject:* RE: HAnim Schematron output sampled
>
>
>
> Thanks for discussion Joe, really helpful.  We definitely have had some
> mixed signals here.
>
>
>
> Summary of changes we applied to HAnim schema relationships:
>
>    1. Joint vl5 has parent humanoid_root
>    2. Joint l_sternoclavicular has parent vt1
>    3. Joint r_sternoclavicular has parent vt1
>
>
>
> I will work on updating these corrections into all the tools accordingly –
> X3DUOM, X3D Schematron, X3DJSAIL Java, X3DPSAIL Python, and X3D-Edit..
>
>
>
> Thanks too for fixing multiple models together.
>
>
>
> Awesome work, sincere thanks, take care.
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, Navy robotics https://
> faculty.nps.edu/brutzman
>
>
>
> *From:* Joseph D Williams <joedwil at earthlink.net>
> *Sent:* Sunday, January 22, 2023 11:53 AM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; John Carlson <
> yottzumm at gmail.com>
> *Cc:* X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject:* RE: HAnim Schematron output sampled
>
>
>
>    - vl5 has parent humanoid_root rather than expected sacroiliac
>    - l_sternoclavicular has parent vt1 rather than expected vc7
>    - r_sternoclavicular has parent vt1 rather than expected vc7
>
>
>
> Don, these three items serve as a summary when processing a model that is
> correct according to the diagram.
>
> Much to discuss regarding some existing examples.
>
> Joe
>
>
>
> *From: *Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
> *Sent: *Sunday, January 22, 2023 10:09 AM
> *To: *Joseph D Williams <joedwil at earthlink.net>; John Carlson
> <yottzumm at gmail.com>
> *Cc: *X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject: *Re: HAnim Schematron output sampled
>
>
>
> Sounds like progress, but not quite focused enough to make any fixes yet….
> Clarity his critical.
>
>
>
> Hopefully you guys can create a simple list consisting of simple triplets:
>
>    - suspect joint or segment name,
>    - the incorrect parent described in the X3D XML schema,, and
>    - the correct parent shown by the diagrams in the specifications.
>
>
>
> If there is such a simple list of a few names/errors/corrections
> available, I hope to have some time Monday or Tuesday afternoon to work on
> it together.  Onward…
>
>
>
> v/r Don
>
> *From:* Joseph D Williams <joedwil at earthlink.net>
> *Sent:* Saturday, January 21, 2023 11:07:06 PM
> *To:* John Carlson <yottzumm at gmail.com>; Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu>; X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject:* RE: HAnim Schematron output sampled
>
>
>
> Hi,
>
> The expected ones are not correct.  Vl5 is a child of root and sternos and
> vc7 are childs of vt1. The schematron claims are wrong.
>
> The schematron is wrong according to the Concepts 4 diagrams for loa3 and
> loa4.
>
>
>
>    - Yes, vl5 is a child of sacroiliac, according to Joe.
>     X3DUOM/schematron wins!
>
>
>
> No, vl5 is a child of root. Schematron is wrong.
>
> The diagrams are correct.
>
> Joe
>
>
>
> *From: *John Carlson <yottzumm at gmail.com>
> *Sent: *Sunday, January 15, 2023 5:46 PM
> *To: *Joe D Williams <joedwil at earthlink.net>; Don Brutzman
> <brutzman at nps.edu>; X3D Graphics public mailing list
> <x3d-public at web3d.org>
> *Subject: *Re: HAnim Schematron output sampled
>
>
> vl5 has parent humanoid_root rather than expected sacroiliac.  Yes, vl5 is
> a child of sacroiliac, according to Joe.   X3DUOM/schematron wins!
>
> l_sternoclavicular has parent vt1 rather than expected vc7.  Please
> confirm.
>
> r_sternoclavicular has parent vt1 rather than expected vc7.  Please
> confirm.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230129/fee52490/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 159 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230129/fee52490/attachment-0001.png>


More information about the x3d-public mailing list