[x3d-public] [x3dom-users] X3DOM ProtoDeclares that work.

John Carlson yottzumm at gmail.com
Sat May 2 10:03:19 PDT 2020


So should we patch the "JSONExpander" first (there was some bug that I
didn't want to hear about that wasn't related to scripting?), or go with an
XMLexpander?  Perhaps we could lay out some methods to program against?

I'm not really one for programming the DOM, but I've done a fair amount of
it.  I thought Don suggested that we have an XSLTExpander.   I doubt if
that will work in the browser unless we use native XSL, that is, no Saxon
in the browser, unless the 3.0 version is widely used, so--server-side
processing, which I have been taking out of my code.

Plus, I'd prefer if we got SAI scripting working first with the existing
JSONExpander--Or just non-Proto SAI scripting would be fine to start--But
scratch where it itches right now.  The question is, do we want to convert
from a X3D browser scripting to HTML scripting or not?  I know that the
X3DOM wants to support HTML scripting, but where does that leave their
instant browsers?

I know that my current script processing code is very dependent on certain
patterns in the code.  We may have to build a fairly sophisticated
ECMAScript parser, instead of my naive parser.

I do not have a server-side except for PHP and my local box right now.  If
someone can suggest free container (I'm out of heroku slots).  I've heard
of Netlify?

Perhaps look over Scripts.js
https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Script.js
and
suggest improvements (I know about heredocs now--that's would be a good
first step).  accessTypes is fairly low hanging fruit.   Then I suggest
working on processScripts().  I think we can develop a good set of tasks.
One task would be going through the .js cases which do not create a
*.good.js file in
https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/ppp by
running  X3DJSONLD/src/main/shell/runppp.sh (in the shell folder).  But
there are 83 or so good JS files we can verify are *actually* working in a
web browser, not just on the server.  This is where something like
puppeteer might come into play. I would encourage Andreas to forge ahead as
he usually does, and explore puppeteer (the Chrome driver).

All that said, it might be easier to provide an SAI environment to X3DOM
that I'm not currently aware of (and Leonard says doesn't exist).  If X_ITE
can do it, surely we can too?  Should I continue to enhance my es6.zip
ECMAScript API?  I say itch where it scratches.

One could start with the Donut Prototype (more like a Bagel) as an example
file to start on.  I have provided a list of ProtoDeclare files in
https://coderextreme.net/X3DJSONLD/src/main/html/proto.html

I'm probably not going to get any volunteering done today.  It's Saturday!

It appears like 6 people besides me have downloaded
https://coderextreme.net/es6.zip.  It's a good start.

John

