[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