[x3d-public] List of Differences between Spec and X3DUOM

Holger Seelig holger.seelig at yahoo.de
Thu Nov 23 09:05:38 PST 2023


Tested again, and did not found any issues :), Thanks again.

--
Holger Seelig
Leipzig, Germany

holger.seelig at yahoo.de
https://create3000.github.io/x_ite/

> Am 21.11.2023 um 18:06 schrieb Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>:
> 
> Thanks for excellent followup.  Again thanks for essential value.  Belated revisions:
>  
>  
> X3D XML Schema update activity:
> https://www.web3d.org/specifications/x3d-schema-changelog.txt
>  
> 20 NOV 2023, seelig, brutzman
> - X3DEnvironmentalSensorNode size field has accessType inputOutput which affects
>   ProximitySensor TransformSensor VisibilitySensor GeoProximitySensor
> - HAnimHumanoid motionsEnabled field is an attribute, not an element
> - ArcClose2D Disk2D Rectangle2D TriangleSet2D field solid has default value false
> - Extrusion fields have accessType initializeOnly, creaseAngle has type SFFloat
> - HAnimHumanoid fields jointBindingPositions jointBindingRotations jointBindingScales
>   have default value of empty array
> - HAnimMotion fields channels, joints have type SFString
> - HAnimMotion field enabled has default value true
> - Text field solid has default value false
>  
>  
> X3D DTD update activity:
> https://www.web3d.org/specifications/x3d-dtd-changelog.txt
>  
> 20 NOV 2023, seelig, brutzman
> - ArcClose2D Disk2D Rectangle2D TriangleSet2D field solid has default value false
> - HAnimMotion field enabled has default value true
>  
>  
> Regarding default value of height field, no embedded commas are in spec or X3DUOM.
> Field MFDouble 'height' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0, 0 !== 0 0.
> Regarding FloatVertexAttribute, Matrix3VertexAttribute,Matrix4VertexAttribute name field, type xs:NMTOKEN (name token) is a restriction on string type in an effort to avoid whitespace and illegal characters.  We use this type restriction a number of other times in the schema as well.
> https://www.web3d.org/x3d/content/X3dTooltips.html#NMTOKEN
> NMTOKEN <https://www.w3.org/TR/REC-xml/#sec-common-syn> is an XML term for Name Token <https://www.w3.org/TR/REC-xml/#sec-common-syn>. NMTOKEN is a special kind of CDATA <https://www.web3d.org/x3d/content/X3dTooltips.html#CDATA> string that must match naming requirements for legal characters, with no whitespace characters allowed. Additionally, from XML specification: disallowed initial characters for Names include numeric digits, diacritics (letter with accent or marking), the "." period character (sometimes called full stop) and the "-" hyphen character. For further information see X3D Scene Authoring Hints: Naming Conventions <https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions>.
> Updated X3D 4.0 XML Schema, DTD,  Tooltips, and XSLT conversion stylesheets. Performing further regression testing to check correctness, no problems expected.
>  
> Checked in and ready for retest.
>  
> all the best, Don
> -- 
> Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu <mailto: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: Holger Seelig <holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>> 
> Sent: Monday, November 6, 2023 3:36 AM
> To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu>>
> Cc: X3D <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
> Subject: Re: List of Differences between Spec and X3DUOM
>  
> Thank you Don for quick change, I run the script again and still found these:
>  
> Field 'size' in node ProximitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'size' in node TransformSensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'size' in node VisibilitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field SFBool 'solid' in node ArcClose2D has different value (Spec <=> X3DUOM): false !== true.
> Field SFBool 'solid' in node Disk2D has different value (Spec <=> X3DUOM): false !== true.
> Field SFBool 'solid' in node Rectangle2D has different value (Spec <=> X3DUOM): false !== true.
> Field SFBool 'solid' in node TriangleSet2D has different value (Spec <=> X3DUOM): false !== true.
> Field 'beginCap' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'endCap' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'ccw' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'convex' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'creaseAngle' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'creaseAngle' in node Extrusion has different type (Spec <=> X3DUOM): SFFloat !== SFBool.
> Field 'crossSection' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'orientation' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'scale' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field 'spine' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
> Field MFDouble 'height' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0, 0 !== 0 0.
> Field 'size' in node GeoProximitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field MFVec3f 'jointBindingPositions' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 0.
> Field MFRotation 'jointBindingRotations' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 1 0.
> Field MFVec3f 'jointBindingScales' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 0.
> Field SFBool 'enabled' in node HAnimMotion has different value (Spec <=> X3DUOM): true !== false.
> Field 'joints' in node HAnimMotion has different type (Spec <=> X3DUOM): SFString !== MFString.
> Field 'channels' in node HAnimMotion has different type (Spec <=> X3DUOM): SFString !== MFString.
> Field 'name' in node FloatVertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
> Field 'name' in node Matrix3VertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
> Field 'name' in node Matrix4VertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
> Field SFBool 'solid' in node Text has different value (Spec <=> X3DUOM): false !== true.
>  
> --
> Holger Seelig
> Leipzig, Germany
>  
> holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>
> https://create3000.github.io/x_ite/
> 
> 
> Am 06.11.2023 um 05:38 schrieb Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu>>:
>  
> Again wow!! and thank you Holger for tremendous work.  Super valuable.
>  
> I have tried to carefully handle each issue and think the results should be pretty clean now.  Results in version control and also online at
>  
> X3D Specifications: Schema and DOCTYPE Validation
> https://www.web3d.org/specifications
>  
> Here are summaries of what I changed and tested.
>  
>  
> a.   X3D Schema (which is used to autogenerate X3DUOM)
>  
> X3D XML Schema update activity:
> https://www.web3d.org/specifications/x3d-schema-changelog.txt
>  
> 5 NOV 2023, seelig, brutzman
> - all solid fields have accessType initializeOnly
> - (4.0) added ComposedCubeMapTexture textureProperties , must follow other textures
> - several size fields have accessType initializeOnly (rather than inputOutput):
>   X3DEnvironmentalSensorNode, Box, GeneratedCubeMapTexture, Rectangle2D
> - ElevationGrid    default values xDimension 0, zDimension 0, height is empty array
> - GeoElevationGrid default values xDimension 0, zDimension 0, height is [0 0]
>   with difference noted as X3D 4.1 erratum in issue tracker under Mantis 1447.
> - GeoElevationGrid set_height has type MFDouble
> - Extrusion fields beginCap, ccw, convex, creaseAngle, crossSection, endCap,
>   orientation, scale, solid, spine have accessType initializeOnly.
> - note fieldOfView default values set to 0.7854 rather than spec value 0.785398
>   in order to avoid false-positive validation errors, also avoid roundoff errors in tools
> - HAnimDisplacer attribute coordIndex has accessType inputOutput
> - added HAnimHumanoid MFBool [in out] motionsEnabled
> - HAnimMotion added next, previous fields
> - SplinePositionInterpolator, SplinePositionInterpolator2D, SplineScalarInterpolator
>   closed field has accessType inputOutput
> - SquadOrientationInterpolator has no closed field
> - LayerSet order field has accessType inputOutput
> - PointLight, SpotLight radius field has accessType inputOutput
> - NurbsOrientationInterpolator, NurbsPositionInterpolator knot field
>   has accessType inputOutput
> - (4.0) OrthoViewpoint fieldOfView has type MFFloat even though SFVec3f is more
>   correct to prevent modeling errors, deficiency recorded as Mantis 1398
> - (4.0) ParticleSystem color field has type SFNode (synonym for prior colorRamp field)
> - SurfaceEmitter has no coordIndex fields, removed
> - CylinderSensor, PlaneSensor field axisRotation default value 0 0 1 0
> - UniversalJoint field body2axis is type SFVec3f
> - X3DVertexAttributeNode, FloatVertexAttribute, Matrix3VertexAttribute Matrix4VertexAttribute
>   field name has accessType inputOutput
> - (4.0) added Appearance backMaterial field
> - (4.0) added TextureTransform, TextureTransform3D, TextureTransformMatrix3D mapping field
>  
>  
> b.   X3D DOCTYPE 3.0..4.0
>  
> X3D DTD update activity:
> https://www.web3d.org/specifications/x3d-dtd-changelog.txt
>  
> 5 NOV 2023, seelig, brutzman
> - (4.0) added ComposedCubeMapTexture textureProperties , must follow other textures
> - ElevationGrid    default values xDimension 0, zDimension 0, height is empty array
> - GeoElevationGrid default values xDimension 0, zDimension 0, height is [0 0]
>   with difference noted as X3D 4.1 erratum in issue tracker under Mantis 1447.
> - note fieldOfView default values set to 0.7854 rather than spec value 0.785398
>   in order to avoid false-positive validation errors, also avoid roundoff errors in tools
> - (4.0) OrthoViewpoint fieldOfView has type MFFloat even though SFVec3f is more
>   correct to prevent modeling errors, deficiency recorded as Mantis 1398
> - SurfaceEmitter has no coordIndex field, removed
> - CylinderSensor, PlaneSensor field axisRotation default value 0 0 1 0
> - (4.0) added TextureTransform3D, TextureTransformMatrix3D mapping field
>  
>  
> c.    Lots of corresponding adjustments to X3D Tooltips, hopefully consistently.
>  
> Extensible 3D (X3D) 4.0 Tooltips
> https://www.web3d.org/x3d/tooltips/X3dTooltips.html
>  
> d.   Things that I was unable to reconcile from your log:
>  
> FontStyle, ScreenFontStyle already have style field OK
> TextureProjectorParallel does not have fields upVector,shadowColor,shadowBias,shadowMapSize
>  
> So, a major step forward.  Much appreciated.  Further double/triple-checking welcome, by anyone.  High-quality X3D validation and tools and libraries and documentation are important.
>  
> Looking ahead: I’ll need some time to further test autogenerated Java X3DJSAIL and Python X3DPSAIL x3d.py libraries.  Will announce when updated., likely another week or two  Am thinking of adding consistent convenience/utility methods (perhaps something like showXMLcontainerFields) to help people gain greater confidence (and better diagnostic possibilities) when serializing a model out to X3D XML form.
>  
> Have fun with high-quality X3D!  8)
>  
> all the best, Don
> -- 
> Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu <mailto: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: Holger Seelig <holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>> 
> Sent: Wednesday, November 1, 2023 2:56 PM
> To: X3D <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
> Cc: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu>>
> Subject: List of Differences between Spec and X3DUOM
>  
> I have compared the specification from proof with X3DUOM and found a lot of differences of field values, number of fields, and access type. I have double checked all issues from:
>  
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/Architecture.html
> https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml
>  
> My guess is that a lot of issues are correct in X3DUOM, but as far as I can see, not all.
>  
> The list still misses Sound component.
> Below is the list of differences:
>  
> Field 'solid' in node IndexedQuadSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node QuadSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> ComposedCubeMapTexture number of fields differ (Spec <=> X3DUOM): 9 <=> 8.
>   Where [textureProperties] not in X3DUOM.
> Field 'size' in node GeneratedCubeMapTexture has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node ArcClose2D has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Disk2D has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'size' in node Rectangle2D has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Rectangle2D has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node TriangleSet2D has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'size' in node Box has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Box has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Cone has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Cylinder has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field SFInt32 'xDimension' in node ElevationGrid has different value (Spec <=> X3DUOM): 0 !== 2.
> Field SFInt32 'zDimension' in node ElevationGrid has different value (Spec <=> X3DUOM): 0 !== 2.
> Field 'solid' in node ElevationGrid has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field MFFloat 'height' in node ElevationGrid has different value (Spec <=> X3DUOM):  !== 0 0 0 0.
> Field 'solid' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'orientation' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'scale' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node IndexedFaceSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node Sphere has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'set_height' in node GeoElevationGrid has different type (Spec <=> X3DUOM): MFDouble !== MFFloat.
> Field SFInt32 'xDimension' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0 !== 2.
> Field SFInt32 'zDimension' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0 !== 2.
> Field 'solid' in node GeoElevationGrid has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field MFDouble 'height' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0, 0 !== 0 0 0 0.
> Field SFFloat 'fieldOfView' in node GeoViewpoint has different value (Spec <=> X3DUOM): 0.785398 !== 0.7854.
> Field 'coordIndex' in node HAnimDisplacer has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> HAnimHumanoid number of fields differ (Spec <=> X3DUOM): 31 <=> 30.
>   Where [motionsEnabled] not in X3DUOM.
> HAnimMotion number of fields differ (Spec <=> X3DUOM): 20 <=> 18.
>   Where [next,previous] not in X3DUOM.
> Field 'closed' in node SplinePositionInterpolator has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'closed' in node SplinePositionInterpolator2D has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'closed' in node SplineScalarInterpolator has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Unknown field 'closed' of node SquadOrientationInterpolator in X3DUOM.
> Field 'order' in node LayerSet has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> ScreenFontStyle number of fields differ (Spec <=> X3DUOM): 10 <=> 9.
>   Where [style] not in X3DUOM.
> Field 'radius' in node PointLight has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'radius' in node SpotLight has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'knot' in node NurbsOrientationInterpolator has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'solid' in node NurbsPatchSurface has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'knot' in node NurbsPositionInterpolator has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
> Field 'solid' in node NurbsSweptSurface has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node NurbsSwungSurface has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node NurbsTrimmedSurface has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'fieldOfView' in node OrthoViewpoint has different type (Spec <=> X3DUOM): MFFloat !== SFVec4f.
> Field SFFloat 'fieldOfView' in node Viewpoint has different value (Spec <=> X3DUOM): 0.785398 !== 0.7854.
> Field SFFloat 'angle' in node ConeEmitter has different value (Spec <=> X3DUOM): 0.785398 !== 0.7854.
> Field 'color' in node ParticleSystem has different type (Spec <=> X3DUOM): SFNode !== MFNode.
> SurfaceEmitter number of fields differ (Spec <=> X3DUOM): 7 <=> 9.
>   Where [coordIndex,set_coordIndex] not in Spec.
> Field SFRotation 'axisRotation' in node PlaneSensor has different value (Spec <=> X3DUOM): 0 0 1 0 !== 0 1 0 0.
> Field 'solid' in node IndexedTriangleFanSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node IndexedTriangleSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node IndexedTriangleStripSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node TriangleFanSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node TriangleSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'solid' in node TriangleStripSet has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'body2Axis' in node UniversalJoint has different type (Spec <=> X3DUOM): SFVec3f !== SFFloat.
> Field 'name' in node FloatVertexAttribute has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'name' in node Matrix3VertexAttribute has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field 'name' in node Matrix4VertexAttribute has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Appearance number of fields differ (Spec <=> X3DUOM): 12 <=> 11.
>   Where [backMaterial] not in X3DUOM.
> FontStyle number of fields differ (Spec <=> X3DUOM): 10 <=> 9.
>   Where [style] not in X3DUOM.
> Field 'solid' in node Text has different access type (Spec <=> X3DUOM): initializeOnly !== inputOutput.
> Field SFFloat 'fieldOfView' in node TextureProjector has different value (Spec <=> X3DUOM): 0.785398 !== 0.7854.
> TextureProjectorParallel number of fields differ (Spec <=> X3DUOM): 20 <=> 16.
>   Where [upVector,shadowColor,shadowBias,shadowMapSize] not in X3DUOM.
> TextureTransform number of fields differ (Spec <=> X3DUOM): 6 <=> 5.
>   Where [mapping] not in X3DUOM.
> TextureTransform3D number of fields differ (Spec <=> X3DUOM): 6 <=> 5.
>   Where [mapping] not in X3DUOM.
> TextureTransformMatrix3D number of fields differ (Spec <=> X3DUOM): 3 <=> 2.
>   Where [mapping] not in X3DUOM.
> Test done.
>  
> --
> Holger Seelig
> Leipzig, Germany
>  
> holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>
> https://create3000.github.io/x_ite/ <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcreate3000.github.io%2Fx_ite%2F&data=05%7C01%7Cbrutzman%40nps.edu%7C968de1a6ac4d44b8755408dbdebca3e4%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638348674058018008%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ugUZhYZrRbub2hjfmdP9JsPTzQ%2BAmQ6k6IM4Fb3Md2M%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231123/6b0dcca3/attachment-0001.html>


More information about the x3d-public mailing list