[x3d-public] X3dToJson.xslt, -colorRamp object/array

John Carlson yottzumm at gmail.com
Mon Jul 4 15:45:54 PDT 2022


Ajv JSON schema reports on VolumeEmitter.json (potential issue in
X3dToJson.xslt):

Can only validate version 4.0 presently. Switching version to 4.0.
=================================================
File: VolumeEmitter.json
Error reading VolumeEmitter.json
 keyword: required
 instancePath: /X3D/Scene/-children/4/ParticleSystem
 message: must have required property @USE
 params: {"missingProperty":"@USE"}
 file: VolumeEmitter.json
 version: 3.3

 keyword: type
 instancePath: /X3D/Scene/-children/4/ParticleSystem/-colorRamp
 message: must be array
 params: {"type":"array"}
 file: VolumeEmitter.json
 version: 3.3

 keyword: oneOf
 instancePath: /X3D/Scene/-children/4/ParticleSystem
 message: must match exactly one schema in "oneOf"
 params: {"passingSchemas":null}
 file: VolumeEmitter.json
 version: 3.3
=============================================================================================
Source file:
https://github.com/create3000/Library/blob/main/Tests/Components/ParticleSystems/VolumeEmitter.x3d
Note changes to VolumeEmitter.json to make it play well with JSON schema
(not sure if correct or not):

$ diff
../X3DJSONLD/src/main/Library/Tests/Components/ParticleSystems/VolumeEmitter.json
 VolumeEmitter.json
6c6
<     "JSON schema":"
https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json",
---
>     "JSON schema":"
https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json",
170c170
<               "-colorRamp":
---
>               "-colorRamp": [
175c175,176
<                 },
---
>                 }
>             ],
233c234
< }
\ No newline at end of file
---
> }


On Mon, Jul 4, 2022 at 5:27 PM John Carlson <yottzumm at gmail.com> wrote:

