[X3D-Ecosystem] x3d.py. NavigationInfo.type and url fields.
John Carlson
yottzumm at gmail.com
Thu Aug 7 11:31:06 PDT 2025
I also agree with Holger. The point is, X3dToJson.xslt does not follow the
spec. I’ve tried it many times.
John
On Thu, Aug 7, 2025 at 1:28 PM Holger Seelig via X3D-Ecosystem <
x3d-ecosystem at web3d.org> wrote:
> Since X_ITE can generate JSON files, we have the same problem here, and
> there is already an open issue about this very problem:
>
> https://github.com/create3000/x_ite/issues/146
>
> I agree with Don here that all MF* fields are encoded as JSON arrays,
> including NavigationInfo.type. Anything else doesn't make sense, in my
> opinion, and that's what X_ITE does too.
>
> Best regards,
> Holger
> —
> Holger Seelig
> holger.seelig at yahoo.de
>
>
> Am 07.08.2025 um 20:08 schrieb Don Brutzman via X3D-Ecosystem <
> x3d-ecosystem at web3d.org>:
>
> So sorry John but I really have no idea what you are talking about in your
> response.
>
> I just looked but am not finding what you refer to in the tickets on
> sourceforge, there are many overlapping entries regarding converters. It
> is challenging but I will continue to tackle reported problems there, one
> by one.
>
> - https://sourceforge.net/p/x3d/tickets/
>
> Confirmation by anyone on JSON MFString syntax will help, all shared
> understanding is welcome. Recap, best example so far seems to be
>
> * { "NavigationInfo":
> {
> "@type":["FLY" "ANY"]
> }
> },*
>
> Given best assessments and well-formed JSON checks regarding syntax, I
> will work on
>
> - updating X3dToJson.xslt to match the MFString "railroad tracks"
> syntax,
> - updating autogenerated x3d.py serialization into JSON to perform
> MFString representations similarly,
> - (someday) produce an X3D JSON Schema autogenerated from X3DUOM to
> support type-aware X3D JSON validation.
>
> Hope this helps. Very respectfully, Don
>
> On Thu, Aug 7, 2025 at 10:41 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> Don, this is a separate issue, separate from X3DJSAIL. You have been
>> provided the correct information many times. You have been pointed at the
>> spec many times you list below many times. Aaron was addressed in this
>> message, not you. If you want an example of correct MFStrings in JSON,
>> beyond what I’ve provided, look at url fields in X3D JSON.
>>
>> AFAIK, X3dToJson web pages has been correct for a long time and
>> X3dToJson.xslt was correct until other logic got introduced. At the time,
>> I complained, and I continued to complain and we kept getting stuck in the
>> same loop. I thought that Aaron might have a solution for RawKee and
>> x3d.py, so I messaged him.
>>
>> Please return to SourceForge, I have provided a one-liner as to what I
>> expect.
>>
>> Thanks,
>>
>> John
>>
>>
>> On Thu, Aug 7, 2025 at 12:08 PM Don Brutzman <don.brutzman at gmail.com>
>> wrote:
>>
>>> John, thank you for identifying this problem when converting to JSON.
>>> The detailed description that you have crafted provides a good example of
>>> "almost a repeatable issue report".
>>>
>>> You have provided *valid input .x3d* and a reportedly* improper output
>>> in JSON.*
>>>
>>> Please provide what you think the *correct JSON output* needs to be.
>>>
>>> I looked online and quickly found
>>>
>>> - X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 04
>>> Viewing Navigation, Navigation Info Example
>>> -
>>> https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExampleIndex.html
>>> -
>>> https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.x3d
>>> -
>>> https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.json
>>>
>>> which includes the (correctly expressed, highly validated) .x3d node
>>>
>>> <NavigationInfo DEF='FLY_FIRST
>>> <https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.html#FLY_FIRST>
>>> ' type='"FLY" "ANY"'/>
>>>
>>>
>>> but then provides the (awkwardly expressed) .json conversion result:
>>>
>>> { "NavigationInfo":
>>> {
>>> "@DEF":"FLY_FIRST",
>>> "@type":"\"FLY\" \"ANY\""
>>> }
>>> },
>>>
>>> Wondering, is that conversion correct? (Am guessing no, it is not)
>>>
>>> Based on the X3dToJson conversion page, I'd expect something different:
>>>
>>> - X3D to JSON Stylesheet Converter: Examples, Origami Cranes
>>> - https://www.web3d.org/x3d/stylesheets/X3dToJson.html#OrigamiCranes
>>>
>>> with (direct link to fragment
>>> <https://www.web3d.org/x3d/stylesheets/X3dToJson.html#OrigamiCranes:~:text=%7B%20%22NavigationInfo%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40type%22%3A%5B%22NONE%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C>),
>>> then adapted here for your example:
>>>
>>>
>>> * { "NavigationInfo":
>>> {
>>> "@type":["FLY" "ANY"]
>>> }
>>> },*
>>>
>>> *Wondering, do you think this the proper way to express that X3D
>>> MFString array in JSON?*
>>>
>>> Based on the "railroad track" diagrams for JSON arrays and MFString, the square brackets look good to me:
>>>
>>>
>>> - X3D to JSON Stylesheet Converter: JSON Arrays
>>> - https://www.web3d.org/x3d/stylesheets/X3dToJson.html#arrays
>>> -
>>> - <image.png>
>>> -
>>> MFString is array of quoted SFString (XML attribute) values JSON array of *string* type
>>>
>>>
>>> p.s. (One more point, please: let's proceed step by step... There is no need to discuss Python whatsoever in this issue, that is a separate issue we can tackle after this. Including it as part of the mix here only adds unnecessary complexity/confusion.)
>>>
>>>
>>> Thanks for all efforts.
>>>
>>> v/r Don
>>>
>>>
>>>
>>> On Thu, Aug 7, 2025 at 12:14 AM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> For Aaron: Another notice on PythonSeriializer.js and x3d.py
>>>>
>>>> PythonSerializer.js translates NavigationInfo.type to:
>>>>
>>>> NavigationInfo8 = x3d.NavigationInfo()
>>>> NavigationInfo8.type = ["ANY","EXAMINE","WALK","FLY","LOOKAT"]
>>>>
>>>> Which appears OK to me.
>>>>
>>>> When I get X3D JSON output from x3d.py, I get:
>>>>
>>>> {
>>>> "NavigationInfo":
>>>> {
>>>> {
>>>> "@type":""ANY" "EXAMINE" "WALK" "FLY" "LOOKAT""
>>>> }
>>>> },
>>>>
>>>>
>>>> Which doesn't look right at all.
>>>>
>>>> I pretty much know that X3D JSON output from x3d.py has been iffy. I
>>>> wonder if Aaron has better output as X3D JSON with url fields especially.
>>>> Can any JSON generating Python be shared yet? Maybe after SIGGRAPH and
>>>> Web3D Conference?
>>>>
>>>> Python is attached,and original .x3d.as well as JSON output
>>>>
>>>> Thanks for any additions to x3d.py!
>>>>
>>>> I am looking at the GraalPySerializer.js and realizing I left some
>>>> semicolons in. Retesting is going well, but apparently, I need to set up a
>>>> function or alias in bash to do things right.
>>>>
>>>> John
>>>>
>>> --
> X3D-Ecosystem mailing list
> X3D-Ecosystem at web3d.org
> http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org
>
>
> --
> X3D-Ecosystem mailing list
> X3D-Ecosystem at web3d.org
> http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20250807/293cf01f/attachment-0001.html>
More information about the X3D-Ecosystem
mailing list