[x3d-public] X3D APIS for Qt, Python, ECMAScript

John Carlson yottzumm at gmail.com
Tue Mar 3 10:20:49 PST 2020


Don, would this be an appropriate set of calls for  a node.js scenegraph?

            new TouchSensor({"@description":"within ProtoBody"},[,
              new IS({},[,
                new
connect({"@nodeField":"description","@protoField":"description"},[]),
                new
connect({"@nodeField":"enabled","@protoField":"enabled"},[])])])])]),

Or should i append the @, -, etc in the constructor?

John

On Mon, Mar 2, 2020 at 2:24 PM John Carlson <yottzumm at gmail.com> wrote:

> Also, see this example of the beginnings of a class hierarchy for
> X3DESAIL, plus a scenegraph (combined for efficiency).
>
>
> https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/node/examples/HelloWorldProgramOutput.js
>
> Good luck!
>
>
> On Mon, Mar 2, 2020 at 2:17 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> You might be considering this?
>>
>>
>> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/DOM2JSONSerializer.js
>>
>>
>> That's how I translate DOM documents to JSON.
>>
>> I am unclear on how to map X3D JSON onto any kind of class hierarchy,
>> such that X3D JSON dumps out with JSON.stringify.
>>
>> This JS is not very well tested, but produced the same result as the
>> stylesheet on the JSON I tested.
>>
>> John
>>
>> On Mon, Mar 2, 2020 at 2:02 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> No, X3DJSONLD.ts is already part of X3DTSSAIL.
>>>
>>> I think what you folks want is in X3DTSSAIL, or something totally
>>> different from X3DJSONLD.  It would not be in the purpose of X3DJSONLD to
>>> provide X3DESAIL.
>>>
>>> If you want to pursue a JSON scenegraph, then either modify X3DJSAIL to
>>> provide it, or write X3duomToX3dESPackage.xslt  similar to the python
>>> stylesheet.  I am not a stylesheet programmer.  What I can do is provide a
>>> sample ECMAScript class implementing one part of X3DESAIL, so that the
>>> pattern may be followed.
>>>
>>> Here are the requirements I see:
>>>
>>> 1. Provide  a JSON scenegraph API
>>> 2. Provide a TypeScript scenegraph API
>>>
>>> May I suggest that we don't need a JSON API?  That's already in
>>> ECMAScript, guys.   What might be needed I think can be found in route.js
>>> under X3DJSONLD/src/main/node/route.js (check it out).
>>>
>>> For the TypeScript API, checkout the repository:
>>> https://github.com/coderextreme/JavaSceneAuthoringInterfaceLibrary when
>>> you run maven, it should leave files in target/ts.
>>>
>>> Also, please checkout the nashorn version of X3DJSAIL already on
>>> sourceforge.  *The thing that's missing here is a node.js version. I
>>> started something under www.web3d.org/x3d/stylesheets/node
>>> <http://www.web3d.org/x3d/stylesheets/node>, but it's incomplete. I have
>>> modifications that I haven't checked in yet.*
>>> This was something that skipped my mind.
>>>
>>> The basic interface is to have a "node" constructor that takes a object
>>> for attributes, and an array for children.
>>>
>>> Good luck!
>>>
>>> John
>>>
>>> On Mon, Mar 2, 2020 at 1:26 PM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> Do we want to add X3DJSONLD.java to X3DTSSAIL?   Is that what I’m
>>>> missing?
>>>>
>>>> On Mon, Mar 2, 2020 at 1:18 PM John Carlson <yottzumm at gmail.com> wrote:
>>>>
>>>>> Here is X3DTSSAIL:
>>>>>
>>>>> https://coderextreme.net/X3DTSSAIL.zip
>>>>>
>>>>> Does this satisfy the desire for ECMAscript, or do we want a native
>>>>> JSON scenegraph?   Can we add it to X3DJSAIL?   We should be able to
>>>>> extract JSON and parse JSON already?   I think?   Do you need examples?
>>>>>
>>>>> I will spend some time looking at x3d.py generation.
>>>>>
>>>>> John
>>>>>
>>>>> On Mon, Mar 2, 2020 at 8:44 AM Don Brutzman <brutzman at nps.edu> wrote:
>>>>>
>>>>>> Hi John.  Can we meet via phone some time this week to discuss?
>>>>>> Happy to learn more and support as able.
>>>>>>
>>>>>> 1. X3D Unified Object Model (X3DUOM) is a thorough representation of
>>>>>> X3D scene graph.  If something needs to be added, can consider that.
>>>>>>
>>>>>> Qt is cross platform, seems to have C++ innards similar to primary
>>>>>> python distribution.
>>>>>>
>>>>>> I found your work as follows but not sure what to do with it:
>>>>>>
>>>>>> https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/gui.py
>>>>>>
>>>>>> https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/examples/gui.x3d
>>>>>>
>>>>>> Wondering what the project's primary goal is, writing a new LGPL X3D
>>>>>> scene editor in Qt?  Or nonrendering API X3DQtSAIL?
>>>>>>
>>>>>> Or perhaps you are thinking of something that adds X3D to the
>>>>>> following project?
>>>>>>
>>>>>> * The Future of Qt 3D
>>>>>>    https://www.qt.io/blog/the-future-of-qt-3d
>>>>>>
>>>>>> * Qt 3D Studio 2.6 Released
>>>>>>    https://www.qt.io/blog/qt-3d-studio-2.6-released
>>>>>>
>>>>>> * Qt 3D Studio Manual
>>>>>>    https://doc.qt.io/qt3dstudio/index.html
>>>>>>    https://doc.qt.io/qt3dstudio/3d-assets.html
>>>>>>    https://doc.qt.io/qt3dstudio/graphics.html
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> 2. Python concern: shouldn't your new work be a separate project to
>>>>>> avoid creating problems and synchronization difficulties in the current
>>>>>> project in the /stylesheets/python directory.  This would let x3d.py evolve
>>>>>> without unintended clobbers emerging in the future.
>>>>>>
>>>>>> Am also thinking we should finally rename the X3D Python Package to
>>>>>> X3DPSAIL, matching X3DJSAIL both in acronym and concept since it already
>>>>>> matches in functionality.  Probably long overdue.  We also now have time to
>>>>>> write a paper for Web3D 2020 since the conference was postponed to November.
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> 3. Next: also had a old+new idea to consider following recent
>>>>>> discussion with Katie Unger of Synergy Software Design (cc:ed).  What if we
>>>>>> used X3DUOM and autogenerated an ECMAScript SAI for X3D called X3DESAIL
>>>>>> that patterned X3D scene graph accessors following your X3DJSONLD patterns,
>>>>>> was primarily oriented towards Node.js, and also added utility methods
>>>>>> facilitating use in combination with X3DOM X_ITE and Three.js.  That
>>>>>> harmonization might be something widely useful.
>>>>>>
>>>>>> TIA for your efforts, as always best wishes for your work.
>>>>>>
>>>>>> v/r Don
>>>>>>
>>>>>>
>>>>>> On 3/1/2020 3:02 PM, John Carlson wrote:
>>>>>> > I have added gui.x3d and gui.py as examples of translating Qt
>>>>>> Designer XML (I think) to "X3D"-like python.  This is after a "roll my own"
>>>>>> xmltopy.py.  There's still a lot of work to do, namely, we need to add some
>>>>>> text node processing to X3dToPython.xslt.   We probably want to create a
>>>>>> RpgToPython.xslt for that.
>>>>>> >
>>>>>> > I also added a build target for gui.py.
>>>>>> >
>>>>>> > Ideally, either Jeff or I will write the RpgToPython.xslt and
>>>>>> associated RPGuomToRpgPythonPackage.xslt.
>>>>>> >
>>>>>> > Any inputs everyone has are welcome, especially in the realm of
>>>>>> creating a user friendly editor for RPGUOM like Qt Designer/WxFormBuilder.
>>>>>> >
>>>>>> > Code is found here on sourceforge:
>>>>>> >
>>>>>> > x3d-code/www.web3d.org/x3d/stylesheets/python <
>>>>>> http://www.web3d.org/x3d/stylesheets/python>
>>>>>> >
>>>>>> > Thanks for all the contributions that made this project even
>>>>>> possible!
>>>>>> >
>>>>>> > John
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > If someone wants to contribute XMLSchemas or X3DUOM-like unified
>>>>>> object models which support Qt Designer and/or RPG object model, they would
>>>>>> be most welcome.
>>>>>> >
>>>>>> > I'll probably be working on an RPGUOM next.
>>>>>> >
>>>>>> > John
>>>>>>
>>>>>> 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
>>>>>> http://faculty.nps.edu/brutzman
>>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200303/ade0c249/attachment.html>


More information about the x3d-public mailing list