<div dir="ltr">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?<div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>Perhaps look over Scripts.js <a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Script.js">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Script.js</a> 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 <a href="https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/ppp">https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/ppp</a> 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).</div><div><br></div><div>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.</div><div><br></div><div>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 <a href="https://coderextreme.net/X3DJSONLD/src/main/html/proto.html">https://coderextreme.net/X3DJSONLD/src/main/html/proto.html</a></div><div><br></div><div>I'm probably not going to get any volunteering done today.  It's Saturday!</div><div><br></div><div>It appears like 6 people besides me have downloaded <a href="https://coderextreme.net/es6.zip">https://coderextreme.net/es6.zip</a>.  It's a good start.</div><div><br></div><div>John</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 2, 2020 at 7:46 AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">John had already provided his JSONExpander to x3dom a while back, so<br>
Protos ( without scripts ) work for a while in x3dom. The limitation<br>
is currently that they are only working with the json encoding, eg. in<br>
json encoded inlines. So we would need an XMLExpander as well, perhaps<br>
by going through json. I looked into shadow dom a while ago. The main<br>
problem was that x3dom.js cannot look into the shadow dom. The shadow<br>
dom is by design cut off from being accessed.<br>
<br>
It think I made the HUD work by removing a sensor or another smaller change.<br>
<br>
Note that HAnim works on X3DOM, no protos need. But the Nancy<br>
prototypes are a good test for expanding.<br>
<br>
The typical approach for webgl skinned animation is do it on the<br>
shader. I tried that somewhat but it would require larger<br>
architectural changes, for delivering the data to the shader. I think<br>
it would need to be done by float textures. There is a branch on the<br>
x3dom github repo.<br>
<br>
Not sure if there is a general approach to big data in the browser.<br>
Overall, for real big data (TB) the browser can only be a thin client,<br>
receiving a stream. It is unclear what role X3D can play there.<br>
<br>
-Andreas<br>
<br>
On Fri, May 1, 2020 at 10:21 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> On Fri, May 1, 2020 at 7:19 PM Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<br>
>><br>
>> John: thanks 1M for showing "X3DOM ProtoDeclares that work", very important capability!  Wow.  8)<br>
>><br>
>> 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.<br>
>><br>
>> v/r Don<br>
>><br>
>><br>
>> On 5/1/2020 12:42 PM, John Carlson wrote:<br>
>> > <a href="https://coderextreme.net/X3DJSONLD/src/main/html/proto.html" rel="noreferrer" target="_blank">https://coderextreme.net/X3DJSONLD/src/main/html/proto.html</a><br>
>> ><br>
>> > select one of the X3D files that start with ./data/<br>
>> ><br>
>> > Like:<br>
>> ><br>
>> > ./data/bubs.x3d<br>
>> > ./data/rubik.x3d<br>
>> > ./data/x3domflowers.x3d<br>
>> > ./data/X3dHeaderPrototypeSyntaxExamples.x3d<br>
>> ><br>
>> > 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/<a href="http://www.web3d.org/" rel="noreferrer" target="_blank">www.web3d.org/</a>. <<a href="http://www.web3d.org/" rel="noreferrer" target="_blank">http://www.web3d.org/</a>.>..<br>
>> ><br>
>> > Start the server with<br>
>> ><br>
>> > node app.js<br>
>> ><br>
>> > then go to <a href="https://localhost:3000/src/main/html/proto.html" rel="noreferrer" target="_blank">https://localhost:3000/src/main/html/proto.html</a><br>
>> ><br>
>> > then select some of the ./<a href="http://www.web3d.org/" rel="noreferrer" target="_blank">www.web3d.org/</a>. <<a href="http://www.web3d.org/" rel="noreferrer" target="_blank">http://www.web3d.org/</a>.>.. files.<br>
>> ><br>
>> > 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.<br>
>> ><br>
>> > You may optionally turn off scripting and proto expansion, if you want to see differences.<br>
>> ><br>
>> > There need to be some effort to make this work in all cases.<br>
>> ><br>
>> > 1.  Don't hog graphics contexts.<br>
>> > 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.<br>
>> > 3.  Make sure PROTOs are working in all cases.  Please file issues against X3DJSONLD.   I already know there are many unwritten issues. <a href="https://github.com/coderextreme/X3DJSONLD/issues" rel="noreferrer" target="_blank">https://github.com/coderextreme/X3DJSONLD/issues</a><br>
>> ><br>
>> > 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.<br>
>> ><br>
>> > John<br>
>> > _______________________________________________<br>
>> > X3dom-users mailing list<br>
>> > <a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.net</a><br>
>> > <a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/x3dom-users</a><br>
>><br>
>> all the best, Don<br>
>> --<br>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
>> X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
><br>
> _______________________________________________<br>
> X3dom-users mailing list<br>
> <a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.net</a><br>
> <a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/x3dom-users</a><br>
<br>
<br>
<br>
-- <br>
Andreas Plesch<br>
Waltham, MA 02453<br>
</blockquote></div>