Menu

#71 ParticleSystem and Shader node validation problems

X3D4
wont-fix
None
2025-12-29
2025-09-09
No

In particular, Shape and ComposedShader schematron errors are a bit weird.

I'm running Apache NetBeans 26 with latest X3D-Edit plugin

--------- X3D Validator checks commenced for fwparticleflowers.x3d ---------

Performing well-formed XML check...
Checking file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.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:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
The content of element type "ParticleSystem" must match "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance),(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)".
The content of element type "Transform" must match "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)
)".
XML DTD validation: fail!

Performing X3D schema validation...
Checking file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
The content of element type "ParticleSystem" must match "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance),(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)".
The content of element type "Transform" must match "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)
)".
XML schema validation: fail!

Performing X3D regular expression (regex) values check...
X3D regex check: complete

Performing X3D Schematron check...
X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D, diagnostic]
X3D version 4.0 offers many new features including interoperability with HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D, diagnostic]
It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href="https://savage.nps.edu/X3D-Edit"&gt;https://savage.nps.edu/X3D-Edit&lt;/a&gt;"> [/X3D/head, info]
<sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere, error]
<sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere, error]
<appearance def=""> found outside of a parent Shape, ProtoBody, field or fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
<shaderpart def="" value=""> needs to be contained by a <composedshader> node rather than a <composedshader> node [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1], error]
<shaderpart def="" value=""> needs to be contained by a <composedshader> node rather than a <composedshader> node [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2], error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

--------- X3D Validator checks complete for fwparticleflowers.x3d ---------

X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D, diagnostic]
X3D version 4.0 offers many new features including interoperability with HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D, diagnostic]
It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href="https://savage.nps.edu/X3D-Edit"&gt;https://savage.nps.edu/X3D-Edit&lt;/a&gt;"> [/X3D/head, info]
<sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere, error]
<sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere, error]
<appearance def=""> found outside of a parent Shape, ProtoBody, field or fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
<shaderpart def="" value=""> needs to be contained by a <composedshader> node rather than a <composedshader> node [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1], error]
<shaderpart def="" value=""> needs to be contained by a <composedshader> node rather than a <composedshader> node [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2], error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

--------- X3D Validator checks complete for fwparticleflowers.x3d ---------

1 Attachments

Related

Tickets: #71

