[x3d-public] JoeKick H-Anim example - error in X3D classic encoding

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Jul 24 01:18:39 PDT 2023


1. Michalis, thanks for a great trouble report.

 

I believe the conversion errors are now fixed in X3dToVrml.xslt stylesheet,
updated model at

 

*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3
dv

 

Unfortunately I discovered that a lot of type checking within that
stylesheet isn't really effective due to a puzzling logic error, so there
may well be other errors like this.  More work will likely be needed.

 

Wondering if you have a command-line mode for validating VRML/ClassicVRML
models with view3dscene?  Perhaps I might be able to add that to our
regression testing build scripts.

 

2. Joe, it's your model, so please send any texture coordinate changes you
may have and I will update the .x3d model in the archives.

 

*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickInd
ex.html
*
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3
d

 

Meanwhile there are plenty of warnings from Schematron.  They seem accurate.
The flagged parent-child relationships are either a problem in the model, or
else (less likely) a problem in the diagnostics (which are autogenerated
from X3DUOM).

 

I thought that possibly they are related to your use of loa='3' complexity,
but diagnostics looked the same for loa='4'.

 

 

--------- X3D Validator checks commenced for JoeKick.x3d ---------

 

Performing well-formed XML check...

Checking
file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/
JoeKick.x3d...

Well-formed XML check: pass

 

Performing DOCTYPE check...

[X3dDoctypeChecker] success: valid XML declaration found.[X3dDoctypeChecker]
success: final X3D 4.0 DOCTYPE found.

 

Performing DTD validation...

Checking
file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/
JoeKick.x3d...

XML DTD validation: pass

 

Performing X3D schema validation...

Checking
file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/
JoeKick.x3d...

Referenced entity at
http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd.

Referenced entity at http://www.w3.org/2001/XMLSchema.dtd.

Referenced entity at http://www.w3.org/2001/datatypes.dtd.

XML schema validation: pass

 

Performing X3D regular expression (regex) values check...

X3D regex check: complete

 

Performing X3dToX3dvClassicVrmlEncoding.xslt conversion check...

 

Performing X3D Schematron check...

X3D version 4.0 is approved by Web3D Consortium and focused on
interoperability with HTML5, glTF2.0 Physically Based Rendering (PBR) and
Web Audio API, undergoing final administrative review by ISO in 2023. [/X3D,
diagnostic]

<meta name='TODO' content='Record information about skin coordinates (found
in comment at end of scene) as a structured MetadataSet containing
MetadataString nodes'/> [/X3D/head/meta[7], diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> version='2.0' with X3D
version='4.0' [/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]

============================================================================
======================================== [/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(HAnimJoint)
within skeleton hierarchy        = 94[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(HAnimSegment)
within skeleton hierarchy        = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(HAnimSite)
within HAnimHumanoid             = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(HAnimSite//Viewpoint)
within skeleton hierarchy        = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(HAnimDisplacer)
within skeleton hierarchy        = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimJoint   USE='*'
containerField = 'joints'/>)     = 94[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSegment USE='*'
containerField = 'segments'/>)   = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSite    USE='*'
containerField = 'sites'/>)      = 1[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSite    DEF='*'
name ends with '_view'/>)        = 0[/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

============================================================================
======================================== [/X3D/Scene/Group[1]/HAnimHumanoid,
diagnostic]

<HAnimSite DEF='Joe_RootFront_view' name='RootFront_view'/> is not a
recognized name for HAnim2 HAnimSite
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimSegment/HAnimSite,
info]

<HAnimJoint DEF='Joe_l_tarsometatarsal_2' name='l_tarsometatarsal_2'/> has
parent HAnimJoint name='l_talocrural' rather than expected parent
name='l_cuneonavicular_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[1]
/HAnimJoint/HAnimJoint/HAnimJoint, warning]

<HAnimJoint DEF='Joe_l_tarsal_distal_interphalangeal_2'
name='l_tarsal_distal_interphalangeal_2'/> has parent HAnimJoint
name='l_metatarsophalangeal_2' rather than expected parent
name='l_tarsal_proximal_interphalangeal_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[1]
/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint, warning]

<HAnimJoint DEF='Joe_r_tarsometatarsal_2' name='r_tarsometatarsal_2'/> has
parent HAnimJoint name='r_talocrural' rather than expected parent
name='r_cuneonavicular_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[2]
/HAnimJoint/HAnimJoint/HAnimJoint, warning]

<HAnimJoint DEF='Joe_r_tarsal_distal_interphalangeal_2'
name='r_tarsal_distal_interphalangeal_2'/> has parent HAnimJoint
name='r_metatarsophalangeal_2' rather than expected parent
name='r_tarsal_proximal_interphalangeal_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[2]
/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint, warning]

<HAnimJoint DEF='Joe_l_acromioclavicular'/> name field is required
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2], error]

<HAnimJoint DEF='Joe_l_acromioclavicular' name=''/> is not a recognized name
for HAnim2 HAnimJoint
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2], warning]

