[x3d-public] stiffness, waiting for upload. [was Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM? HAnimHumanoid explained, problem identified, corrections applied
John Carlson
yottzumm at gmail.com
Thu Dec 23 23:49:45 PST 2021
Generated 10 mintues ago:
HAnimJoint(DEF='hanim_l_knee',center=(4.116,18.170,-0.863900),name='l_knee',stiffness=[0,0,0],
Not seeing MFFloat in:
$ python3 net/x3djsonld/data/JinLOA4.py
x3d.py package loaded, have fun with X3D Graphics!
Traceback (most recent call last):
File
"/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/JinLOA4.py",
line 177, in <module>
HAnimJoint(DEF='hanim_l_tarsal_distal_interphalangeal_1',center=(2.761,0.539400,5.125),name='l_tarsal_distal_interphalangeal_1',stiffness=[0,0,0],
File
"/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/x3d.py",
line 43724, in __init__
self.stiffness = stiffness
File
"/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/x3d.py",
line 43873, in stiffness
assertValidSFVec3f(stiffness)
File
"/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/x3d.py",
line 3953, in assertValidSFVec3f
raise X3DTypeError(str(value)[:100] + ', type=' + str(type(value))
+ ' is not a valid Python tuple for SFVec3f')
x3d.X3DTypeError: [0, 0, 0], type=<class 'list'> is not a valid Python
tuple for SFVec3f
Spotted stiffness as MFFloat in X3DUOM.
Will rebuild once there's a new python x3d.py package available.
John
> but then got a self-validation error by the JinLOA4.py python program,
>
> create python:
>
> C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.x3d
> processing with X3dToPython stylesheet...
>
> C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.py
> self-validation tests...
>
> validate python:
>
> x3d.py package loaded, have fun with X3D Graphics!
>
> Traceback (most recent call last):
>
> File
> "C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Characters\JinLOA4.py",
> line 169, in <module>
>
> HAnimJoint(DEF='hanim_l_tarsal_distal_interphalangeal_1',center=(2.761,0.539400,5.125),name='l_tarsal_distal_interphalangeal_1',stiffness=[0,0,0],
>
> File "C:\x3d-code\www.web3d.org\x3d\stylesheets\python\x3d\x3d.py",
> line 43724, in __init__
>
> self.stiffness = stiffness
>
> File "C:\x3d-code\www.web3d.org\x3d\stylesheets\python\x3d\x3d.py",
> line 43873, in stiffness
>
> assertValidSFVec3f(stiffness)
>
> File "C:\x3d-code\www.web3d.org\x3d\stylesheets\python\x3d\x3d.py",
> line 3953, in assertValidSFVec3f
>
> raise X3DTypeError(str(value)[:100] + ', type=' + str(type(value))
> + ' is not a valid Python tuple for SFVec3f')
>
> x3d.X3DTypeError: [0, 0, 0], type=<class 'list'> is not a valid Python
> tuple for SFVec3f
>
> Result: 1
>
> Note how stiffness=[0,0,0]was given as a list in brackets, rather than
> a tuple value in parentheses stiffness=(0,0,0) as might be expected
> for SFVec3f, and so this is a useful diagnostic.
>
> However the actual specification type for stiffness is MFFloat. (This
> was a mantis issue, might we tighten it to SFVec3f, but decided to
> keep it MFFloat in case more-advanced kinematics engines were someday
> of interest.
>
> *
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint
>
> 26.3.3 HAnimJoint
>
> HAnimJoint : X3DGroupingNode {
>
> […]
>
> MFFloat [in,out] stiffness [0 0 0] [0,1]
>
> Applied change to X3D DTD, X3D XML Schema and again autogenerated
> X3DUOM and x3d.py and X3D Ontology to match.
>
> 23 DEC 2021, carlson brutzman
>
> - restore type of HAnimJoint stiffness field as MFFloat (vice SFVec3f)
> to match
>
> specification, since more-advanced kinematics engines might someday
> hold interest.
>
> This fixed the stiffness error.
>
> However, next got a surprising conversion error (which might have been
> what you experienced originally):
>
> =====================
>
> create python:
>
> C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.x3d
> processing with X3dToPython stylesheet...
>
> C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation/Characters//JinLOA4.py
> self-validation tests...
>
> validate python:
>
> x3d.py package loaded, have fun with X3D Graphics!Traceback (most
> recent call last):
>
> File
> "C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Characters\JinLOA4.py",
> line 50, in <module>
>
> HAnimHumanoid(DEF='hanim_JinLOA4',loa=4,name='JinLOA4',scale=(0.0225,0.0225,0.0225),version='2.0',
>
> TypeError: HAnimHumanoid.__init__() got an unexpected keyword argument
> 'value'
>
> Result: 1
>
> =====================
>
> Which apparently was on line 1950,
>
> value=MetadataSet(name='HAnimHumanoid.info',reference='https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid',etc.
>
> This conversion should have been metadata=MetadataSet etc. Looks like
> the field name for the HAnimHumanoid MetadataSet was not specified
> incorrectly, the automatic conversion by X3dTidy did not apply correct
> containerField value.
>
> I have added a rule to X3dTidy.xslt that looks for this case (for
> either representation, X3D3 or X3D4) and corrects it. I have added a
> similar diagnostic rule to X3dSchematron checks.
>
> All affected HAnimHumanoid scenes have been updated and are now
> getting compiled correctly by Python.
>
> All changes checked into subversion. Further regression testing
> continuing, website uploads to follow.
>
> So again thanks for exposing this issue. Pretty complex but
> resolvable. Once again the strict nature of Python aided us in
> achieving high Quality Assurance (QA) for X3D.
>
> Happy holidays with X3D! 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:* Wednesday, December 22, 2021 12:44 PM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Graphics
> public mailing list <x3d-public at web3d.org>
> *Subject:* Re: HAnim, X3dToPython.xslt X3dToJson.xslt Upgrade X3DUOM?
>
> I believe I checked the right standard, here:
>
> https://www.web3d.org/documents/specifications/19774-1/V2.0/index.html
>
> And neither value or metadata is a field????
>
> Seems a bit strange.
>
> On Wed, Dec 22, 2021 at 2:20 PM John Carlson <yottzumm at gmail.com> wrote:
>
> hoping to see value field added to HAnimHumanoid in X3DUOM, or
> some notice that the package generating stylesheets are not
> up-to-date.
>
> Also, check to make sure stiffness is assigned the right data
> structure (between list and tuple). And no, iOS, I do not want
> “Tupperware” for the second time. We need more women
> mathematicians (sorry for any stereotyping). On that subject, I
> wonder what coordinate system crocheted hats use?
>
> On Mon, Dec 20, 2021 at 3:17 AM John Carlson <yottzumm at gmail.com>
> wrote:
>
> Okay, now I seem to be having a similar problem between my
> python serializer, X3dToPython.xslt, and probably other
> serialized stuff. I couldn't figure out how to fix the
> stiffness issue in X3dToPython.xslt, but hand-editing saved
> that on this particular python file
> (python/net/x3djsonld/data/JinLOA4.py). Other JinLOA's still
> have lists with Don's generator.
>
> I believe the main change I am dealing with is metadata vs
> value containerFields. See JSON diff below. I'm not seeing
> relevant changes to X3D JSON schema 4.0. Does something need
> to be upgraded in X3DUOM or X3D JSON schema? I'm not seeing a
> value field in HAnimHumanoid.
>
> *~/X3DJSONLD/src/main/python/net/coderextreme/data*$ python
> JinLOA4.py
> Traceback (most recent call last):
> File
> "/home/coderextreme/X3DJSONLD/src/main/python/net/coderextreme/data/JinLOA4.py",
> line 148, in <module>
> HAnimHumanoid23.setValue(MetadataSet24)
> AttributeError: 'org.web3d.x3d.jsail.HAnim.HAnimHumanoid'
> object has no attribute 'setValue'. Did you mean: 'setName'?
> *~/X3DJSONLD/src/main/python/net/x3djsonld/data*$ python
> JinLOA4.py
> x3d.py package loaded, have fun with X3D Graphics!
> Traceback (most recent call last):
> File
> "/home/coderextreme/X3DJSONLD/src/main/python/net/x3djsonld/data/JinLOA4.py",
> line 50, in <module>
> HAnimHumanoid(DEF='hanim_JinLOA4',loa=4,name='JinLOA4',scale=(0.0225,0.0225,0.0225),version='2.0',
>
> TypeError: HAnimHumanoid.__init__() got an unexpected keyword
> argument 'value'
>
>
> *~/X3DJSONLD/src/main/data*$ git diff JinLOA4.json
> *diff --git a/src/main/data/JinLOA4.json
> b/src/main/data/JinLOA4.json*
> *index c970a652a..e1930f4cf 100644*
> *--- a/src/main/data/JinLOA4.json*
> *+++ b/src/main/data/JinLOA4.json*
> @@ -78,7 +78,7 @@
> },
> {
> "@name":"translated",
> - "@content":"14 October 2021"
> + "@content":"20 December 2021"
> },
> {
> "@name":"generator",
> @@ -116,7 +116,7 @@
> "@loa":4,
> "@scale":[0.0225,0.0225,0.0225],
> "@version":"2.0",
> - "-metadata":
> + "-value":[
> { "MetadataSet":
> {
> "@name":"HAnimHumanoid.info",
> @@ -160,7 +160,8 @@
> }
> ]
> }
> - },
> + }
> + ],
> "-skeleton":[
> { "HAnimJoint":
> {
>
> ===================
>
> Validating JSON against schema:
>
> *~/X3DJSONLD/src/main/schema*$ node
> ~/x3dvalidate/x3dvalidate.js ../data/JinLOA4.json
> Loading schema
> Parsing schema
> Adding schema
> Schema 4.0 added
> Schema 4.0 compiled
> ================================================================================
>
> File: ../data/JinLOA4.json
> Error reading ../data/JinLOA4.json
> keyword: required
> instancePath: /X3D/Scene/-children/3/HAnimHumanoid
> message: must have required property @USE
> params: {"missingProperty":"@USE"}
> file: ../data/JinLOA4.json
> version: 4.0
>
> keyword: additionalProperties
> instancePath: /X3D/Scene/-children/3/HAnimHumanoid
> message: must NOT have additional properties
> params: {"additionalProperty":"-value"}
> file: ../data/JinLOA4.json
> version: 4.0
>
> keyword: oneOf
> instancePath: /X3D/Scene/-children/3/HAnimHumanoid
> message: must match exactly one schema in "oneOf"
> params: {"passingSchemas":null}
> file: ../data/JinLOA4.json
> version: 4.0
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211224/0f14ba21/attachment-0001.html>
More information about the x3d-public
mailing list