<div dir="ltr">It doesn't make much sense to go to JSON and back to a DOM document when you already have a document or XML, unless  the problem cannot be solved by XML.  I think that XML may be unsatisfactory unless we create the DOM document disconnected from the page DOM (?), which is likely what I did with JSON.  This is what I call a "shadow DOM," building a document behind the scenes.  I don't know what a correct "shadow DOM" is and I probably shouldn't use the term.<div><br></div><div>Thanks for the clarification, it helps.</div><div><br></div><div>We don't want to build the DOM document interactively with a live DOM.</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>