Discussion

  • John W Carlson

    John W Carlson - 2025-09-09
    • summary: This file should e worth validating by hand to check X3D-Edit --> This file should be worth validating by hand to check X3D-Edit
    • assigned_to: Don Brutzman
    • Milestone: X3D3 --> X3D4
     
  • Don Brutzman

    Don Brutzman - 2025-09-10

    (inserted note: this comment was posted here mistakenly, and actually pertains to a separate problem discussedon the mailing list. Please ignore, apologies for confusion.]

    The diagnostics reveal (awkwardly) that the offending nodes are all lower case. That is what causes XML DOCTYPE and Schema errors too.

    Recomend using X3D Tidy (the sweeping broom icon in X3D-Edit) to clean things up. Any necessary improvements can also be made there.
    * X3D Tidy for Scene Cleanup, Corrections and Modifications
    * https://www.web3d.org/x3d/stylesheets/X3dTidy.html

    The "all elements in lower case" problem is common formodels using X3DOM with .html, and this is why all of the Web3D Example Archive models use proper CamelCase element names with .xhtml file extensions (to force XML validity).

    Looking forward to next round of cleanup, testing, and diagnostics improvement.

     

    Last edit: Don Brutzman 2025-09-12
    • John W Carlson

      John W Carlson - 2025-09-10

      To be clear, that "all elements in lower case" has nothing to do with my
      sample file. I wouldn't trust what sourceforge does with HTML or markup.
      Please investigate the file, don't trust the log. I will attach a tidied
      file in a bit.

      John

      On Wed, Sep 10, 2025 at 11:30 AM Don Brutzman brutzman@users.sourceforge.net wrote:

      The diagnostics reveal (awkwardly) that the offending nodes are all lower
      case. That is what causes XML DOCTYPE and Schema errors too.

      Recomend using X3D Tidy (the sweeping broom icon in X3D-Edit) to clean
      things up. Any necessary improvements can also be made there.
      * X3D Tidy for Scene Cleanup, Corrections and Modifications
      * https://www.web3d.org/x3d/stylesheets/X3dTidy.html

      The "all elements in lower case" problem is common formodels using X3DOM
      with .html, and this is why all of the Web3D Example Archive models use
      proper CamelCase element names with .xhtml file extensions (to force XML
      validity).

      Looking forward to next round of cleanup, testing, and diagnostics
      improvement.


      [tickets:#71] https://sourceforge.net/p/x3d/tickets/71/ This file
      should be worth validating by hand to check X3D-Edit

      Status: open
      Milestone: X3D4
      Created: Tue Sep 09, 2025 09:11 PM UTC by John W Carlson
      Last Updated: Tue Sep 09, 2025 09:12 PM UTC
      Owner: Don Brutzman
      Attachments:

      In particular, Shape and ComposedShader schematron errors are a bit weird.

      I'm running Apache NetBeans 26 with latest X3D-Edit plugin

      --------- X3D Validator checks commenced for fwparticleflowers.x3d

      Performing well-formed XML check...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.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:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML DTD validation: fail!

      Performing X3D schema validation...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML schema validation: fail!

      Performing X3D regular expression (regex) values check...
      X3D regex check: complete

      Performing X3D Schematron check...
      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0059/aklzzwxh:0060"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0110/aklzzwxh:0111"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/x3d/tickets/71/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Tickets: #71

  • John W Carlson

    John W Carlson - 2025-09-10

    Please actually check this file by hand, guided by X3D-Edit reports, and balancing the standard in the other hand. I haven't found a problem yet, but I'm a dummy!

     
  • John W Carlson

    John W Carlson - 2025-09-10

    Here's the actual X3D-Edit QA log, with schematron false positives, AFAICT.

    Thanks,

    John

     
  • John W Carlson

    John W Carlson - 2025-09-10

    Human work is actually still needed. If you want to tell me which button to press in SourceForge to get unformatted text, that would be great.

     
  • John W Carlson

    John W Carlson - 2025-09-10

    I will try the </> button in the futuer.

     
  • John W Carlson

    John W Carlson - 2025-09-10

    Sorry, being a little pushy. Here's something that actually views in Sunrize! Castle doesn't have ParticleSystems. I haven't tried X3DOM. The FreeWRL version doesn't work yet. but this one does, as is evidenced by this video attached, and a video of the X3D-Edit log alongside. I will attach the tidied .x3d file soon as well!

     
  • John W Carlson

    John W Carlson - 2025-09-10

    Here's the file to test in Sunrize. I realize I may need https for images. That's one thing that X3D-Edit could mention?

     
  • John W Carlson

    John W Carlson - 2025-09-10

    Feel free to post the Sunrize scene to the archives, but if you want to use the images, please talk to Paul Debevec about licensing. https://pauldebevec.com/Probes/ (Light Probe Image Gallery). I asked him, and he was very gracious, and I just have to put a note on my website. Obviously, you would want to credit him for the images in the scene, if it's in the archives. The credit is also in the X3DJSONLD LICENSE file.

    If you want a source of CubeMap/Skybox closer to home, I recommend X3DOM:

    https://x3dom.org/x3dom/example/x3dom_composedShaderPoints.html

    The archive page should probably be in the advanced site, as I've only gotten it working in X_ITE.

    As for the shaders, a lot of people have had their hands on those, and they only work in X_ITE. What I could do Is write something PBR instead, which I've been meaning to do! But I'd rather do more with x3d.py and Pynari/ANARI at this point. I'll let the big boys play with PBR. If you'd like to contribute some X3D PBR scenes for testing with my flowers/orbitals, that would be awesome! I could use better prismatic effects!

    Thanks for all you've done for X3D!

    John

     
  • John W Carlson

    John W Carlson - 2025-09-10

    I'll probably make a point of needing more X3D PhysicalMaterial nodes in the archives. Oh, I see a bunch in the Advanced Modeling section. Time to look at the latest.

     
  • Don Brutzman

    Don Brutzman - 2025-09-12
    • summary: This file should be worth validating by hand to check X3D-Edit --> ParticleSystem and Shader node validation problems
     
  • Don Brutzman

    Don Brutzman - 2025-09-12

    I think my prior response was mistakenly posted to this ticket. Apologies for confusion.

     
    • John W Carlson

      John W Carlson - 2025-09-12

      Thanks, I was understandably confused!

      John

      On Fri, Sep 12, 2025 at 1:15 AM Don Brutzman brutzman@users.sourceforge.net
      wrote:

      I think my prior response was mistakenly posted to this ticket. Apologies
      for confusion.


      [tickets:#71] https://sourceforge.net/p/x3d/tickets/71/ ParticleSystem
      and Shader node validation problems

      Status: open
      Milestone: X3D4
      Created: Tue Sep 09, 2025 09:11 PM UTC by John W Carlson
      Last Updated: Fri Sep 12, 2025 06:12 AM UTC
      Owner: Don Brutzman
      Attachments:

      In particular, Shape and ComposedShader schematron errors are a bit weird.

      I'm running Apache NetBeans 26 with latest X3D-Edit plugin

      --------- X3D Validator checks commenced for fwparticleflowers.x3d

      Performing well-formed XML check...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.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:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML DTD validation: fail!

      Performing X3D schema validation...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML schema validation: fail!

      Performing X3D regular expression (regex) values check...
      X3D regex check: complete

      Performing X3D Schematron check...
      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0047/aklzzwxh:0048"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0098/aklzzwxh:0099"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/x3d/tickets/71/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Tickets: #71

  • Don Brutzman

    Don Brutzman - 2025-12-29

    Testing in Sunrize renders nicely but throws many errors.

    Welcome to X_ITE X3D Browser v12.2.3:
    Welcome to Sunrize X3D Editor v1.11.15.
    Couldn't load URL 'https://coderextreme.net/X3DJSONLD/src/main/shaders/freewrl.vs' of ShaderPart. Error: Error in ShaderPart '' in URL 'https://coderextreme.net/X3DJSONLD/src/main/shaders/freewrl.vs', line 18, ERROR: 0:18: 'fw_Normal' : undeclared identifier
    ERROR: 0:18: 'xyz' : field selection requires structure or vector on left hand side
    ERROR: 0:18: '=' : dimension mismatch
    ERROR: 0:18: '=' : cannot convert from 'const highp float' to 'mediump 3-component vector of float'
    ERROR: 0:20: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:20: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:20: 'x' : field selection requires structure or vector on left hand side
    ERROR: 0:21: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:21: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:21: 'y' : field selection requires structure or vector on left hand side
    ERROR: 0:22: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:22: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:22: 'z' : field selection requires structure or vector on left hand side
    ERROR: 0:23: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:23: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:23: 'x' : field selection requires structure or vector on left hand side
    ERROR: 0:24: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:24: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:24: 'y' : field selection requires structure or vector on left hand side
    ERROR: 0:25: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:25: 'z' : field selection requires structure or vector on left hand side
    ERROR: 0:26: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:26: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:26: 'x' : field selection requires structure or vector on left hand side
    ERROR: 0:27: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:27: 'y' : field selection requires structure or vector on left hand side
    ERROR: 0:28: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:28: 'expression' : left of '[' is not of type array, matrix, or vector
    ERROR: 0:28: 'z' : field selection requires structure or vector on left hand side
    ERROR: 0:32: 'fw_ProjectionMatrix' : undeclared identifier
    ERROR: 0:32: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:32: 'fw_Vertex' : undeclared identifier
    ERROR: 0:32: '=' : dimension mismatch
    ERROR: 0:32: 'assign' : cannot convert from 'const highp float' to 'out highp 4-component vector of float'
    ERROR: 0:33: 'fw_ModelViewMatrix' : undeclared identifier
    ERROR: 0:33: 'fw_Vertex' : undeclared identifier
    ERROR: 0:33: 'xyz' : field selection requires structure or vector on left hand side
    WARNING: 0:33: 'normalize' : operation result is undefined for the values passed in
    ERROR: 0:33: '=' : dimension mismatch
    ERROR: 0:33: '=' : cannot convert from 'const highp float' to 'mediump 3-component vector of float'

     
    • John W Carlson

      John W Carlson - 2025-12-29

      Yes, the example was intended to run in FreeWRL, that’s why you got shader
      errors in Sunrize.

      fw = FreeWRL.

      John

      On Sun, Dec 28, 2025 at 10:41 PM Don Brutzman brutzman@users.sourceforge.net wrote:

      Testing in Sunrize renders nicely but throws many errors.

      Welcome to X_ITE X3D Browser v12.2.3:
      Welcome to Sunrize X3D Editor v1.11.15.
      Couldn't load URL '
      https://coderextreme.net/X3DJSONLD/src/main/shaders/freewrl.vs' of
      ShaderPart. Error: Error in ShaderPart '' in URL '
      https://coderextreme.net/X3DJSONLD/src/main/shaders/freewrl.vs', line 18,
      ERROR: 0:18: 'fw_Normal' : undeclared identifier
      ERROR: 0:18: 'xyz' : field selection requires structure or vector on left
      hand side
      ERROR: 0:18: '=' : dimension mismatch
      ERROR: 0:18: '=' : cannot convert from 'const highp float' to 'mediump
      3-component vector of float'
      ERROR: 0:20: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:20: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:20: 'x' : field selection requires structure or vector on left
      hand side
      ERROR: 0:21: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:21: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:21: 'y' : field selection requires structure or vector on left
      hand side
      ERROR: 0:22: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:22: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:22: 'z' : field selection requires structure or vector on left
      hand side
      ERROR: 0:23: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:23: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:23: 'x' : field selection requires structure or vector on left
      hand side
      ERROR: 0:24: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:24: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:24: 'y' : field selection requires structure or vector on left
      hand side
      ERROR: 0:25: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:25: 'z' : field selection requires structure or vector on left
      hand side
      ERROR: 0:26: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:26: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:26: 'x' : field selection requires structure or vector on left
      hand side
      ERROR: 0:27: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:27: 'y' : field selection requires structure or vector on left
      hand side
      ERROR: 0:28: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:28: 'expression' : left of '[' is not of type array, matrix, or
      vector
      ERROR: 0:28: 'z' : field selection requires structure or vector on left
      hand side
      ERROR: 0:32: 'fw_ProjectionMatrix' : undeclared identifier
      ERROR: 0:32: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:32: 'fw_Vertex' : undeclared identifier
      ERROR: 0:32: '=' : dimension mismatch
      ERROR: 0:32: 'assign' : cannot convert from 'const highp float' to 'out
      highp 4-component vector of float'
      ERROR: 0:33: 'fw_ModelViewMatrix' : undeclared identifier
      ERROR: 0:33: 'fw_Vertex' : undeclared identifier
      ERROR: 0:33: 'xyz' : field selection requires structure or vector on left
      hand side
      WARNING: 0:33: 'normalize' : operation result is undefined for the values
      passed in
      ERROR: 0:33: '=' : dimension mismatch
      ERROR: 0:33: '=' : cannot convert from 'const highp float' to 'mediump
      3-component vector of float'


      [tickets:#71] https://sourceforge.net/p/x3d/tickets/71/ ParticleSystem
      and Shader node validation problems

      Status: open
      Milestone: X3D4
      Created: Tue Sep 09, 2025 09:11 PM UTC by John W Carlson
      Last Updated: Fri Sep 12, 2025 06:15 AM UTC
      Owner: Don Brutzman
      Attachments:

      In particular, Shape and ComposedShader schematron errors are a bit weird.

      I'm running Apache NetBeans 26 with latest X3D-Edit plugin

      --------- X3D Validator checks commenced for fwparticleflowers.x3d

      Performing well-formed XML check...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.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:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML DTD validation: fail!

      Performing X3D schema validation...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML schema validation: fail!

      Performing X3D regular expression (regex) values check...
      X3D regex check: complete

      Performing X3D Schematron check...
      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0161/aklzzwxh:0162"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0212/aklzzwxh:0213"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/x3d/tickets/71/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Tickets: #71

  • Don Brutzman

    Don Brutzman - 2025-12-29

    Testing in X3D-Edit X3D Validator reveals error centered on

    The content of element type "ParticleSystem" must match "(...

    Looking at the ParticleSystem node, it has many children including fields and ShaderPart with ComposedShader inside an Appearance... very complex, too hard to debug.

    Please start with a far simpler example and go step by step. We can only fix one error at a time, and must isolate it to XML (first) or else converter or library.

     
    • John W Carlson

      John W Carlson - 2025-12-30

      Yes, that’s why I filed the ticket! I will try to file a different one
      that runs in Sunrize without issues.

      I don’t know if other errors affect schematron or not, I was trying to
      address the schematron ones, particularly related to Sphere not being in a
      Shape (legal, I think).

      If this is better handled by x3d-public, great!

      John

      On Sun, Dec 28, 2025 at 10:53 PM Don Brutzman brutzman@users.sourceforge.net wrote:

      Testing in X3D-Edit X3D Validator reveals error centered on

      The content of element type "ParticleSystem" must match "(...

      Looking at the ParticleSystem node, it has many children including fields
      and ShaderPart with ComposedShader inside an Appearance... very complex,
      too hard to debug.

      Please start with a far simpler example and go step by step. We can only
      fix one error at a time, and must isolate it to XML (first) or else
      converter or library.


      [tickets:#71] https://sourceforge.net/p/x3d/tickets/71/ ParticleSystem
      and Shader node validation problems

      Status: open
      Milestone: X3D4
      Created: Tue Sep 09, 2025 09:11 PM UTC by John W Carlson
      Last Updated: Mon Dec 29, 2025 04:41 AM UTC
      Owner: Don Brutzman
      Attachments:

      In particular, Shape and ComposedShader schematron errors are a bit weird.

      I'm running Apache NetBeans 26 with latest X3D-Edit plugin

      --------- X3D Validator checks commenced for fwparticleflowers.x3d

      Performing well-formed XML check...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.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:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML DTD validation: fail!

      Performing X3D schema validation...
      Checking
      file:/C:/Users/jcarl/X3DJSONLD/src/main/data/fwparticleflowers.x3d...
      The content of element type "ParticleSystem" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,((Appearance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|ProtoInstance)?)|((GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet),(Appearance|ProtoInstance)?)|(ProtoInstance,(GeoElevationGrid|NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|QuadSet|IndexedQuadSet|Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet|Appearance|ProtoInstance)?))?,(Color|ColorRGBA|ProtoInstance)?,(ConeEmitter|ExplosionEmitter|PointEmitter|PolylineEmitter|SurfaceEmitter|VolumeEmitter|ProtoInstance)?,(BoundedPhysicsModel|ForcePhysicsModel|WindPhysicsModel|ProtoInstance)
      ,(TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)?)". The
      content of element type "Transform" must match
      "(IS?,(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance)?,(GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|HAnimMotion|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|ScreenGroup|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|SpatialSound|GeoMetadata|WorldInfo|Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|TextureProjectorParallel|TextureProjector|ProtoInstance)

      )".
      XML schema validation: fail!

      Performing X3D regular expression (regex) values check...
      X3D regex check: complete

      Performing X3D Schematron check...
      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0052/aklzzwxh:0053"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D,
      diagnostic]

      X3D version 4.0 offers many new features including interoperability with
      HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D,
      diagnostic]

      It is good practice to identify editor(s) used, for example <meta name="generator" content="X3D-Edit, &lt;a href=" <a="" href="https://savage.nps.edu/X3D-Edit">https://savage.nps.edu/X3D-Edit"> https://savage.nps.edu/X3D-Editklzzwxh:0103/aklzzwxh:0104"> [/X3D/head, info]
      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/BoundedPhysicsModel/Sphere,
      error]

      <sphere def=""> geometry node must have Shape node as parent [/X3D/Scene/Transform/ParticleSystem/Sphere,
      error]

      <appearance def=""> found outside of a parent Shape, ProtoBody, field or
      fieldValue element [/X3D/Scene/Transform/ParticleSystem/Appearance, error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[1],
      error]
      <shaderpart def="" value=""> needs to be contained by a <composedshader>
      node rather than a <composedshader> node
      [/X3D/Scene/Transform/ParticleSystem/Appearance/ComposedShader/ShaderPart[2],
      error]</composedshader></composedshader></shaderpart></composedshader></composedshader></shaderpart></appearance></sphere></sphere>

      --------- X3D Validator checks complete for fwparticleflowers.x3d ---------

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/x3d/tickets/71/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Tickets: #71

  • Don Brutzman

    Don Brutzman - 2025-12-29
    • status: open --> closed
     
  • Don Brutzman

    Don Brutzman - 2025-12-29
    • status: closed --> wont-fix
     

Log in to post a comment.

MongoDB Logo MongoDB