<HAnimJoint DEF='Joe_l_sternoclavicular' name='l_acromioclavicular'/> DEF
value does not contain correctly modified version of name value (for
example, DEF='myPrefix_nameValue' e.g. DEF='myPrefix_l_acromioclavicular') -
see HAnim section C.2 Humanoid, VRML Binding
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint, error]

<HAnimJoint DEF='Joe_l_sternoclavicular' name='l_acromioclavicular'/> has
parent HAnimJoint name='' rather than expected parent
name='l_sternoclavicular', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint, warning]

<HAnimJoint DEF='Joe_l_carpometacarpal_1' name='l_carpometacarpal_1'/> has
parent HAnimJoint name='l_radiocarpal' rather than expected parent
name='l_midcarpal_1', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[1], warning]

<HAnimJoint DEF='Joe_l_carpometacarpal_2' name='l_carpometacarpal_2'/> has
parent HAnimJoint name='l_radiocarpal' rather than expected parent
name='l_midcarpal_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[2], warning]

<HAnimJoint DEF='Joe_l_carpometacarpal_3' name='l_carpometacarpal_3'/> has
parent HAnimJoint name='l_radiocarpal' rather than expected parent
name='l_midcarpal_3', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[3], warning]

<HAnimJoint DEF='Joe_l_carpometacarpal_4' name='l_carpometacarpal_4'/> has
parent HAnimJoint name='l_radiocarpal' rather than expected parent
name='l_midcarpal_4_5', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[4], warning]

<HAnimJoint DEF='Joe_l_carpometacarpal_5' name='l_carpometacarpal_5'/> has
parent HAnimJoint name='l_radiocarpal' rather than expected parent
name='l_midcarpal_4_5', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[5], warning]

<HAnimJoint DEF='Joe_r_carpometacarpal_1' name='r_carpometacarpal_1'/> has
parent HAnimJoint name='r_radiocarpal' rather than expected parent
name='r_midcarpal_1', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[1], warning]

<HAnimJoint DEF='Joe_r_carpometacarpal_2' name='r_carpometacarpal_2'/> has
parent HAnimJoint name='r_radiocarpal' rather than expected parent
name='r_midcarpal_2', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[2], warning]

<HAnimJoint DEF='Joe_r_carpometacarpal_3' name='r_carpometacarpal_3'/> has
parent HAnimJoint name='r_radiocarpal' rather than expected parent
name='r_midcarpal_3', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[3], warning]

<HAnimJoint DEF='Joe_r_carpometacarpal_4' name='r_carpometacarpal_4'/> has
parent HAnimJoint name='r_radiocarpal' rather than expected parent
name='r_midcarpal_4_5', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[4], warning]

<HAnimJoint DEF='Joe_r_carpometacarpal_5' name='r_carpometacarpal_5'/> has
parent HAnimJoint name='r_radiocarpal' rather than expected parent
name='r_midcarpal_4_5', recommend checking model
[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HA
nimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/H
AnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/
HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJo
int[5], warning]

 

--------- X3D Validator checks complete for JoeKick.x3d ---------

 

 

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

 

-----Original Message-----
From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Michalis
Kamburelis
Sent: Sunday, July 23, 2023 1:44 PM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: [x3d-public] JoeKick H-Anim example - error in X3D classic encoding

 

"Joe Kick" example linked from

 <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/>
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/ ,
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIn
dex.html>
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickInd
ex.html

, 2 errors:

 

1. The "ClassicVRML" encoding version (

 
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x
3dv>
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3
dv

) seems to be incorrectly converted from XML to classic encoding. It
contains

 

"""

DEF Joe_skull_tip_raiser_action HAnimDisplacer { coordIndex 0 1 2 3 4 5 6 7
8 9 displacements 0 0.15 0 0 ...

name "skull_tip_raiser_action"

}

"""

 

so the coordIndex and displacements fields miss [ ] around their values.

 

"coordIndex" is MFInt32, "displacements" is MFVec3f, they both require [ ]
in classic encoding if you want to have a list of arbitrary number of
elements. If no [ ] are used, the classic encoding parsers have to assume
they contain 1 item (1 integer on "coordIndex", 1 vector == 3 floats on
"displacements"). Currently parsing this fails, as parser sees unexpected
numbers in the middle of HAnimDisplacer.

 

This problem is not present in XML encoding, where no [ ] are used, the
lists are in separate XML attributes.

 

2. The XML encoding version contains invalid number of texture coordinates,
we have discussed in previously on this list:

 

X3D: Invalid number of items in an attribute array for shape

"Joe_Humanoid/Joe_Kick/Joe_Shape/IndexedFaceSet(Joe_skin_IndexedFaceSet)":

Invalid index: 9, but we have 4 items in 2D texture coordinates

 

Regards,

Michalis

 

_______________________________________________

x3d-public mailing list

 <mailto:x3d-public at web3d.org> x3d-public at web3d.org

 <http://web3d.org/mailman/listinfo/x3d-public_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/20230724/251b3955/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5464 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230724/251b3955/attachment-0001.p7s>


More information about the x3d-public mailing list