[x3d-public] Some archive HAnim .x3d models don’t validate with X3DJSAIL.

Joe D Williams joedwil at earthlink.net
Mon Jul 21 13:58:30 PDT 2025


    <meta name=' error ' content=' Legacy model, not valid as X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences and is no longer directly supported '/>


The only difference between loa3 v1 and v2 is the skeleton Joint, Segment, Site names.
In fact, John may have a version of this or close with V2 names, same skeleton as joeKick.
So true it is a legacy model but correct current LOA3 if names are updated.

Thanks,
Joe.  

-----Original Message-----
From: John Carlson <yottzumm at gmail.com>
Sent: Jul 21, 2025 8:46 AM
To: Don Brutzman <don.brutzman at gmail.com>
Cc: X3D Graphics public mailing list <x3d-public at web3d.org>, Joe D Williams <joedwil at earthlink.net>, Nicholas Polys <npolys at vt.edu>
Subject: Re: Some archive HAnim .x3d models don’t validate with X3DJSAIL.

Don,  there’s already a patch for the viewpoints field on SourceForge, many months ago I think.  Apparently, it has not been applied.
 
For HAnimSite, viewpoints *is* valid.  Somehow, I managed to wipe out my changes to the stylesheet:

$ svn diff CreateX3dSceneAccessInterfaceJava.xslt
Index: CreateX3dSceneAccessInterfaceJava.xslt
===================================================================
--- CreateX3dSceneAccessInterfaceJava.xslt (revision 36289)
+++ CreateX3dSceneAccessInterfaceJava.xslt (working copy)
@@ -3853,7 +3853,7 @@
<xsl:text>, "segments" /HAnimHumanoid parent/</xsl:text>

<xsl:when test="starts-with($name,'HAnimSite')">
- <xsl:text>, "sites" /HAnimHumanoid parent/, "skeleton" /HAnimHumanoid parent/</xsl:text>
+ <xsl:text>, "sites" /HAnimHumanoid parent/, "viewpoints" /HAnimHumanoid parent/, "skeleton" /HAnimHumanoid parent/</xsl:text>
</xsl:when>
<xsl:when test="starts-with($name,'HAnimMotion')">
<xsl:text>, "motions" /HAnimHumanoid parent/</xsl:text></xsl:when>
======================================================================


On Tue, Jul 15, 2025 at 3:35 AM Don Brutzman <don.brutzman at gmail.com (mailto:don.brutzman at gmail.com)> wrote:
John, when I run the X3D Validator from within X3D-Edit on this model, it reports the following diagnostics in the log appearing below.  This is relatively short, as these things go, which is good.  Running the model shows that it is pretty functional too.  *  X3D Example Archives: Humanoid Animation, Specifications, HAnim 1 Specification LOA 3 Animation
  *  https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3AnimationIndex.html

Note the presence of the first meta error element in the schematron log, highlighted by me, which states that this model includes errors under our HAnim 2.0 tools (since it has been adapted from HAnim 1.0).
 
