<div dir="ltr">Fixing X3DUOM and regenerating the X3D JSON schema patched up these issues.  If someone wants to validate X_ITE components with JSON schema, I'm very close to a solution.<div><br></div><div>Remaining issues I'm discussing with Holger:</div><div><br></div><div>find . -name '*.x3dj' | xargs node ~/x3dvalidate/index.js |egrep '^ params|^ file|^ location'<br> location in document: /X3D/Scene/-children/1/HAnimHumanoid/-skeleton/0<br> params: {"additionalProperty":"Transform"}<br> file: ./BrainStem/glTF/BrainStem.x3dj<br> location in document: /X3D/Scene/-children/1/HAnimHumanoid/-skeleton/0<br> params: {"additionalProperty":"Transform"}<br> file: ./BrainStem/glTF-Embedded/BrainStem.x3dj<br> location in document: /X3D/Scene/-children/1/HAnimHumanoid/-skeleton/0<br> params: {"additionalProperty":"Transform"}<br> file: ./BrainStem/glTF-Meshopt/BrainStem.x3dj</div><div><br></div><div>Transform is placed in skeleton field.  Bad idea.<br> location in document: /X3D/Scene/-children/1/Group/-children/3/PointLight/@radius<br> params: {"comparison":">=","limit":0}<br> file: ./LightsPunctualLamp/glTF/LightsPunctualLamp.x3dj</div><div><br></div><div>Negative radius not allowed.</div><div><br> location in document: /X3D/Scene/-children/1/Group/-children/0/HAnimHumanoid/-skeleton/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0/HAnimJoint/-children/0<br> params: {"additionalProperty":"HAnimHumanoid"}<br> file: ./RecursiveSkeletons/glTF/RecursiveSkeletons.x3dj</div><div><br></div><div>I don't think recursive skeletons are allowed in X3D,  At least not a child of a HAnimJoint.</div><div><br></div><div> location in document: /X3D/Scene/-children/1/Group/-children/1/Transform/-children/19/Transform/-children/0/Shape/-appearance/Appearance/-material/PhysicalMaterial/-extensions/0/SpecularMaterialExtension/@specularColor/0<br> params: {"comparison":"<=","limit":1}</div><div> file: ./SpecularTest/glTF/SpecularTest.x3dj</div><div><br></div><div>We want to change X3D to have specularColor values > 1</div><div><br> location in document: /X3D/Scene/-children/1/Group/-children/1/PointLight/@radius<br> params: {"comparison":">=","limit":0}<br> file: ./TransmissionSuzanne/glTF/TransmissionSuzanne.x3dj</div><div><br></div><div>Ditto for PointLight radius.  should be >= 0</div><div><br> location in document: /X3D/Scene/-children/1/Shape/-appearance/Appearance/-material/PhysicalMaterial/-baseTexture/ImageTexture/@url/0<br> params: {"format":"uri-reference"}</div><div>file: ./Unicode❤♻Test/glTF/Unicode❤♻Test.x3dj<br></div><br><div>Emojis in URIs?</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Dec 4, 2024 at 5:00 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">From cancelled message:<div><br></div><div>Possible Error in X3DUOM:<div><br></div><div><ConcreteNode name="TextureTransform"><br>         <InterfaceDefinition specificationUrl="<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureTransform" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureTransform</a>"<br>                              appinfo="TextureTransform shifts 2D texture coordinates for positioning, orienting and scaling image textures on geometry.">                                                                                                      <componentInfo name="Texturing" level="1"/><div>                       <Inheritance baseType="<b><u><font color="#ff00ff">X3DTextureTransformNode</font></u></b>"/></div><div>[snip]</div><div>      <ConcreteNode name="TextureTransformMatrix3D"><br>         <InterfaceDefinition specificationUrl="<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransformMatrix3D" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransformMatrix3D</a>"<br>                              appinfo="TextureTransformMatrix3D applies a 3D transformation to texture coordinates."><br>            <componentInfo name="Texturing3D" level="1"/></div><div>            <Inheritance baseType="<b><u><font color="#ff00ff">X3DTextureTransformNode</font></u></b>"/>  </div><div><br></div><div>Specification:</div><div> <br><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransformMatrix3D" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransformMatrix3D</a><br><pre style="font-size:11.05px;margin-left:25px"><font color="#000000">TextureTransformMatrix3D : </font><b><u><font color="#ff00ff">X3DSingleTextureTransformNode </font></u></b><font color="#000000">{
  SFString   [in,out] mapping     ""
  SFMatrix4f [in,out] matrix      1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1  (-∞,∞)
  SFNode     [in,out] metadata    NULL    [X3DMetadataObject]
}</font></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureTransform" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureTransform</a></pre><pre style="font-size:11.05px;margin-left:25px"><pre style="font-size:11.05px;margin-left:25px"><font color="#000000">TextureTransform : </font><b><u><font color="#ff00ff">X3DSingleTextureTransformNode </font></u></b><font color="#000000">{
  SFVec2f  [in,out] center      0 0  (-∞,∞)
  SFString [in,out] mapping     ""
  SFNode   [in,out] metadata    NULL [X3DMetadataObject]
  SFFloat  [in,out] rotation    0    (-∞,∞)
  SFVec2f  [in,out] scale       1 1  (-∞,∞)
  SFVec2f  [in,out] translation 0 0  (-∞,∞)
}</font></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre></pre><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><div class="gmail_quote"><div dir="ltr" class="gmail_attr">This is why X3D JSON schema should be accepted in the Web3D Standard suite.  I wouldn't have found this without it.</div><div dir="ltr" class="gmail_attr"><br></div><div class="gmail_attr">Hats off to Holger for great work on x3d-tidy conversions from .gltf to .x3dj which was essential for this.</div><font color="#888888"><div dir="ltr" class="gmail_attr"><br></div><div class="gmail_attr">John</div></font></div></div></div></div></div>
</blockquote></div>