<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">> can run Script node functions immediately, without needing to wait for end-of-frame processing. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">The x3d Script node can be part of a cascade that sends node and field events when the script completes all having the same time stamp as the input event. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">If directOut, then Script should execute and output event immediately without initiating a new cascade or being part of any existing cascade. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">The THIS is the DEF string of the Script node. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">> </span><span style="font-size: 12pt;">Ultimately, the scenegraph *should* be built into the browser or OS. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-size: 12pt;"> </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">The html browser uses DOM for runtime. x3d uses SAI, In a sense runtime is built into the html browser using javascript gl interfaces that produce the runtime where the SAI and DOM can talk to each other using Canvas. Other tools are standalone with whatever SAI they can conjure. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">T</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">hanks and Best,</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">Joe</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Sent: Jul 15, 2024 11:46 AM<br>To: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Cc: GPU Group <gpugroup@gmail.com><br>Subject: Re: [x3d-public] gltf tooling</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<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></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></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> </div>
<div> </div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Mon, Jul 15, 2024 at 11:53 AM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; 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"> </div>
<div dir="auto">Instead of arguing about which extensions to support, build in an extension mechanism!</div>
<div dir="auto"> </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"> </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"> </div>
<div dir="auto">In the middle of this, I get a whole new system.</div>
<div dir="auto"> </div>
<div dir="auto">Sigh!</div>
<div dir="auto"> </div>
<div dir="auto">John</div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Mon, Jul 15, 2024 at 10:06 AM Joe D Williams via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;"><a href="https://www.youtube.com/watch?v=Z-WTelO-IgU" target="_blank" rel="noopener noreferrer">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" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></blockquote>
</div>
</div>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></blockquote>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>