On Sat, May 2, 2020 at 7:46 AM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> John had already provided his JSONExpander to x3dom a while back, so
> Protos ( without scripts ) work for a while in x3dom. The limitation
> is currently that they are only working with the json encoding, eg. in
> json encoded inlines. So we would need an XMLExpander as well, perhaps
> by going through json. I looked into shadow dom a while ago. The main
> problem was that x3dom.js cannot look into the shadow dom. The shadow
> dom is by design cut off from being accessed.
>
> It think I made the HUD work by removing a sensor or another smaller
> change.
>
> Note that HAnim works on X3DOM, no protos need. But the Nancy
> prototypes are a good test for expanding.
>
> The typical approach for webgl skinned animation is do it on the
> shader. I tried that somewhat but it would require larger
> architectural changes, for delivering the data to the shader. I think
> it would need to be done by float textures. There is a branch on the
> x3dom github repo.
>
> Not sure if there is a general approach to big data in the browser.
> Overall, for real big data (TB) the browser can only be a thin client,
> receiving a stream. It is unclear what role X3D can play there.
>
> -Andreas
>
> On Fri, May 1, 2020 at 10:21 PM John Carlson <yottzumm at gmail.com> wrote:
> >
> > Don, for more "wow," you might try NancyPrototypes.json.  The XML
> freezes that tab of the browser.  I didn't wait.  JSON is quite quick.
>  However, input does not work in all cases, because the HUD is
> unavailable.  I am pretty happy with the results on NancyPrototypes.json!
>  Better than a dismembered humanoid!  I suggest we purse the next version
> in XML, possible with shadow DOM.
> >
> > Perhaps we should get together with Andreas, Joe, You, and Me, and we
> should discuss how to deal with "big data" in a web browser.  I think
> perhaps we might go with WebASM for HAnim.   We can look at how various
> languages compile to WebASM, and do some comparison between X3D browsers
> compiled to WebASM. I would appreciate Andreas' architecture and software
> design input on the development of a 2nd generation Prototype Expander for
> X3DOM.  If your contacts are working with WebASM, we can bring them into
> the conversation.
> >
> > On Fri, May 1, 2020 at 7:19 PM Don Brutzman <brutzman at nps.edu> wrote:
> >>
> >> John: thanks 1M for showing "X3DOM ProtoDeclares that work", very
> important capability!  Wow.  8)
> >>
> >> Recommend that you and X3DOM community continue and integrate this work
> to restore the "X" in X3DOM: extensibility.  Prototypes are a central
> aspect of X3D, as is scripting.  Getting these squared away in X3DOM will
> be a major step towards achieving two complete open-source independent
> implementations of X3D4 running inside HTML5.
> >>
> >> v/r Don
> >>
> >>
> >> On 5/1/2020 12:42 PM, John Carlson wrote:
> >> > https://coderextreme.net/X3DJSONLD/src/main/html/proto.html
> >> >
> >> > select one of the X3D files that start with ./data/
> >> >
> >> > Like:
> >> >
> >> > ./data/bubs.x3d
> >> > ./data/rubik.x3d
> >> > ./data/x3domflowers.x3d
> >> > ./data/X3dHeaderPrototypeSyntaxExamples.x3d
> >> >
> >> > If you run my app.js server (requires SSL keys) locally, then you can
> test more of the x3d resources  examples by checking out the X3D
> sourceforge project to /c/x3d-code/www.web3d.org/. <http://www.web3d.org/
> .>..
> >> >
> >> > Start the server with
> >> >
> >> > node app.js
> >> >
> >> > then go to https://localhost:3000/src/main/html/proto.html
> >> >
> >> > then select some of the ./www.web3d.org/. <http://www.web3d.org/.>..
> files.
> >> >
> >> > Note that this does proto expansion on JSON, so first i translate
> from XML to JSON, then do the proto expansion, then convert back to XML.
> >> >
> >> > You may optionally turn off scripting and proto expansion, if you
> want to see differences.
> >> >
> >> > There need to be some effort to make this work in all cases.
> >> >
> >> > 1.  Don't hog graphics contexts.
> >> > 2.  Fix up Scripting on X3DOM.   This may be possible with Scripts.js
> (not recommended).  Primarily, I recommend fixing routing to/from scripts
> in X3DOM. That may mean approaching the w3c to allow fields in a script
> nodes.
> >> > 3.  Make sure PROTOs are working in all cases.  Please file issues
> against X3DJSONLD.   I already know there are many unwritten issues.
> https://github.com/coderextreme/X3DJSONLD/issues
> >> >
> >> > Note that app.js does not work on a production machine purposefully.
> You may want to rewrite app.js in python. Whatever floats your boat,
> changes are welcome.
> >> >
> >> > John
> >> > _______________________________________________
> >> > X3dom-users mailing list
> >> > X3dom-users at lists.sourceforge.net
> >> > https://lists.sourceforge.net/lists/listinfo/x3dom-users
> >>
> >> 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
> >
> > _______________________________________________
> > X3dom-users mailing list
> > X3dom-users at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/x3dom-users
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200502/83b25a65/attachment-0001.html>


More information about the x3d-public mailing list