[x3d-public] HAnim sample failing in X3DOM, error in view3dscene, additional tests

John Carlson yottzumm at gmail.com
Sat Jun 24 22:35:03 PDT 2023


Andreas, Michalis, Holger: there’s a todo on my list for x3dom
JSONParser.js for when JSON is translated to a  DOM document—for value
fields,  this applies to all MetadataXxx that needs a
containerField=‘value’, not MetadataSet in many cases.  I’ve tested this
for X3DJSONLD’s X3DJSONLD.js on the way to JavaSerializer.js. (json2all.js
drops a turd file …x3d.new.   It has been working for view3dscene that no
longer reports the missing containerField—I’m not sure why we need to
report on missing containerField’s, Michalis?   I don’t know if x3dom or
x-ite requires a containerField or not.

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/240ddb89/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/240ddb89/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/240ddb89/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/240ddb89/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/240ddb89/attachment-0007.png>


More information about the x3d-public mailing list