<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">"question of extensibility" "build in an extension mechanism"</div><div>One thought experiment: how to build a web3d browser completely from PROTOs - no nodes pre-defined, just load a scene with proto defs for all node types at top of scene.</div><div>There are some limitations: hardware / operating system / browser environment dependent --like sound, opengl graphics and shaders, mouse and keyboard input-- so cheating on this ideal with some built in nodes and Browser functions exposed to Scripting would help. But even then, the current web3d PROTO system comes up short.</div><div>Cortona - a vrml browser from parallelgraphics- used MS Windows-based COM objects for one path to advanced protos. And IIRC had some initialize, draw, finalize type functions.</div><div>Octaga browser has an unusual trait: it can run Script node functions immediately, without needing to wait for end-of-frame processing. </div><div><a href="https://freewrl.sourceforge.io/tests/29_Scripting/script_call_script.x3dv">https://freewrl.sourceforge.io/tests/29_Scripting/script_call_script.x3dv</a><br></div><div><a href="https://freewrl.sourceforge.io/tests/29_Scripting/script_call_proto.x3dv">https://freewrl.sourceforge.io/tests/29_Scripting/script_call_proto.x3dv</a><br></div><div>Octaga answer = Hello</div><div>(other browsers tested can't do this)</div><div>This would allow the following design: a set of inputOutput fields on a Proto are the input parameters, an input_only field operates as the function to run, and another set of inputOutput or outputOnly proto fields would represent the function outputs. </div><div>(output1, output2, output3) = run( input1, input2, input3 ..)</div><div>And the outputs would happen immediately. This allows Parent-Child arrangement of Protos which can recurse deep, allowing protos to emulate many of the node type functionally that are currently opaque due to parent-child immediate-run needs.</div><div>-Doug</div><div><br></div><div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 15, 2024 at 11:53 AM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</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"><div dir="auto">Ultimately, the scenegraph *should* be built into the browser or OS.   Then there’s the question of extensibility, where X3D steps right in!</div><div dir="auto"><br></div><div dir="auto">Instead of arguing about which extensions to support, build in an extension mechanism!</div><div dir="auto"><br></div><div dir="auto">Now, how do we do that for XML Schema and X3DUOM so we can validate X_ITE materials?</div><div dir="auto"><br></div><div dir="auto">I’m maybe halfway there, parsing X_ITE documentation into X3DUOM.  I’ve converted glTF examples to X3D (JSON, IIRC) using Holger’s x3d-tidy, now to actually validate the examples with X3D JSON schema!</div><div dir="auto"><br></div><div dir="auto">In the middle of this, I get a whole new system.</div><div dir="auto"><br></div><div dir="auto">Sigh!</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 15, 2024 at 10:06 AM Joe D Williams via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</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"><a href="https://www.youtube.com/watch?v=Z-WTelO-IgU" rel="noreferrer" target="_blank">https://www.youtube.com/watch?v=Z-WTelO-IgU</a><br>
<br>
<br>
Anyone looking at this?<br>
Thanks, <br>
Joe<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>