> As previously posted:
> "Changed subject to be more focused on what's not working. Thanks for the
> effort on VolumeEmitter.x3d, which despite not passing the x3d validator,
> products of the XML are passing jsonlint and python. Note that the
> VolumeEmitter.json passes jsonlint (and I guess the jshint and jslint or
> whatever you use), but it does not pass the Ajv validator.  Will respond on
> the other thread if something comes up."
>
> Apparently it pays to have a non-empty schema!
>
> Changes:
>
> diff --git a/x3d-4.0-JSONSchema.json b/x3d-4.0-JSONSchema.json
> index 5834443..abfcd9f 100644
> --- a/x3d-4.0-JSONSchema.json
> +++ b/x3d-4.0-JSONSchema.json
> @@ -1,7 +1,7 @@
>  {
>    "$schema": "https://json-schema.org/draft/2020-12/schema",
>    "$id": "https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json",
> -  "title": "X3D V4.0 JSON Schema, generated 2022/05/24 17:50:41",
> +  "title": "X3D V4.0 JSON Schema, generated 2022/07/04 17:13:07",
>    "description": "Experimental JSON Schema for X3D V4.0",
>    "type": "object",
>    "properties": {
> @@ -19398,8 +19398,10 @@
>                "type": "number"
>              },
>              "@fieldOfView": {
> -              "$comment": "MFFloat inputOutput",
> +              "$comment": "SFVec4f inputOutput",
>                "type": "array",
> +              "minItems": 4,
> +              "maxItems": 4,
>                "prefixItems": [
>                  {
>                    "default": -1,
> @@ -19418,9 +19420,7 @@
>                    "type": "number"
>                  }
>                ],
> -              "items": {
> -                "type": "number"
> -              }
> +              "items": false
>              },
>              "@jump": {
>                "default": true,
>
>
>
> Sorry for confusion!
>
> John
>
>
> On Sun, Jul 3, 2022 at 11:24 PM Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu> wrote:
>
>> [Changed subject line for readability/searchability – this is about
>> OrthoViewpoint fieldOfView]
>>
>>
>>
>>    1. Invalid source XML in your .x3d excerpt: simple types should not
>>    have commas within them.
>>
>>
>>
>>    - OrthoViewpoint fieldOfView='-1.5, -1.5, 1.5, 1.5'
>>
>>
>>
>>    1. OrthoViewpoint fieldOfView is defined as MFFloat in specification
>>    but ought to be SFVec4f, since it must always have four numbers defining
>>    ordered values (minimum_x, minimum_y, maximum_x, maximum_y).
>>
>>
>>
>> I am somehow locked out of mantis and so can’t verify what we previously
>> said about this (if anything).  Seems like a simple specification erratum.
>>
>>
>> Correlation confirmation: TextureProjectorParallel has fieldOfView
>> SFVec4f.  Meanwhile Viewpoint GeoViewpoint and TextureProjector have
>> SFFloat.
>>
>>
>>
>>    1. I think that the various fieldOfView types are handled in the
>>    stylesheet s correctly now, checked in.
>>
>>
>>
>> I have also applied a tentative fix to X3D DOCTYPE, Schema, Tooltips and
>> X3DUOM, but will wait to deploy any updates (including X3DJSAIL, X3DPSAIL)
>> until checking mantis to confirm status.
>>
>>
>>
>> Thanks John for reporting this error, very helpful.
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* x3d-public <x3d-public-bounces at web3d.org> *On Behalf Of *John
>> Carlson
>> *Sent:* Sunday, July 3, 2022 12:10 AM
>> *To:* X3D Graphics public mailing list <x3d-public at web3d.org>;
>> holger.seelig at gmail.com
>> *Subject:* [x3d-public] X3dToJson.xslt, X3dToPython.xslt,
>> create3000/Library Test ParticleSystem possible issues. Though may not pass!
>>
>>
>>
>> Don,
>>
>>
>>
>> Here are some issues with various X3dTo*.xslt:
>>
>>
>>
>> grep fieldOfView VolumeEmitter.py
>> VolumeEmitter.py:
>>  OrthoViewpoint(description='OrthoViewpoint',fieldOfView=-1.5,-1.5,1.5,1.5),
>>
>>
>>
>> $ grep fieldOfView VolumeEmitter*
>> VolumeEmitter.json:              "@fieldOfView":-1.5,-1.5,1.5,1.5
>> VolumeEmitter.x3d:        fieldOfView='-1.5, -1.5, 1.5, 1.5'/>
>>
>>
>>
>> In the JSON, the MFFloat is does not appear to be an array, with []
>> around the numbers.
>>
>>
>>
>> In the python, there's no tuple or list markers denoting a tuple or list
>>
>>
>>
>> Note in the XML, both the "," and the space is separating the floats in
>> the MFFloat.  I haven't seen that the MFBools with ", " as separators is
>> working, but perhaps the problem is more general.
>>
>>
>>
>> Links to XML below.
>>
>> ====================================================
>>
>> Holger,
>>
>>
>>
>> I fully realize that these are test samples, and they may not pass, thus
>> when I convert x3d  to python and run, these errors may appear (which may
>> be totally valid).
>>
>>
>>
>> BoundedPhysicsModel.py
>> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
>> Traceback (most recent call last):
>>   File
>> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\BoundedPhysicsModel.py",
>> line 82, in <module>
>>
>> emitter=ConeEmitter(position=(0,-3,0),direction=(1,4,0),angle=0.4,speed=0.2,mass=3200),
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 29419, in __init__
>>     self.direction = direction
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 29450, in direction
>>     assertLessThanEquals('direction', direction, 1)
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 1847, in assertLessThanEquals
>>     assert isLessThanEquals(value, maximum), fieldName + '=' + str(value)
>> + ' fails assertLessThanEquals maximum=' + str(maximum)
>> AssertionError: direction=(1, 4, 0) fails assertLessThanEquals maximum=1
>>
>>
>>
>>
>>
>>
>>
>> PointEmitter.py
>> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
>> Traceback (most recent call last):
>>   File
>> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\PointEmitter.py",
>> line 92, in <module>
>>     WindPhysicsModel(speed=0.8,gustiness=0.8,turbulence=2),
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 99589, in __init__
>>     self.turbulence = turbulence
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 99643, in turbulence
>>     assertZeroToOne('turbulence', turbulence)
>>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
>> 1818, in assertZeroToOne
>>     assert isZeroToOne(value), str(fieldName) + '=' + str(value) + '
>> fails assertZeroToOne requirements: value(s) must be in range [0..1]'
>> AssertionError: turbulence=2 fails assertZeroToOne requirements: value(s)
>> must be in range [0..1]
>>
>>
>>
>>
>>
>> SurfaceEmitter.py
>> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
>> Traceback (most recent call last):
>>   File
>> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\SurfaceEmitter.py",
>> line 50, in <module>
>>     MetadataSet(DEF='children',name='children',reference='
>> http://titania.create3000.de
>> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftitania.create3000.de%2F&data=05%7C01%7Cbrutzman%40nps.edu%7C21c0ec8ed9424e5b9d1808da5cc31d7f%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637924290510977644%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C&sdata=%2F4uxzeZzuYzvUqHz8AJaKk0zHgBuEfyrAyNzWK5XrYs%3D&reserved=0>
>> ',
>> TypeError: MetadataSet.__init__() got an unexpected keyword argument
>> 'appearance'
>>
>>
>>
>> Original XML here:  Library/Tests/Components/ParticleSystems at main ·
>> create3000/Library (github.com)
>> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcreate3000%2FLibrary%2Ftree%2Fmain%2FTests%2FComponents%2FParticleSystems&data=05%7C01%7Cbrutzman%40nps.edu%7C21c0ec8ed9424e5b9d1808da5cc31d7f%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637924290510977644%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C&sdata=AXA6SvrhXPQysoFmBpTi8vsUFZPbJC9gW60AGXCyfW8%3D&reserved=0>
>>
>>
>>
>> Attached generated python code.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220704/566c643c/attachment-0001.html>


More information about the x3d-public mailing list