[x3d-public] HAnim sample failing in X3DOM, error in view3dscene, additional tests
John Carlson
yottzumm at gmail.com
Sat Jun 24 23:41:45 PDT 2023
What i will add to my toolset is validating with X3DJSAIL!
But it’s going to slow it down, across hundreds of files. I think i’ll
chop out diffing, except for roundtripping.
Good ideas!
John
On Sun, Jun 25, 2023 at 1:25 AM John Carlson <yottzumm at gmail.com> wrote:
> Yes, better validation tools, like X3DJSAIL!
>
> John
>
> On Sat, Jun 24, 2023 at 10:06 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
>> On Fri, Jun 23, 2023 at 5:39 PM Joseph D Williams <joedwil at earthlink.net>
>> wrote
>>
>> >>>. So, if the tool does not do that, the user may be disappointed. In
>> the long past most every player had many ’tolerant’ behaviors.
>>
>> It is nice to have more tolerant viewers but a user should not be
>> disappointed if an non-valid scene generates errors or does not display.
>>
>> If there was a defacto standard behavior in the long past, that means
>> there may be a good reason to formalize that behaviour. Alternatively,
>> dedicated validation tools could help with detecting and then correcting
>> incomplete and therefore invalid content.
>>
>> Thanks,
>>
>> -Andreas
>>
>>
>>> Thanks,
>>>
>>> Joe
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *From: *Andreas Plesch <andreasplesch at gmail.com>
>>> *Sent: *Thursday, June 22, 2023 2:52 PM
>>> *To: *Michalis Kamburelis <michalis.kambi at gmail.com>
>>> *Cc: *John Carlson <yottzumm at gmail.com>; Brutzman, Donald (Don) (CIV)
>>> <brutzman at nps.edu>; Joe D Williams <joedwil at earthlink.net>; X3D
>>> Graphics public mailing list <x3d-public at web3d.org>
>>> *Subject: *Re: HAnim sample failing in X3DOM, error in view3dscene,
>>> additional tests
>>>
>>>
>>>
>>> Also agreed on performance impacts. There are set_index in fields for
>>> the index fields, meaning that dynamic changes to the indices are allowed.
>>> This is impacting performance in itself and if checking and potentially
>>> filling in values would be required as well it would further
>>> affect performance on a per frame basis.
>>>
>>>
>>>
>>> For example, Three.js is very strict, for performance reasons, in
>>> expecting all input to its interfaces to be valid. It does not perform
>>> error checking itself.
>>>
>>>
>>>
>>> I only mentioned spec changes because in practice users - after a
>>> warning - would still expect some non-fatal behaviour anyways which
>>> requires checking and potentially filling in or altering values. So why not
>>> standardize this behaviour ?
>>>
>>>
>>>
>>> I think I may add checking and recycling with a warning only to the
>>> initial setup of the IFS node but not for dynamic changes via routes or
>>> SAI. Animating textures through texcoord indices seems a valid use case.
>>>
>>>
>>>
>>> Cheers,
>>>
>>>
>>>
>>> -Andreas
>>>
>>>
>>>
>>> On Thu, Jun 22, 2023 at 12:36 PM Michalis Kamburelis <
>>> michalis.kambi at gmail.com> wrote:
>>>
>>> I would be against introducing spec wording to guarantee any behavior
>>> when there's not enough per-vertex data.
>>>
>>>
>>>
>>> 1. There's no obvious resolution (replicating last texture coordinate
>>> may not be "what the author wanted" -- the texture will be likely weirdly
>>> stretched),
>>>
>>>
>>>
>>> 2. Other model formats also don't specify anything in this case. It's
>>> just invalid model causing undefined behavior for glTF, Collada etc.
>>>
>>>
>>>
>>> 3. It may be a performance issue in some scenarios. Some browsers could
>>> be bundled with models essentially guaranteed to be correct (e.g. when you
>>> deliver a game runtime + game assets locally). ( This is just a theoretical
>>> example, CGE doesn't do this now -- we check models for correctness the
>>> same, no matter if it's in view3dscene or in some game using CGE. ) Such
>>> browsers can right now upload the data to GPU in a straightforward fashion
>>> without checking for correctness. Or just check for correctness and fail if
>>> the model is wrong. If the browsers will have to instead potentially
>>> process the data, because even correct models may not have enough data...
>>> then we've lost performance in some cases.
>>>
>>>
>>>
>>> Basically, if we allow something in the spec as "valid model", then
>>> we make a guarantee it is supported. Authors will use it, and developers
>>> have to make sure it is supported. In this particular case, I'd say the
>>> benefit (supporting models where someone likely just made a mistake) is not
>>> big enough to justify the costs (need to process per-vertex data, doing
>>> operation that may not be what author wanted anyway).
>>>
>>>
>>>
>>> The arguments 1 and 2 are really critical for me. There's no sensible
>>> default behavior to do IMHO, author should get a clear message "this is
>>> invalid model, please fix it".
>>>
>>>
>>>
>>> Regards,
>>>
>>> Michalis
>>>
>>>
>>>
>>> czw., 22 cze 2023 o 17:55 Andreas Plesch <andreasplesch at netscape.net>
>>> napisał(a):
>>>
>>> Agreed. I can add a warning to the x3dom console log. But checking for
>>> correctness is really the job of a validator, not necessarily of a viewer.
>>> This is also true for glTF, and probably Collada, which have their own
>>> dedicated validators.
>>>
>>>
>>>
>>> Another possibility is to change the spec. to define a behaviour other
>>> than undefined, unpleasant as it is. The simplest would be probably "use
>>> the last available" to fill in missing
>>> 2d3d4dtexcoords/2d3dcoords/rgbrgbacolors . Alternatively, "replace out of
>>> range indices with the highest in range index". Very similar but has some
>>> consequences for event routing since different fields are altered.
>>>
>>>
>>>
>>> -Andreas
>>>
>>>
>>>
>>> On Thu, Jun 22, 2023 at 8:10 AM Michalis Kamburelis <
>>> michalis.kambi at gmail.com> wrote:
>>>
>>> Andreas,
>>>
>>>
>>>
>>> I especially agree with statement """I can add recycling of texCoords in
>>> x3dom for such a case but it is almost not worth doing since the problem is
>>> that there are many reasonable strategies to divine an author's
>>> intention""" :)
>>>
>>>
>>>
>>> Exactly -- there are many possible options "what to do, what was the
>>> author's intention". There are even more options if we recall that texture
>>> coordinates may also be 3D and 4D, for 3D textures. And the same issue can
>>> occur with other per-vertex data, e.g. colors per vertex, normals, fog
>>> coordinates, shader attributes.
>>>
>>>
>>>
>>> My recommendation would be to first make a clear warning/error to user
>>> about it, so that users know to fix this issue in the model. This is also
>>> what (from my knowledge) everyone else does -- glTF, Collada, Wavefront
>>> OBJ... they all have some indexes and texture coordinates, and they just
>>> require that author provides enough texture coordinates. It's undefined
>>> what happens if model is invalid, it is even possible that renderer uploads
>>> to GPU something invalid and then GPU decides what happens (but letting GPU
>>> choose the undefined behavior is not good from security standpoint --
>>> ideally the renderer should catch it and make reliable error/warning).
>>>
>>>
>>>
>>> We don't want to have a talk in +5 years """OK, what do we do with not
>>> enough per-vertex data, because FreeWRL now fills it with zeroes, X3DOM
>>> cycles from beginning, CGE fills it with 1s""" etc. :) We want our
>>> resolution to be "such models are invalid, authors should get message about
>>> it and know to fix the models".
>>>
>>>
>>>
>>> Regards,
>>>
>>> Michalis
>>>
>>>
>>>
>>>
>>>
>>> czw., 22 cze 2023 o 03:40 John Carlson <yottzumm at gmail.com> napisał(a):
>>>
>>> Here's a near perfect file before scaling. Still working on that as it
>>> view3dscene is reporting metadata errors.
>>>
>>>
>>>
>>> On Wed, Jun 21, 2023 at 7:09 PM Brutzman, Donald (Don) (CIV) <
>>> brutzman at nps.edu> wrote:
>>>
>>> Diagnostic reports for JinLOA4.x3d, file size 684156
>>>
>>>
>>>
>>> ·
>>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>>>
>>>
>>>
>>> 1. X3D-Edit checkmark for X3D Validator reports
>>>
>>>
>>>
>>> --------- X3D Validator checks commenced for JinLOA4.x3d ---------
>>>
>>>
>>>
>>> Performing well-formed XML check...
>>>
>>> Checking file:/C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.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/Characters/JinLOA4.x3d.
>>> ..
>>>
>>> XML DTD validation: pass
>>>
>>>
>>>
>>> Performing X3D schema validation...
>>>
>>> Checking file:/C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.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]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> version='2.0' with
>>> X3D version='4.0' [/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> ====================================================================================================================
>>> [/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(HAnimJoint) within skeleton hierarchy =
>>> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(HAnimSegment) within skeleton hierarchy =
>>> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(HAnimSite) within HAnimHumanoid =
>>> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(HAnimSite//Viewpoint) within skeleton hierarchy =
>>> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(HAnimDisplacer) within skeleton hierarchy =
>>> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(<HAnimJoint USE='*' containerField = 'joints'/>) =
>>> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(<HAnimSegment USE='*' containerField = 'segments'/>) =
>>> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(<HAnimSite USE='*' containerField = 'sites'/>) =
>>> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
>>> count(<HAnimSite DEF='*' name ends with '_view'/>) =
>>> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> ====================================================================================================================
>>> [/X3D/Scene/HAnimHumanoid, diagnostic]
>>>
>>> <HAnimJoint DEF='hanim_l_tarsal_distal_interphalangeal_1'
>>> name='l_tarsal_distal_interphalangeal_1'/> is not a recognized name for
>>> HAnim2 HAnimJoint
>>> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint,
>>> warning]
>>>
>>> <HAnimSegment DEF='hanim_l_tarsal_distal_phalanx_1'
>>> name='l_tarsal_distal_phalanx_1'/> has parent HAnimJoint
>>> name='l_tarsal_distal_interphalangeal_1' rather than expected parent
>>> name='l_tarsal_interphalangeal_1', recommend checking model
>>> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimSegment,
>>> warning]
>>>
>>> <HAnimJoint DEF='hanim_r_tarsal_distal_interphalangeal_1'
>>> name='r_tarsal_distal_interphalangeal_1'/> is not a recognized name for
>>> HAnim2 HAnimJoint
>>> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint,
>>> warning]
>>>
>>> <HAnimSegment DEF='hanim_r_tarsal_distal_phalanx_1'
>>> name='r_tarsal_distal_phalanx_1'/> has parent HAnimJoint
>>> name='r_tarsal_distal_interphalangeal_1' rather than expected parent
>>> name='r_tarsal_interphalangeal_1', recommend checking model
>>> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimSegment,
>>> warning]
>>>
>>> <HAnimJoint DEF='hanim_vl5' name='vl5'/> has parent HAnimJoint
>>> name='sacroiliac' rather than expected parent name='humanoid_root',
>>> recommend checking model
>>> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3], warning]
>>>
>>> <HAnimJoint DEF='hanim_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/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],
>>> warning]
>>>
>>> <HAnimJoint DEF='hanim_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/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],
>>> warning]
>>>
>>>
>>>
>>> --------- X3D Validator checks complete for JinLOA4.x3d ---------
>>>
>>>
>>>
>>>
>>>
>>> 2. Andreas link to X3DOM Editor
>>>
>>>
>>>
>>> ·
>>> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>>>
>>>
>>>
>>> provides following console:
>>>
>>>
>>>
>>> Error with Permissions-Policy header: Origin trial controlled feature
>>> not enabled: 'interest-cohort'.
>>>
>>> x3dom-full.debug.js:65740 Uncaught (in promise) TypeError: Cannot read
>>> properties of undefined (reading 'x')
>>>
>>> at x3dom.registerNodeType.defineClass.nodeChanged.nodeChanged
>>> (x3dom-full.debug.js:65740:90)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12112:19)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12103:36)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12103:36)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>> nodeChanged @ x3dom-full.debug.js:65740
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12112
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> (anonymous) @ x3dom-full.debug.js:12105
>>>
>>> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>>>
>>> x3dom.X3DDocument._setup @ x3dom-full.debug.js:21793
>>>
>>> next_step @ x3dom-full.debug.js:21731
>>>
>>> next_step @ x3dom-full.debug.js:21743
>>>
>>> x3dom.X3DDocument.load @ x3dom-full.debug.js:21747
>>>
>>> x3dom.X3DCanvas.load @ x3dom-full.debug.js:2121
>>>
>>> onload @ x3dom-full.debug.js:20366
>>>
>>> x3dom.reload @ x3dom-full.debug.js:20429
>>>
>>> x3dom.Runtime.replaceWorld @ x3dom-full.debug.js:20043
>>>
>>> updatex3d @ index.html?url=
>>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d:228
>>>
>>> load @ index.html?url=
>>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d:214
>>>
>>>
>>>
>>>
>>>
>>> 3. am getting similar browser console error if launched directly in X3DOM
>>>
>>>
>>>
>>> ·
>>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4X3dom.xhtml
>>>
>>>
>>>
>>>
>>>
>>> 4. view3dscene (launched from X3D-Edit) reports
>>>
>>>
>>>
>>>
>>>
>>> Suggestion: add a button to view3dscene diagnostic that enables user to
>>> “Copy to clipboard” – usually this is provided.
>>>
>>>
>>>
>>> Closing the X3DOM editor did not fix this access problem.
>>>
>>>
>>>
>>> Closing the X3D-Edit pane for this problem did not fix this access
>>> problem, but closing X3D-Edit executable (surprisingly) did. Not sure why,
>>> will look further at that.
>>>
>>>
>>>
>>> Now view3dscene renders the model and provides 11 warnings:
>>>
>>>
>>>
>>> 11 warnings:
>>>
>>>
>>>
>>> X3D: Unknown X3D field name (unhandled X3D XML attribute) "loa" in node
>>> "HAnimHumanoid"
>>>
>>> X3D: Error when reading MFString field "value" value. Possibly missing
>>> double quotes (treating as a single string): Error at line 1 column 4:
>>> Expected string, got "Jin"
>>>
>>> X3D: Error when reading MFString field "value" value. Possibly missing
>>> double quotes (treating as a single string): Error at line 1 column 19:
>>> Expected string, got "myeongwonlee at gmail"
>>>
>>> X3D: X3D XML: More than one value specified for SFNode field
>>> MetadataSet.metadata
>>>
>>> X3D: Error when reading MFString field "value" value. Possibly missing
>>> double quotes (treating as a single string): Error at line 1 column 3:
>>> Expected string, got integer 31
>>>
>>> X3D: X3D XML: More than one value specified for SFNode field
>>> MetadataSet.metadata
>>>
>>> X3D: Error when reading MFString field "value" value. Possibly missing
>>> double quotes (treating as a single string): Error at line 1 column 7:
>>> Expected string, got "female"
>>>
>>> X3D: X3D XML: More than one value specified for SFNode field
>>> MetadataSet.metadata
>>>
>>> X3D: X3D XML: More than one value specified for SFNode field
>>> MetadataSet.metadata
>>>
>>> X3D: X3D XML: More than one value specified for SFNode field
>>> MetadataSet.metadata
>>>
>>> X3D: Invalid index for field TextureCoordinate.point (MFVec2f)
>>>
>>>
>>>
>>> Scene URL: file:///C:/x3d-code/
>>> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>>> .
>>>
>>> Use "File->View Warnings" menu to view these warnings again.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 5. Testing in X_ITE: renders fine, shows no errors in console.
>>>
>>>
>>>
>>> ·
>>> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4X_ITE.html
>>>
>>>
>>>
>>> 6. Xj3D has a verbose console without any errors apparent,
>>> However only renders a black screen.
>>>
>>> 7.
>>>
>>> Xj3D Xj3dVersionInformation: v2.3-nps utilizing NPS Open DIS v7
>>>
>>> with 3D rendering by
>>>
>>>
>>> -----------------------------------------------------------------------------------------------------
>>>
>>> Package: org.j3d.aviatrix3d
>>>
>>> Extension Name: org.j3d.aviatrix3d
>>>
>>> Specification Title: Aviatrix3D 3.1.1-nps - NPS SF
>>>
>>> Specification Vendor: Justin Couch
>>>
>>> Specification Version: 3.1.1
>>>
>>> Implementation Title: Aviatrix3D 3.1.1-nps - NPS SF
>>>
>>> Implementation Vendor: Savage Research Group (SRG) of the Modeling,
>>> Virtual Environments and Simulation (MOVES) Institute at the Naval
>>> Postgraduate School (NPS), Monterey, CA
>>>
>>> Implementation Vendor ID: edu.nps.moves
>>>
>>> Implementation URL:
>>> https://svn.code.sf.net/p/xj3d/code/branches/Supporting_APIs/aviatrix3d
>>>
>>> Implementation Version: 3.1.1-nps built on Fri, 26 May 2023 1434 -0700
>>>
>>> Implementation Build: 3.1.1-nps
>>>
>>> Implementation Branch: branches/Supporting_APIs/aviatrix3d
>>>
>>> Implementation Commit: 12701
>>>
>>> Implementation SHA Sources: null
>>>
>>> Implementation SHA Classes: null
>>>
>>> Implementation SHA Classes-this: null
>>>
>>> Implementation SHA Natives: null
>>>
>>> Implementation SHA Natives-this: null
>>>
>>>
>>> -----------------------------------------------------------------------------------------------------
>>>
>>> on top of
>>>
>>>
>>> -----------------------------------------------------------------------------------------------------
>>>
>>> Package: com.jogamp
>>>
>>> Extension Name: com.jogamp
>>>
>>> Specification Title: JogAmp Java Bindings Specification
>>>
>>> Specification Vendor: JogAmp Community
>>>
>>> Specification Version: 2.5
>>>
>>> Implementation Title: JogAmp Java Bindings Fat Jar
>>>
>>> Implementation Vendor: JogAmp Community
>>>
>>> Implementation Vendor ID: com.jogamp
>>>
>>> Implementation URL: http://jogamp.org/
>>>
>>> Implementation Version: 2.5.0-rc-20230515
>>>
>>> Implementation Build: 2.5-b957-20230515
>>>
>>> Implementation Branch: origin/master
>>>
>>> Implementation Commit: 9301bf1854d91405319801b62c268e2ca09406e6
>>>
>>> Implementation SHA Sources: null
>>>
>>> Implementation SHA Classes: null
>>>
>>> Implementation SHA Classes-this: null
>>>
>>> Implementation SHA Natives: null
>>>
>>> Implementation SHA Natives-this: null
>>>
>>> -----------------------------------------------------------------------------------------------------
>>>
>>>
>>> Operating system: Windows 10 10.0
>>>
>>> Java environment: Oracle Corporation 20.0.1
>>>
>>>
>>>
>>> BuildStamp time and date: 1436 on May 26 2023
>>>
>>>
>>>
>>> Initializing OpenGL X3D browser in GLCanvas (AWT) mode.
>>>
>>>
>>>
>>> Graphics architecture will support 16 samples of full screen
>>> antialiasing.
>>>
>>> Warning: Native image loading unavailable, using default.
>>>
>>>
>>>
>>>
>>>
>>> 8. Not seeing any texture coordinate arithmetic problems. There
>>> is probably a rule in X3D Schematron (within X3D Validator) to test for
>>> that. Recommend checking further and we can define/implement further
>>> validation rules as needed.
>>>
>>>
>>>
>>> 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, June 21, 2023 2:25 PM
>>> *To:* Andreas Plesch <andreasplesch at gmail.com>; Brutzman, Donald (Don)
>>> (CIV) <brutzman at nps.edu>; Joe D Williams <joedwil at earthlink.net>
>>> *Cc:* Michalis Kamburelis <michalis.kambi at gmail.com>; x3dom mlist <
>>> x3dom-users at lists.sourceforge.net>; x3dom-developer mlist <
>>> x3dom-developers at lists.sourceforge.net>
>>> *Subject:* Re: HAnim sample failing in X3DOM, error in view3dscene.
>>>
>>>
>>>
>>> Yes, good analysis Andreas and Michalis, I concluded the same thing. I
>>> understand that i can bisect the file…easier said than done. What i can do
>>> is write a program to find the bug and then extend output model with a key
>>> phrase in the TextureCoordinate point field. That will be easier that
>>> searching by hand.
>>>
>>>
>>>
>>> I suggest a change to the x3d validator.
>>>
>>>
>>>
>>> John
>>>
>>>
>>>
>>> On Wed, Jun 21, 2023 at 10:45 AM Andreas Plesch <andreasplesch at gmail.com>
>>> wrote:
>>>
>>> I agree with Michalis' analysis and also remember a similar discussion,
>>> I think with regards to Joe's kick model.
>>>
>>>
>>>
>>>
>>> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>>> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fandreasplesch.github.io%2FLibrary%2FViewer%2Findex.html%3Furl%3Dhttps%3A%2F%2Fwww.web3d.org%2Fx3d%2Fcontent%2Fexamples%2FHumanoidAnimation%2FCharacters%2FJinLOA4.x3d&data=05%7C01%7Cbrutzman%40nps.edu%7C8b5b4f2f27684455446308db729dfd41%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638229795120886399%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=LVKN%2BcRGX7NgY6H28BVXR7iSmCefJaYdX7W17qUVnlY%3D&reserved=0>
>>>
>>>
>>>
>>> lets you edit the xml interactively and perhaps can aid in finding the
>>> missing tex. coords.
>>>
>>>
>>>
>>> Cheers, Andreas
>>>
>>>
>>>
>>> On Wed, Jun 21, 2023 at 10:43 AM Michalis Kamburelis <
>>> michalis.kambi at gmail.com> wrote:
>>>
>>> There are not enough texture coordinates specified. The X3D model isn't
>>> valid.
>>>
>>>
>>>
>>> (We talked about this on x3d-public already some time ago, see thread
>>> "[x3d-public] New description fields".)
>>>
>>>
>>>
>>> Details:
>>>
>>>
>>>
>>> - Renderer doesn't have enough information what texture coordinate to
>>> assign to some vertexes. (And there's no reasonable fallback, e.g. "use
>>> last texture coordinate" wouldn't make sense -- that's not a useful thing
>>> to do with texture coordinates, at least in general models it wouldn't make
>>> sense, better to ask user to provide all texture coordinates.)
>>>
>>>
>>>
>>> - Spec:
>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD/Part01/components/geometry3D.html#IndexedFaceSet
>>> , texts like
>>>
>>>
>>>
>>> - """If the greatest index in the texCoordIndex field is N, then
>>> there shall be N+1 texture coordinates in the X3DTextureCoordinateNode."""
>>>
>>>
>>>
>>> - """If the greatest index in the coordIndex field is N, then there
>>> shall be N+1 texture coordinates in the X3DTextureCoordinateNode node."""
>>>
>>>
>>>
>>> I improved the view3dscene error message to say:
>>>
>>>
>>> X3D: Invalid index 44 (should be less than count 44) for field
>>> TextureCoordinate.point (type: MFVec2f)
>>>
>>>
>>>
>>> To pinpoint it (as I see there are many TextureCoodinate nodes), you can
>>> bisect the model (cut away this or that half, and see when it stops
>>> failing), or assign names to X3D names to pinpoint it, i.e. edit X3D to
>>> change
>>>
>>>
>>>
>>> <TextureCoordinate ...
>>>
>>>
>>>
>>> ->
>>>
>>>
>>>
>>> <TextureCoordinate DEF="something unique" ...
>>>
>>>
>>>
>>> Unfortunately in view3dscene we don't have at that point knowledge about
>>> exact line number from XML file -- I know, it would be useful in this case,
>>> to say "the problem is at TextureCoordinate at line 123 in X3D XML".
>>>
>>>
>>>
>>> Regards,
>>>
>>> Michalis
>>>
>>>
>>>
>>>
>>>
>>> śr., 21 cze 2023 o 15:15 John Carlson <yottzumm at gmail.com> napisał(a):
>>>
>>> I'm having issues with the attached file in X3DOM. Thanks for any
>>> assistance!
>>>
>>>
>>>
>>> Here's what the errors show in view3dscene:
>>>
>>>
>>>
>>>
>>>
>>> x3dom-full.debug.js:65877 Uncaught TypeError: Cannot read properties of
>>> undefined (reading 'x')
>>>
>>> at x3dom.registerNodeType.defineClass.nodeChanged.nodeChanged
>>> (x3dom-full.debug.js:65877:90)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12167:19)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12158:36)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>> at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12158:36)
>>>
>>> at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>>>
>>> at NodeList.forEach (<anonymous>)
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>>
>>>
>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230625/d0910b21/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: B0E2396B7A8D4E0F8D125C347BFEFD03.png
Type: image/png
Size: 78422 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230625/d0910b21/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D221D345040C4E87A553D1093BC8F25D.png
Type: image/png
Size: 150061 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230625/d0910b21/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 774AAD7D16FA47EB917EF22C219DF498.png
Type: image/png
Size: 55497 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230625/d0910b21/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: A2B67AFAC6244DD8BF90135FC050C6BD.png
Type: image/png
Size: 110095 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230625/d0910b21/attachment-0007.png>
More information about the x3d-public
mailing list