[x3d-public] Archive does not validate with X3D validator, at least with schematron.

John Carlson yottzumm at gmail.com
Sun Jan 8 22:57:40 PST 2023


I realize hand-crafting any computer code, in any language is tremendously
hard.  That's why I try to do automated generation (program synthesis) as
much as possible.

That's why I attempted to create grammars, schemas, etc., because they lead
toward "procedural generation." This is a bit like generating a humanoid
from a kind of "DNA" or metahuman. What I suggest we try to do is create a
"DNA" builder, by reverse engineering humanoid examples.  And from the
"DNA", procedurally generate humanoids.

Perhaps it would be best to start with python or java to create humanoids,
instead of starting with XML?

Just thinking out loud here. Not demanding anything at this point.

I think the challenge is to create a prototype, then tweak the prototype.
Let me know how I can help, possibly by converting the prototype to various
encodings and bindings?

Maybe it would be appropriate to develop something that would mutate a
model?

Thanks for listening.

John

On Sun, Jan 8, 2023 at 11:58 PM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> John: HAnim models are among the largest and most detailed we have.  It is
> a lot of work to get a 3D model perfectly correct… but then it works and is
> checkable/repeatable/useful.  I don’t think that anyone anywhere can do any
> kind of apparel or medical modeling with paying immense attention to
> Quality Assurance (QA), as we are.  The day after a flashy demo is
> important too.
>
>
>
> Over time, by paying attention to bugfixes and corrections through the
> addition of validation and diagnostics, Joe and I have reduced the number
> of previously undetected bugs from gargantuan to merely huge.  Half of that
> challenge is getting diagnostics correct in the first place, no easy feat.
> The Great Bug Hunt continues, to good effect.
>
>
>
> If you want to see our latest test outputs from X3D Schematron, this past
> weekend I have updated that file as follows.  It is prominently listed in
> the HAnim Example Archives themselves.
>
>
>
>    - HumanoidAnimation (HAnim) X3D Examples Archive
>    - 8 Directories, 86 X3D Models (with most models working but few
>    perfect)
>    - https://www.web3d.org/x3d/content/examples/HumanoidAnimation
>
>
>
>    -
>    https://www.web3d.org/x3d/content/examples/HumanoidAnimation/build.schematron.log.txt
>
>
>
> Also updated, here is an improved feature in the pretty-print HTML for
> each model, which includes much special handling of HAnim.  This continues
> the automated elaboration of Joe’s original technique using plain-old-ASCII
> text descriptions of the HAnim tree structure.  Enjoy.
>
>
>
>    - *X3D Example Archives: *Humanoid Animation, Skin, Joe Skeleton Skin
>    Site Salute Walk
>    -
>    https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalkIndex.html
>    -
>    https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalk.html
>    -
>    https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalk.html#HumanHAnimHumanoidReport
>
>
>
>
> =============================================================================================================================
>
> HAnimHumanoid Joe_Human skeleton holds X3D4 HAnim2 joints/segments/sites
> and a skin node.
>
>   [key] jointname : segmentname ^ sitename
>
> [nodes] HAnimJoint (89), : HAnimSegment (90), % HAnimDisplacer (0), $
> HAnimMotion (0), ^ HAnimSite (88), @ skin nodes (1)
>
>
> =============================================================================================================================
>
> HAnimHumanoid DEF='Joe_Human name='Human' loa='-1'
>
> skin Shape DEF='SkinShape'
>
> skeleton
>
>   HumanoidRoot : sacrum
>
>     sacroiliac : pelvis ^ l_iliocristale, l_trochanterion, r_iliocristale,
> r_trochanterion, l_asis, r_asis, l_psis, r_psis, floormarker, crotch
>
>     | l_hip : l_thigh ^ l_knee_crease, l_femoral_lateral_epicn,
> l_femoral_medial_epicn
>
>     | | l_knee : l_calf ^ l_lateral_malleolus, l_medial_malleolus
>
>     | |   l_ankle (HAnim2 name l_talocrural) : l_hindfoot (HAnim2 name
> l_talocrural) ^ l_sphyrion (HAnim2 name l_talocrural), l_calcaneous_post
> (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_femoral_lateral_epicn,
> r_femoral_medial_epicn
>
>     |   r_knee : r_calf ^ r_lateral_malleolus, r_medial_malleolus
>
>     |     r_ankle (HAnim2 name r_talocrural) : r_hindfoot (HAnim2 name
> r_talocrural) ^ r_sphyrion (HAnim2 name r_talocrural), r_calcaneous_post
> (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 l5 ^ waist_preferred_post, navel
>
>       vl4 : l4
>
>         vl3 : l3
>
>           vl2 : l2 ^ r_rib10, l_rib10, rib10_midspine
>
>             vl1 : l1
>
>               vt12 : t12
>
>                 vt11 : t11
>
>                   vt10 : t10 ^ substernale
>
>                     vt9 : t9 ^ r_thelion, l_thelion
>
>                       vt8 : t8
>
>                         vt7 : t7
>
>                           vt6 : t6
>
>                             vt5 : t5
>
>                               vt4 : t4
>
>                                 vt3 : t3
>
>                                   vt2 : t2
>
>                                     vt1 : t1 ^ suprasternale, cervicale
>
>                                     | vc7 : c7 ^ r_neck_base, l_neck_base
>
>                                     | | vc6 : c6
>
>                                     | |   vc5 : c5
>
>                                     | |     vc4 : c4
>
>                                     | |       vc3 : c3
>
>                                     | |         vc2 : c2
>
>                                     | |           vc1 : c1
>
>                                     | |             skullbase : skull ^
> skull_tip, sellion, r_infraorbitale, l_infraorbitale, supramenton,
> r_tragion, r_gonion, l_tragion, l_gonion, nuchale
>
>                                     | |               l_eyeball_joint :
> l_eyeball
>
>                                     | |               r_eyeball_joint :
> r_eyeball
>
>                                     | l_sternoclavicular : l_clavicle ^
> l_clavicale
>
>                                     |   l_acromioclavicular : l_scapula ^
> l_acromion, l_axilla_ant, l_axilla_post
>
>                                     |     l_shoulder : l_upperarm ^
> l_humeral_medial_epicn, l_radiale, l_humeral_lateral_epicn
>
>                                     |       l_elbow : l_forearm ^
> l_radial_styloid, l_olecranon
>
>                                     |         l_wrist (HAnim2 name
> l_radiocarpal) : l_hand (HAnim2 name l_radiocarpal) ^ l_metacarpal_pha2
> (HAnim2 name l_radiocarpal), l_ulnar_styloid (HAnim2 name l_radiocarpal),
> l_metacarpal_pha5 (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_axilla_ant, r_axilla_post
>
>                                         r_shoulder : r_upperarm ^
> r_humeral_medial_epicn, r_radiale, r_humeral_lateral_epicn
>
>                                           r_elbow : r_forearm ^
> r_radial_styloid, r_olecranon
>
>                                             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
>
>
>
>
>
> ^ HAnimSegment pelvis holds 10 HAnimSite nodes: l_iliocristale,
> l_trochanterion, r_iliocristale, r_trochanterion, l_asis, r_asis, l_psis,
> r_psis, floormarker, crotch
>
> ^ HAnimSegment l_thigh holds 3 HAnimSite nodes: l_knee_crease,
> l_femoral_lateral_epicn, l_femoral_medial_epicn
>
> ^ HAnimSegment l_calf holds 2 HAnimSite nodes: l_lateral_malleolus,
> l_medial_malleolus
>
> ^ HAnimSegment l_hindfoot holds 2 HAnimSite nodes: l_sphyrion,
> l_calcaneous_post
>
> ^ HAnimSegment l_middistal holds 1 HAnimSite node: l_metatarsal_pha1
>
> ^ HAnimSegment l_forefoot holds 2 HAnimSite nodes: l_metatarsal_pha5,
> l_digit2
>
> ^ HAnimSegment r_thigh holds 3 HAnimSite nodes: r_knee_crease,
> r_femoral_lateral_epicn, r_femoral_medial_epicn
>
> ^ HAnimSegment r_calf holds 2 HAnimSite nodes: r_lateral_malleolus,
> r_medial_malleolus
>
> ^ HAnimSegment r_hindfoot holds 2 HAnimSite nodes: r_sphyrion,
> r_calcaneous_post
>
> ^ HAnimSegment r_middistal holds 1 HAnimSite node: r_metatarsal_pha1
>
> ^ HAnimSegment r_forefoot holds 2 HAnimSite nodes: r_metatarsal_pha5,
> r_digit2
>
> ^ HAnimSegment l5 holds 2 HAnimSite nodes: waist_preferred_post, navel
>
> ^ HAnimSegment l2 holds 3 HAnimSite nodes: r_rib10, l_rib10, rib10_midspine
>
> ^ HAnimSegment t10 holds 1 HAnimSite node: substernale
>
> ^ HAnimSegment t9 holds 2 HAnimSite nodes: r_thelion, l_thelion
>
> ^ HAnimSegment t1 holds 2 HAnimSite nodes: suprasternale, cervicale
>
> ^ HAnimSegment c7 holds 2 HAnimSite nodes: r_neck_base, l_neck_base
>
> ^ HAnimSegment skull holds 10 HAnimSite nodes: skull_tip, sellion,
> r_infraorbitale, l_infraorbitale, supramenton, r_tragion, r_gonion,
> l_tragion, l_gonion, nuchale
>
> ^ HAnimSegment l_clavicle holds 1 HAnimSite node: l_clavicale
>
> ^ HAnimSegment l_scapula holds 3 HAnimSite nodes: l_acromion,
> l_axilla_ant, l_axilla_post
>
> ^ HAnimSegment l_upperarm holds 3 HAnimSite nodes: l_humeral_medial_epicn,
> l_radiale, l_humeral_lateral_epicn
>
> ^ HAnimSegment l_forearm holds 2 HAnimSite nodes: l_radial_styloid,
> l_olecranon
>
> ^ HAnimSegment l_hand holds 3 HAnimSite nodes: l_metacarpal_pha2,
> l_ulnar_styloid, l_metacarpal_pha5
>
> ^ HAnimSegment l_thumb_distal holds 1 HAnimSite node: l_thumb_distal_tip
>
> ^ HAnimSegment l_index_distal holds 2 HAnimSite nodes: l_index_distal_tip,
> l_dactylion
>
> ^ HAnimSegment l_middle_distal holds 1 HAnimSite node: l_middle_distal_tip
>
> ^ HAnimSegment l_ring_distal holds 1 HAnimSite node: l_ring_distal_tip
>
> ^ HAnimSegment l_pinky_distal holds 1 HAnimSite node: l_pinky_distal_tip
>
> ^ HAnimSegment r_clavicle holds 1 HAnimSite node: r_clavicale
>
> ^ HAnimSegment r_scapula holds 3 HAnimSite nodes: r_acromion,
> r_axilla_ant, r_axilla_post
>
> ^ HAnimSegment r_upperarm holds 3 HAnimSite nodes: r_humeral_medial_epicn,
> r_radiale, r_humeral_lateral_epicn
>
> ^ HAnimSegment r_forearm holds 2 HAnimSite nodes: r_radial_styloid,
> r_olecranon
>
> ^ HAnimSegment r_hand holds 1 HAnimSite node: r_ulnar_styloid
>
> ^ HAnimSegment r_thumb_distal holds 1 HAnimSite node: r_thumb_distal_tip
>
> ^ HAnimSegment r_index_metacarpal holds 1 HAnimSite node: r_metacarpal_pha2
>
> ^ HAnimSegment r_index_distal holds 1 HAnimSite node: r_index_distal_tip
>
> ^ HAnimSegment r_middle_distal holds 2 HAnimSite nodes: r_dactylion,
> r_middle_distal_tip
>
> ^ HAnimSegment r_ring_distal holds 1 HAnimSite node: r_ring_distal_tip
>
> ^ HAnimSegment r_pinky_metacarpal holds 1 HAnimSite node: r_metacarpal_pha5
>
> ^ HAnimSegment r_pinky_distal holds 1 HAnimSite node: r_pinky_distal_tip
>
>
>
> @ HAnimHumanoid Human holds 1 containerField='skin' node: Shape
> DEF='SkinShape'
>
>
> =============================================================================================================================
>
>
>
> No kidding, real deal.  Have fun with X3D and HAnim2.  8)
>
>
>
> 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 7, 2023 7:12 PM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Graphics
> public mailing list <x3d-public at web3d.org>; Joe D Williams <
> joedwil at earthlink.net>
> *Subject:* Re: Archive does not validate with X3D validator, at least
> with schematron.
>
>
>
> Note: The python conversion validation. x3d.py package up-to-date, Below
>
>
>
> So there's probably something specific to X3D schematron (not XML). I will
> try my version.
>
>
>
> Suggestion. People find a reasonably patterned HAnim V2 model, and I will
> copy the pattern to create an LOA4 model.  I believe this is the best path
> forward.
>
>
>
> ~/X3DJSONLD/src/main/python ~/X3DJSONLD/src/main/shell
>
> x3d.py package 4.0.64.2 loaded, have fun with X3D Graphics!
>
> Self-test diagnostics for JoeSkeletonSkinSaluteSiteWalk.py:
>
> meta information, warning: Under development, numerous errors and
> warnings, TODO: This is an HAnimV1 loa model, might need to convert to X3D4
> to note loa value, TODO: Provide feedback to tovrmlx3d converter, TODO:
> HAnimJoint cannot contain X3DChildNode elements, only HAnimJoint
> HAnimSegmet HAnimSite - improve diagnostics. TODO: ensure name prefix
> "Joe_" applied to all contained DEF values (not name field), perhaps
> correction automatically applied by X3DTidy
>
> Python-to-XML well-formed XML document  test of XML output complete
>
> Python-to-XML X3D 4.0 schema validation test of XML output complete
>
> Python-to-VRML export of VRML output successful
>
> Python-to-JSON export of JSON output successful (under development)
>
> python JoeSkeletonSkinSaluteSiteWalk.py load and self-test diagnostics
> complete.
>
>
>
> On Sat, Jan 7, 2023 at 8:50 PM John Carlson <yottzumm at gmail.com> wrote:
>
> This is a work in progress, I think, but realize it's on the X3D Resources
> Examples archive website:
>
>
>
>
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeSkeletonSkinSiteSaluteWalk.x3d
>
>
>
> Have fun with X3D!
>
>
>
> John
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230109/1bdc4f42/attachment-0001.html>


More information about the x3d-public mailing list