That same error notification is also evident from simply inspecting the model documentation,
  *  11 (https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Animation.html#11)           <meta name=' error ' content=' Legacy model, not valid as X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences and is no longer directly supported '/>
  *  https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Animation.html#11

Perhaps fixable in small steps, but please don't be surprised if you encounter errors as advertised.  I do try to be generous in noting errors and warnings in meta tags for each model, when they occur, to encourage precise continued troubleshooting.

 
Your log looks like the same X3DJSAIL internal error repeated many times.  The key to an issue report is conciseness, clarity and repeatability.
 
Well-defined issues (called "tickets" by SourceForge) are addressed when possible (concise, clear, repeatable) and maintained online at
  *  https://sourceforge.net/p/x3d/tickets/


 
--------- X3D Validator checks commenced for HAnim1SpecificationLOA3Invisible.x3d ---------
Performing well-formed XML check...
Checking file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d. (http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d.)..
Well-formed XML check: pass

Performing DOCTYPE check...
[X3dDoctypeChecker] success: valid XML declaration found.[X3dDoctypeChecker] success: final X3D 3.3 DOCTYPE found.
Performing DTD validation...
Checking file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d. (http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.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 "jrt:/java.xml/jdk/xml/internal/jdkcatalog/w3c/dtd/schema10/datatypes.dtd".
XML DTD validation: pass
Performing X3D schema validation...
Checking file:/C:/x3d-code/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d. (http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.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 "jrt:/java.xml/jdk/xml/internal/jdkcatalog/w3c/dtd/schema10/datatypes.dtd".
XML schema validation: pass
Performing X3D regular expression (regex) values check...
X3D regex check: complete
Performing X3D Schematron check...
<meta name='error' content='Legacy model, not valid as X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences and is no longer directly supported'/> [/X3D/head/meta[6], diagnostic]
<meta name='TODO' content='move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations'/> [/X3D/head/meta[14], diagnostic]
<meta name='TODO' content='insert MetadataInteger nodes indicating LOA for each Joint and Segment'/> [/X3D/head/meta[15], diagnostic]
<Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched Y-value height of 0.9149 compared to position='2.6 0.8 0' which has Y-value height of 0.8[/X3D/Scene/Viewpoint[5], warning]
<Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched Y-value height of 0.9149 compared to position='1 0.8 0.5' which has Y-value height of 0.8[/X3D/Scene/Viewpoint[6], warning]
<Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched Y-value height of 0.9149 compared to position='-1 0.8 0.5' which has Y-value height of 0.8[/X3D/Scene/Viewpoint[7], warning]
<Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched Y-value height of 0.9149 compared to position='-2.6 0.8 0' which has Y-value height of 0.8[/X3D/Scene/Viewpoint[8], warning]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> version='1.0' with X3D version='3.3' [/X3D/Scene/HAnimHumanoid, diagnostic]
==================================================================================================================== [/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(HAnimJoint)           within skeleton hierarchy        = 94[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(HAnimSegment)         within skeleton hierarchy        = 94[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(HAnimSite)            within HAnimHumanoid             = 95[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(HAnimSite//Viewpoint) within skeleton hierarchy        = 4[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(HAnimDisplacer)       within skeleton hierarchy        = 0[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(<HAnimJoint   USE='*' containerField = 'joints'/>)     = 94[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(<HAnimSegment USE='*' containerField = 'segments'/>)   = 94[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(<HAnimSite    USE='*' containerField = 'sites'/>)      = 91[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node count(<HAnimSite    DEF='*' name ends with '_view'/>)        = 14[/X3D/Scene/HAnimHumanoid, diagnostic]
<HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> has mismatched HAnimSite     node counts, 95 within skeleton hierarchy and 91 USE nodes in sites field [/X3D/Scene/HAnimHumanoid, diagnostic]
==================================================================================================================== [/X3D/Scene/HAnimHumanoid, diagnostic]
--------- X3D Validator checks complete for HAnim1SpecificationLOA3Invisible.x3d ---------

 
v/r Don



On Mon, Jul 14, 2025 at 9:16 PM John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)> wrote:
Recommendation is to check archive HAnimV2 specification .x3d models by validating them with X3DJSAIL.  There’s no need to run foreign code, just CommandLine.java -validate.  See below for one to choose.  You should be able to search for “Specification” in the email.
 
I do realize running validation on the whole archive takes a lot of time, my archive too, when I’m generating code.  I recommend focusing on a single model.
 
For example:
 
java -cp ~/X3DJSONLD/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate
HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d
 
It would be good to get another set of eyes on this, even if an error isn’t reported.
 
I am adapting my code not to call setContainerFieldOverride().
 
I do have some good news, I am re-adopting the x3d.py module for testing in addition to JRuby and GraalPy for X3DJSAIL.  There are a few tweaks I had to make, but these were made to:
 
https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/PythonSerializer.js

So I have improved Python code generation.  The old PythonSerializerX3DJSAIL is now:
 
https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/GraalPySerializer.js

I had to take a break and get some sleep.
 
Maybe eventually I’ll get to languages like Kotlin and Scala.   I’ve only played with Kotlin on the command line.
 
Typically one would use json2all.js:
 
https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/json2all.js

This is tuned to run in X3DJSONLD/src/main/shell
 
 
John

On Sun, Jul 13, 2025 at 10:45 PM John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)> wrote:
Interestingly enough, I did some X3DJSAIL (recently compiled) against a recent checkout of the HumanoidAnimation archive on sourceforge: 
x3d / Code / [r37163] /www.web3d.org/x3d/content/examples/HumanoidAnimation (https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/)
 
I fully realize that I haven't checked the archives elsewhere (which might not be checked in).
 
Looking for something checked in.  I'll try X3DJSAIL from the distribution website next.
 
John
 
~/www.web3d.org/x3d/content/examples/HumanoidAnimation (http://www.web3d.org/x3d/content/examples/HumanoidAnimation)
$ for i in */*x3d; do java -cp ~/X3DJSONLD/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate $i 2>&1|grep "Invalid setContainerFieldOverride" && echo $i; done
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/AllenDutton.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/BoxMan3.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/BoxMan3AnimationPanel.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/DiamondManLOA_0.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/DiamondManLOA_1.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/DiamondManLOA_2.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/HAnim1SpecificationLOA3Animation.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/HAnim1SpecificationLOA3Illustrated.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/HAnim1SpecificationLOA3Invisible.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Legacy/NancyNativeTags.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
MotionAnimation/BvhConversion1.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
MotionAnimation/BvhConversion1Illustrated.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
MotionAnimation/BvhConversion1Invisible.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
MotionAnimation/Pirouette.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
MotionAnimation/UniversityWisconsionExample1.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Skin/BoxMan4.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Skin/BoxMan4AnimationPanel.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Specifications/HAnim1SpecificationLOA3Animation.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Specifications/HAnim1SpecificationLOA3Illustrated.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Specifications/HAnim1SpecificationLOA3Invisible.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Specifications/HAnim2SpecificationLOA3Illustrated.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Specifications/HAnim2SpecificationLOA3Invisible.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Templates/DiamondManLOA0.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Templates/DiamondManLOA1.x3d
Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: *** Invalid setContainerFieldOverride() value='viewpoints', legal values for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites" "skeleton"'
Templates/DiamondManLOA2.x3d








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250721/30edfbde/attachment-0001.html>


More information about the x3d-public mailing list