[x3d-public] Hanim visualization tree improvements

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Feb 13 21:03:55 PST 2023


Hi John.  Everything in HAnim2 is supported in X3D4.  Implementation
troubleshooting and improvements continue.

 

The default value loa="-1" is usually implicit but can be validly listed.
It means that the model does not conform to any of the defined Level of
Articulation (LOA) requirements.

 

 

*	X3D Tooltips, HAnimHumanoid, loa
*	https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimHumanoid.loa

 

( <https://www.web3d.org/x3d4> X3D version 4.0 draft) [loa accessType
inputOutput <https://www.web3d.org/x3d/content/X3dTooltips.html#accessType>
, type SFInt32 <https://www.web3d.org/x3d/content/X3dTooltips.html#SFInt32>
CDATA <https://www.web3d.org/x3d/content/X3dTooltips.html#CDATA>  -1] [-1,4]
<https://www.web3d.org/x3d/content/X3dTooltips.html#RangeIntervals> 
Level Of Articulation 0..4 indicates complexity and detail of joints for
given humanoid skeletal hierarchy.
Hint: loa value of -1 indicates that no LOA conformance is provided.
Hint: Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8.4
Levels of articulation,
https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/conce
pts.html#LevelsOfArticulation

 

 

Please don't bother worrying about languages or encodings John.  Anything in
the X3D Architecture specification that can be captured goes into 

*	the X3D XML schema (which is object oriented with inheritance,
difficult for humans to grok), then
*	X3DUOM which clearly lists each and every field for each and every
node, then
*	Can be autogenerated to validate content in any encoding or
programming language.
*	All of our encodings and programming languages are expected to be
100% consistent and compliant with X3D4 Architecture.

 

If Joe is satisfied that we might have some satisfactory new default values
then we add them. They are an authoring convenience for comparison, not a
requirement.

 

Have fun with X3D4 and HAnim2 - no really!

 

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: Monday, February 13, 2023 7:42 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Cc: Joseph D Williams <joedwil at earthlink.net>; X3D Public Mailing List
(x3d-public at web3d.org) <x3d-public at web3d.org>
Subject: Re: [x3d-public] Hanim visualization tree improvements

 

Please let us know if these hierarchies are going into X3D4.

 

What is loa -1?

 

Joe,

 

Rather than keeping around default centers and translations in your own
hierarchy or tables, Joe, perhaps keep them in VRML?

Wouldn't that be easiest for everyone?   I'd personally probably find VRML
easier than your hierarchy, Joe, even though I have XML now.  We have loads
of VRML parsers, including ones in Java (Xj3D), right?  I'm pretty sure
Michalis can offer to convert VRML to X3D?  Don can map Michalis' XML to
VRML for Joe's consumption, or I can write a VRML serializer.   Is this
better or worse than a bunch of schematron rules?

 

I think I was replacing empty centers and translations in XML documents with
real defaults. This seems useful to me, but  I need real default data (lack
of which is preventing a standard Humanoid .x3d).   Can I have a HAnim2 LOA4
VRML document filled with default centers and translations?

 

I'm not in favor of creating another yet another encoding, which seems to be
what's happening.

 

I do think we want something for the Excel folks, if they can't handle
X3DUOM.

 

Yes, i realize we need normal documents for normal folks to review, that's
also amenable for tools.   I guess XML ain't it?  We tried with LISP a long
time ago.

 

Intentional Programming anyone?   X3D-Edit Explorer/Netbeans?

 

3D paper?

 

I give up.

 

Thanks!

 

John 

 

On Sun, Jan 1, 2023 at 4:53 PM Brutzman, Donald (Don) (CIV)
<brutzman at nps.edu <mailto:brutzman at nps.edu> > wrote:

Joe, here is followup to potential improvements for HTML-pretty-print output
of HAnim visualization tree.  Am cc:ing x3d-public in case anyone has
further insights.

 

Improvements applied for two current examplesas follows.  Note use of ^
indicating HAnimSite, and % indicating HAnimDisplacer, with list of relevant
node names following just below the full tree.

 

*	X3D Example Archives: Humanoid Animation, Skin, Joe Kick
*	This Joe model is a HAnim version 2 LOA-3 Humanoid with textured
skin based on the original HAnim Specification and data from CAESAR models.
*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickInd
ex.html
*	Visualization report for HAnimHumanoid model
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.h
tml#Joe_Human> Joe_Human
*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.ht
ml#HumanHAnimHumanoidReport

 

============================================================================
=================================================

HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (94) :
HAnimSegment (1) % HAnimDisplacer (1) ^ HAnimSite (1)

============================================================================
=================================================

HAnimHumanoid DEF='Joe_Human name='Human' loa='3'

skin Shape DEF='Joe_Shape'

skeleton

  humanoid_root : sacrum ^ RootFront_view

    sacroiliac

    | l_hip

    | | l_knee

    | |   l_talocrural

    | |     l_tarsometatarsal_2

    | |       l_metatarsophalangeal_2

    | |         l_tarsal_distal_interphalangeal_2

    | r_hip

    |   r_knee

    |     r_talocrural

    |       r_tarsometatarsal_2

    |         r_metatarsophalangeal_2

    |           r_tarsal_distal_interphalangeal_2

    vl5

      vl4

        vl3

          vl2

            vl1

              vt12

                vt11

                  vt10

                    vt9

                      vt8

                        vt7

                          vt6

                            vt5

                              vt4

                                vt3

                                  vt2

                                    vt1

                                      vc7

                                        vc6

                                        | vc5

                                        |   vc4

                                        |     vc3

                                        |       vc2

                                        |         vc1

                                        |           skullbase %
skull_tip_raiser_action

                                        |             l_eyelid_joint

                                        |             l_eyeball_joint

                                        |             l_eyebrow_joint

                                        |             r_eyelid_joint

                                        |             r_eyeball_joint

                                        |             r_eyebrow_joint

                                        |             temporomandibular

                                        l_sternoclavicular

                                        | l_acromioclavicular

                                        |   l_shoulder

                                        |     l_elbow

                                        |       l_radiocarpal

                                        |         l_carpometacarpal_1

                                        |         | l_metacarpophalangeal_1

                                        |         |
l_carpal_interphalangeal_1

                                        |         l_carpometacarpal_2

                                        |         | l_metacarpophalangeal_2

                                        |         |
l_carpal_proximal_interphalangeal_2

                                        |         |
l_carpal_distal_interphalangeal_2

                                        |         l_carpometacarpal_3

                                        |         | l_metacarpophalangeal_3

                                        |         |
l_carpal_proximal_interphalangeal_3

                                        |         |
l_carpal_distal_interphalangeal_3

                                        |         l_carpometacarpal_4

                                        |         | l_metacarpophalangeal_4

                                        |         |
l_carpal_proximal_interphalangeal_4

                                        |         |
l_carpal_distal_interphalangeal_4

                                        |         l_carpometacarpal_5

                                        |           l_metacarpophalangeal_5

                                        |
l_carpal_proximal_interphalangeal_5

                                        |
l_carpal_distal_interphalangeal_5

                                        r_sternoclavicular

                                          r_acromioclavicular

                                            r_shoulder

                                              r_elbow

                                                r_radiocarpal

                                                  r_carpometacarpal_1

                                                  | r_metacarpophalangeal_1

                                                  |
r_carpal_interphalangeal_1

                                                  r_carpometacarpal_2

                                                  | r_metacarpophalangeal_2

                                                  |
r_carpal_proximal_interphalangeal_2

                                                  |
r_carpal_distal_interphalangeal_2

                                                  r_carpometacarpal_3

                                                  | r_metacarpophalangeal_3

                                                  |
r_carpal_proximal_interphalangeal_3

                                                  |
r_carpal_distal_interphalangeal_3

                                                  r_carpometacarpal_4

                                                  | r_metacarpophalangeal_4

                                                  |
r_carpal_proximal_interphalangeal_4

                                                  |
r_carpal_distal_interphalangeal_4

                                                  r_carpometacarpal_5

                                                    r_metacarpophalangeal_5

 
r_carpal_proximal_interphalangeal_5

 
r_carpal_distal_interphalangeal_5

HAnimDisplacer list: 

% HAnimJoint skullbase holds HAnimDisplacer skull_tip_raiser_action

 

HAnimSite list: 

^ HAnimSegment sacrum holds HAnimSite RootFront_view

============================================================================
================================================= 

 

*	X3D Example Archives: Humanoid Animation, Skin, Joe Skeleton Skin
Site Salute Walk
*	Comprehensive example showing skeleton, skin, sites and interpolator
animation together.
*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeleto
nSkinSiteSaluteWalkIndex.html
*	Visualization report for HAnimHumanoid model
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkelet
onSkinSiteSaluteWalk.html#Joe_Human> Joe_Human
*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeleto
nSkinSiteSaluteWalk.html#HumanHAnimHumanoidReport

 

============================================================================
=================================================

HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (89) :
HAnimSegment (90) % HAnimDisplacer (0) ^ HAnimSite (88)

============================================================================
=================================================

HAnimHumanoid DEF='Joe_Human name='Human' loa='-1'

skin Shape DEF='SkinShape'

skeleton

  HumanoidRoot : sacrum

    sacroiliac : pelvis ^ l_iliocristale, 

    | l_hip : l_thigh ^ l_knee_crease, 

    | | l_knee : l_calf ^ l_lateral_malleolus, 

    | |   l_ankle (HAnim2 name l_talocrural) : l_hindfoot (HAnim2 name
l_talocrural) ^ l_sphyrion (HAnim2 name l_talocrural), 

    | |     l_subtalar (HAnim2 name l_tarsometatarsal_2) : l_midproximal
(HAnim2 name l_tarsometatarsal_2)

    | |       l_midtarsal (HAnim2 name l_metatarsophalangeal_2) :
l_middistal (HAnim2 name l_metatarsophalangeal_2) ^ l_metatarsal_pha1
(HAnim2 name l_metatarsophalangeal_2)

    | |         l_metatarsal (HAnim2 name l_tarsal_distal_interphalangeal_2)
: l_forefoot (HAnim2 name l_tarsal_distal_interphalangeal_2) ^
l_metatarsal_pha5 (HAnim2 name l_tarsal_distal_interphalangeal_2), l_digit2
(HAnim2 name l_tarsal_distal_interphalangeal_2)

    | r_hip : r_thigh ^ r_knee_crease, 

    |   r_knee : r_calf ^ r_lateral_malleolus, 

    |     r_ankle (HAnim2 name r_talocrural) : r_hindfoot (HAnim2 name
r_talocrural) ^ r_sphyrion (HAnim2 name r_talocrural), 

    |       r_subtalar (HAnim2 name r_tarsometatarsal_2) : r_midproximal
(HAnim2 name r_tarsometatarsal_2)

    |         r_midtarsal (HAnim2 name r_metatarsophalangeal_2) :
r_middistal (HAnim2 name r_metatarsophalangeal_2) ^ r_metatarsal_pha1
(HAnim2 name r_metatarsophalangeal_2)

    |           r_metatarsal (HAnim2 name r_tarsal_distal_interphalangeal_2)
: r_forefoot (HAnim2 name r_tarsal_distal_interphalangeal_2) ^
r_metatarsal_pha5 (HAnim2 name r_tarsal_distal_interphalangeal_2), r_digit2
(HAnim2 name r_tarsal_distal_interphalangeal_2)

    vl5 : toPelvis ^ waist_preferred_post, 

      vl4 : l4

        vl3 : l3

          vl2 : l2 ^ r_rib10, 

            vl1 : l1

              vt12 : t12

                vt11 : t11

                  vt10 : t10 ^ substernale

                    vt9 : t9 ^ r_thelion, 

                      vt8 : t8

                        vt7 : t7

                          vt6 : t6

                            vt5 : t5

                              vt4 : t4

                                vt3 : t3

                                  vt2 : t2

                                    vt1 : t1 ^ suprasternale, 

                                    | vc7 : c7 ^ r_neck_base, 

                                    | | vc6 : c6

                                    | |   vc5 : c5

                                    | |     vc4 : c4

                                    | |       vc3 : c3

                                    | |         vc2 : c2

                                    | |           vc1 : c1

                                    | |             skullbase : skull ^
skull_tip, 

                                    | |               l_eyeball_joint :
l_eyeball

                                    | |               r_eyeball_joint :
r_eyeball

                                    | l_sternoclavicular : l_clavicle ^
l_clavicale

                                    |   l_acromioclavicular : l_scapula ^
l_acromion, 

                                    |     l_shoulder : l_upperarm ^
l_humeral_medial_epicn, 

                                    |       l_elbow : l_forearm ^
l_radial_styloid, 

                                    |         l_wrist (HAnim2 name
l_radiocarpal) : l_hand (HAnim2 name l_radiocarpal) ^ l_metacarpal_pha2
(HAnim2 name l_radiocarpal), 

                                    |           l_thumb1 :
l_thumb_metacarpal

                                    |           | l_thumb2 : l_thumb_distal

                                    |           |   l_thumb3 :
l_thumb_distal ^ l_thumb_distal_tip

                                    |           l_index0 :
l_index_metacarpal

                                    |           | l_index1 :
l_index_proximal

                                    |           |   l_index2 :
l_index_middle

                                    |           |     l_index3 :
l_index_distal ^ l_index_distal_tip, l_dactylion

                                    |           l_middle0 :
l_middle_metacarpal

                                    |           | l_middle1 :
l_middle_proximal

                                    |           |   l_middle2 :
l_middle_middle

                                    |           |     l_middle3 :
l_middle_distal ^ l_middle_distal_tip

                                    |           l_ring0 : l_ring_metacarpal

                                    |           | l_ring1 : l_ring_proximal

                                    |           |   l_ring2 : l_ring_middle

                                    |           |     l_ring3 :
l_ring_distal ^ l_ring_distal_tip

                                    |           l_pinky0 :
l_pinky_metacarpal

                                    |             l_pinky1 :
l_pinky_proximal

                                    |               l_pinky2 :
l_pinky_middle

                                    |                 l_pinky3 :
l_pinky_distal ^ l_pinky_distal_tip

                                    r_sternoclavicular : r_clavicle ^
r_clavicale

                                      r_acromioclavicular : r_scapula ^
r_acromion, 

                                        r_shoulder : r_upperarm ^
r_humeral_medial_epicn, 

                                          r_elbow : r_forearm ^
r_radial_styloid, 

                                            r_wrist (HAnim2 name
r_radiocarpal) : r_hand (HAnim2 name r_radiocarpal) ^ r_ulnar_styloid
(HAnim2 name r_radiocarpal)

                                              r_thumb1 : r_thumb_metacarpal

                                              | r_thumb2 : r_thumb_proximal

                                              |   r_thumb3 : r_thumb_distal
^ r_thumb_distal_tip

                                              r_index0 : r_index_metacarpal
^ r_metacarpal_pha2

                                              | r_index1 : r_index_proximal

                                              |   r_index2 : r_index_middle

                                              |     r_index3 :
r_index_distal ^ r_index_distal_tip

                                              r_middle0 :
r_middle_metacarpal

                                              | r_middle1 :
r_middle_proximal

                                              |   r_middle2 :
r_middle_middle

                                              |     r_middle3 :
r_middle_distal ^ r_dactylion, r_middle_distal_tip

                                              r_ring0 : r_ring_metacarpal

                                              | r_ring1 : r_ring_proximal

                                              |   r_ring2 : r_ring_middle

                                              |     r_ring3 : r_ring_distal
^ r_ring_distal_tip

                                              r_pinky0 : r_pinky_metacarpal
^ r_metacarpal_pha5

                                                r_pinky1 : r_pinky_proximal

                                                  r_pinky2 : r_pinky_middle

                                                    r_pinky3 :
r_pinky_distal ^ r_pinky_distal_tip

HAnimSite list: 

^ HAnimSegment pelvis holds HAnimSite nodes l_iliocristale l_trochanterion
r_iliocristale r_trochanterion l_asis r_asis l_psis r_psis floormarker
crotch

^ HAnimSegment l_thigh holds HAnimSite nodes l_knee_crease
l_femoral_lateral_epicn l_femoral_medial_epicn

^ HAnimSegment l_calf holds HAnimSite nodes l_lateral_malleolus
l_medial_malleolus

^ HAnimSegment l_hindfoot holds HAnimSite nodes l_sphyrion l_calcaneous_post

^ HAnimSegment l_middistal holds HAnimSite l_metatarsal_pha1

^ HAnimSegment l_forefoot holds HAnimSite nodes l_metatarsal_pha5 l_digit2

^ HAnimSegment r_thigh holds HAnimSite nodes r_knee_crease
r_femoral_lateral_epicn r_femoral_medial_epicn

^ HAnimSegment r_calf holds HAnimSite nodes r_lateral_malleolus
r_medial_malleolus

^ HAnimSegment r_hindfoot holds HAnimSite nodes r_sphyrion r_calcaneous_post

^ HAnimSegment r_middistal holds HAnimSite r_metatarsal_pha1

^ HAnimSegment r_forefoot holds HAnimSite nodes r_metatarsal_pha5 r_digit2

^ HAnimSegment l5 holds HAnimSite nodes waist_preferred_post navel

^ HAnimSegment l2 holds HAnimSite nodes r_rib10 l_rib10 rib10_midspine

^ HAnimSegment t10 holds HAnimSite substernale

^ HAnimSegment t9 holds HAnimSite nodes r_thelion l_thelion

^ HAnimSegment t1 holds HAnimSite nodes suprasternale cervicale

^ HAnimSegment c7 holds HAnimSite nodes r_neck_base l_neck_base

^ HAnimSegment skull holds HAnimSite nodes skull_tip sellion r_infraorbitale
l_infraorbitale supramenton r_tragion r_gonion l_tragion l_gonion nuchale

^ HAnimSegment l_clavicle holds HAnimSite l_clavicale

^ HAnimSegment l_scapula holds HAnimSite nodes l_acromion l_axilla_ant
l_axilla_post

^ HAnimSegment l_upperarm holds HAnimSite nodes l_humeral_medial_epicn
l_radiale l_humeral_lateral_epicn

^ HAnimSegment l_forearm holds HAnimSite nodes l_radial_styloid l_olecranon

^ HAnimSegment l_hand holds HAnimSite nodes l_metacarpal_pha2
l_ulnar_styloid l_metacarpal_pha5

^ HAnimSegment l_thumb_distal holds HAnimSite l_thumb_distal_tip

^ HAnimSegment l_index_distal holds HAnimSite nodes l_index_distal_tip
l_dactylion

^ HAnimSegment l_middle_distal holds HAnimSite l_middle_distal_tip

^ HAnimSegment l_ring_distal holds HAnimSite l_ring_distal_tip

^ HAnimSegment l_pinky_distal holds HAnimSite l_pinky_distal_tip

^ HAnimSegment r_clavicle holds HAnimSite r_clavicale

^ HAnimSegment r_scapula holds HAnimSite nodes r_acromion r_axilla_ant
r_axilla_post

^ HAnimSegment r_upperarm holds HAnimSite nodes r_humeral_medial_epicn
r_radiale r_humeral_lateral_epicn

^ HAnimSegment r_forearm holds HAnimSite nodes r_radial_styloid r_olecranon

^ HAnimSegment r_hand holds HAnimSite r_ulnar_styloid

^ HAnimSegment r_thumb_distal holds HAnimSite r_thumb_distal_tip

^ HAnimSegment r_index_metacarpal holds HAnimSite r_metacarpal_pha2

^ HAnimSegment r_index_distal holds HAnimSite r_index_distal_tip

^ HAnimSegment r_middle_distal holds HAnimSite nodes r_dactylion
r_middle_distal_tip

^ HAnimSegment r_ring_distal holds HAnimSite r_ring_distal_tip

^ HAnimSegment r_pinky_metacarpal holds HAnimSite r_metacarpal_pha5

^ HAnimSegment r_pinky_distal holds HAnimSite r_pinky_distal_tip

============================================================================
=================================================

 

all the best, Don

-- 

Don Brutzman  Naval Postgraduate School, Code USW/Br
<mailto:brutzman at nps.edu> brutzman at nps.edu

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, Navy robotics https://
<http://faculty.nps.edu/brutzman> faculty.nps.edu/brutzman

 

From: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu
<mailto:brutzman at nps.edu> > 
Sent: Tuesday, December 27, 2022 4:53 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu>
>; Joseph D Williams <joedwil at earthlink.net <mailto:joedwil at earthlink.net> >
Subject: Hanim vis tree improvements

 


Joe, here is an example ad some potential improvements to the pretty-print
visualization tree. Any other ideas?


Visualization report for HAnimHumanoid model
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/BoxMan4.h
tml#HUMANOID> HUMANOID

============================================================================
===========================
HAnimHumanoid skeleton holds X3D3 HAnim2 triplets, HAnimJoint (17) :
HAnimSegment (17) : HAnimSite (5)
============================================================================
===========================
HAnimHumanoid DEF='HUMANOID name='Humanoid' loa=''
  HumanoidRoot : sacrum
  | l_hip : l_thigh
  | | l_knee : l_calf
  | |   l_ankle : l_hindfoot
  | |     l_midtarsal : l_middistal : l_middle_distal_tip
  | r_hip : r_thigh
  | | r_knee : r_calf
  | |   r_ankle : r_hindfoot
  | |     r_midtarsal : r_middistal : r_middle_distal_tip
  | vl5 : l5
  |   skullbase : skull : skull_tip
  |   l_shoulder : l_upperarm
  |   | l_elbow : l_forearm
  |   |   l_wrist : l_hand : l_hand_tip
  |   r_shoulder : r_upperarm
  |     r_elbow : r_forearm
  |       r_wrist : r_hand : r_hand_tip

 

Add * [displacerName] where appropriate

 

Show motions HAnimMotion/none at end

Show skin Switch/Shape/IFS/none

 

Ensure X3D3 HAnim2 (for example) shows correct version number

 

Change comma to colon for triplets:

 

all the best, Don

-- 

Don Brutzman  Naval Postgraduate School, Code USW/Br
<mailto:brutzman at nps.edu> 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> https://faculty.nps.edu/brutzman

_______________________________________________
x3d-public mailing list
x3d-public at web3d.org <mailto:x3d-public at web3d.org> 
http://web3d.org/mailman/listinfo/x3d-public_web3d.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230214/d9d395b8/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5353 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230214/d9d395b8/attachment-0001.p7s>


More information about the x3d-public mailing list