<div dir="auto">I believe namespace conflicts like (1) can be avoided through the use of X3D JSON -> XML with a script stripper that sends X3D Ecmascript in the JSON to eval, after first processing the fields for ROUTEs. This is done in my Script.js file with supporting from loadScripts() in loaderQuery.js. The plan is to have your DOM and eat it too.</div><div class="gmail_extra"><br><div class="gmail_quote">On May 22, 2017 11:01 AM, "Leonard Daly" <<a href="mailto:Leonard.Daly@realism.com">Leonard.Daly@realism.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><div class="quoted-text">
<div class="m_1758647866025161117moz-cite-prefix">On 5/22/2017 7:12 AM, John Carlson
wrote:<br>
</div>
<blockquote type="cite">
<div class="m_1758647866025161117WordSection1">
<p class="MsoNormal">The Script AND the Proto problem have ben
solved in the HTML environment, I believe, with Cobweb +
Cobweb DOM, or close to it. See Cobweb 3.2.</p>
</div>
</blockquote>
<br></div>
John,<br>
<br>
Script is very far from being solved, and (I believe) unsolvable
with the constraints of X3D and DOM. These are my reasons.<br>
1) There is a name conflict so X3D Script cannot be in the same
namespace as HTML's Script. HTML only has one namespace<br>
2) DOM allows scripts to modify themselves or be modified by other
scripts. This is not possible in Cobweb or Cobweb_DOM.<br>
<br>
3) If you create a new node called (for example) X3dScript replacing
the current X3D's Script node you solve (1) and because it's not
JavaScript in the DOM, (2) is irrelevant. Now a scene has two
different scripting environments. Even though the code looks to be
the same (written in the same language), one cannot access fields,
methods, properties, etc. of the other. They have different calling
mechanisms. The X3dScript node code cannot respond to HTML events
(mouseover, click, typing, etc in HTML elements). The HTML/DOM
Script code can only interact with X3D elements through X3D's SAI.
This design would produce an environment that has minimal (even less
than current X3D) adoption. It would be confusing to developers with
no obvious reason to the separate design. <br><div class="quoted-text">
<br>
<br>
<br>
<blockquote type="cite">
<div class="m_1758647866025161117WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Go bury your head in X3DOM or Aframe
please, and let the X3D standards folks deal with X3D.</p>
</div>
</blockquote>
<br></div>
So perhaps you are right and I can't drag this dinosaur onto a solid
foundation and prevent it from sinking into the swamp of
irrelevance. <br>
<br>
OTOH, I've been working on the VRML and X3D standards for 20 years.
I have been responsible for seeing all V3.x standards properly go
through the standardization process, and have co-authored a book on
the X3D V3 standard; so perhaps I do know a bit about the standard
and how to keep it relevant in the modern environment.<font color="#888888"><br>
<br>
Leonard Daly</font><div class="elided-text"><br>
<br>
<br>
<br>
<blockquote type="cite">
<div class="m_1758647866025161117WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Enough said.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">John</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From:
</b><a href="mailto:Leonard.Daly@realism.com" target="_blank">Leonard Daly</a><br>
<b>Sent: </b>Monday, May 22, 2017 10:06 AM<br>
<b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br>
<b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a>;
<a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank">x3dom-users@lists.sourceforge.<wbr>net</a>;
<a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a>; <a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a><br>
<b>Subject: </b>Re: [x3dom-users] Cobweb_dom...Script
Magic? Loading DOM subscenesafter parent in X3DOM and
Cobweb. ALMOST complete, requires sequencing ofouter
functions.</p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">John,<br>
<br>
I have not been convinced that Protos need to exist in an HTML
environment. Scripts are an integral piece of the Proto
architecture so if you path is to implement Protos on the way
to implementing Scripts, you need to solve the entire Script
problem first. If Scripts are optional, then why have Proto? I
think something like a macro expansion can solve all of the
use cases where Proto would be used while being lighter weight
and easier to implement and possibly use.<br>
<br>
Leonard Daly<br>
<br>
<u></u><u></u></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Leonard, I believe Scripts should be
implemented AFTER Protos. Just my opinion. Once the
Protos and the ROUTEs and the Scripts are expanded with
the new DEFs, then you apply the event model. This makes
things easier, but takes more memory. Then you optimize.
Beware premature optimization. <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">John<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On May 21, 2017 12:16 AM, "Leonard
Daly" <<a href="mailto:Leonard.Daly@realism.com" target="_blank">Leonard.Daly@realism.com</a>>
wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">John,<br>
<br>
I don't really like to answer this way, but why?<br>
<br>
X3DOM does not have Proto/ExternProto feature. It
does not have X3D Script node. The integration
with HTML is too close to allow an X3D Script
node. HTML JavaScript (via DOM and X3D node
manipulation) is available and used extensively.
X3DOM does not handle VRML (meaning a text file
with {} syntax). There is an unofficial JSON
loader. Perhaps you have one too. How does it get
the scene graph into DOM? Does it create DOM
elements (or perhaps an HTML text string which is
then parsed)? Something else?<br>
<br>
To the extent I understand your question, you are
asking for help in constructing a means of
handling X3D Script node in X3DOM. Once that is
done, Proto/ExternProto would be next. This would
all come into the browser through an JSON encoded
file. It seems to me that trying to handle X3D
Script code requires an entire infrastructure
supporting the X3D event mode and calling script
code with X3D arguments. It also requires building
full support for SAI and supporting the
'directOutput' field. That is a major effort with
no obvious purpose that I see in V4.<br>
<br>
You are asking for some serious time support (I
think) into an application that is neither fully
X3D-compliant, nor DOM-compliant (but the closest
to both that is available). At least for me, I do
not understand how this effort would further an
X3D integrated DOM system. I am quite willing to
listen to your reasons and help where I can, but I
would like to see where this is going first.<br>
<br>
Leonard Daly<br>
<br>
P.S. Everything above is for client-side code.
Server side code can manipulate things as much as
it wants to create something that runs in a
client-side browser.<br>
<br>
P.P.S. I do think there is a need to JSON encoding
in V4 subject to the node definition for V4.<br>
<br>
<br>
<u></u><u></u></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Yes, Leonard, for quite some
time I have an X3D JSON PROTOtypeExpander.js
that works with X3D PROTOs and EXTERNPROTOs and
displays in X3DOM. I don’t know how complete it
is, and testers are welcome. My EXTERNPROTO
expander runs on the server, so is not included
in the message, but it is included in the link
in the original message. If someone can make
the EXTERNPROTO expander work client side that
would be great.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The EXTERNPROTO expander is
generally called like:</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> json =
externPrototypeExpander(<wbr>outfile, json);</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Where json is the parent json
of the extern, and outfile is the parent X3D
file being loaded (I think “” will probably do
in a pinch. I am not sure.). The extern PROTOs
will be included in the original JSON as a
ProtoDeclare object. You may have to run the
flattener afterwards, and it is run as:</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span style="font-size:14.0pt"> json =
flattener(json);</span></p>
<p class="MsoNormal"><span style="font-size:14.0pt"> </span></p>
<p class="MsoNormal">It removes empty objects from
the JSON.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Yes, I would like someone to
help me with VRMLScript for X3DOM, if someone is
available. I have a very barebones and
incorrect implementation here:</p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Script.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/Script.js</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Please help. I don’t know
the X3D event model, and I’m not likely to learn
soon. The X3D event model can be emulated in
Browser-side JavaScript, but there’s only Cobweb
for proof.</p>
<p class="MsoNormal"><br>
I have another version of flipper.html here that
works with X3DOM and Cobweb adding the subscene
later. It works with Promises, but the
functions still aren’t separated…close, but no
cigar. Take a look:</p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/html/flipper.html" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/html/flipper.<wbr>html</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Sorry, I tend to use the XML
version of “Proto”, and not the VRML “PROTO”.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">X3DJSONLD provides an
infrastructure for X3D JSON Browser development,
including X3D XML -> X3D JSON conversion on
the server, and X3D JSON to X3D XML loading into
X3DOM and Cobweb. It also includes conversions
from XML DOM to Java and Nashorn JavaScript for
X3DJSAIL app development.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">There is definite potential
for an XML PROTO expander, as I have written
this code, but not seriously tested:</p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/CompleteXMLPrototypeExpander.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/<wbr>CompleteXMLPrototypeExpander.<wbr>js</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">So far, it’s still
server-side. If you’re going to modify it,
split it into server and client-side pieces,
please. Complete is probably a misnomer…</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">John</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a>
for Windows 10</p>
<p class="MsoNormal"> </p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From: </b><a href="mailto:Leonard.Daly@realism.com" target="_blank">Leonard
Daly</a><br>
<b>Sent: </b>Saturday, May 20, 2017 7:17 PM<br>
<b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John
Carlson</a>; <a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas
Plesch</a>; <a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a><br>
<b>Cc: </b><a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank">x3dom-users@lists.sourceforge.<wbr>net</a>;
<a href="mailto:x3d-public@web3d.org" target="_blank">X3D
Graphics public mailing list</a><br>
<b>Subject: </b>Re: [x3dom-users]
Cobweb_dom...Script Magic? Loading DOM
subscenesafter parent in X3DOM and Cobweb.</p>
</div>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="margin-bottom:12.0pt">John,</p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Cobweb_dom, X3DOM experts,
I need some help adding a child DOM scenegraph
with prototypes to a parent DOM scenegraph
after the </p>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Not sure how any of this applies to X3DOM as it
does not have PROTOs. Assuming you mean X3D
prototypes via PROTO or EXTERNPROTO. If you mean
something else, please elaborate.<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
<br>
</p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">primary scene has been
loaded, and not before. I have an example of
loading before the scene is loaded, and in a
callback. If you have an example with
Promises instead of callback nesting, that
would be more ideal, the second $.getJSON()
(child scenegraph) might finish before the
first $.getJSON() (parent scenegraph) if I
don’t use promises or callback nesting. Also,
Promises would allow me to separate the parent
loading somewhat from the child loading, and
create separate functions. Also, X3DOM
experts can provide an example with Promises
as well. Meanwhile, I will be reading about
Promises.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Here is my example so far:<u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/html/flipper.html" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/html/flipper.<wbr>html</a><br>
<br>
Viewable here:<u></u><u></u></p>
<p class="MsoNormal"><a href="https://coderextreme.net/X3DJSONLD/src/main/html/flipper.html" target="_blank">https://coderextreme.net/<wbr>X3DJSONLD/src/main/html/<wbr>flipper.html</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The white Box is the
subscene of the dolphin scene.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The following related code
is from <a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/loaderJQuery.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/<wbr>loaderJQuery.js</a></p>
<p class="MsoNormal">and references code from:</p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/X3DJSONLD.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/<wbr>X3DJSONLD.js</a></p>
<p class="MsoNormal">[ actually, I think the
last two reference each other – naughty ]</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Data is here:</p>
<p class="MsoNormal">[ child scenegraph ]<u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/abox.json" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/data/abox.json</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">[ parent scenegraph ]<u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/flipp.json" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/data/flipp.<wbr>json</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Cobweb doesn’t need the
prototypeExpander or the flattener (well, it
might have with prototypes in cobweb_dom, but
I think the last release fixed that…haven’t
checked—here is a good test for you!). This
is a dual example, and I haven’t figured out
how to conditionally run the prototypeExpander
on only X3DOM code. Please test without the
PrototypeExpander.js and Flattener.js
included, and remove X3DOM, since it won’t
work in that case. X3DOM folks can include
the two JavaScript files which are here:</p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/PrototypeExpander.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/<wbr>PrototypeExpander.js</a><u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/Flattener.js" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD/blob/<wbr>master/src/main/node/<wbr>Flattener.js</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">You may provide your own
appendInline (below) which doesn’t call
loadSchema. That may be too complex of a
download. That is, you probably don’t want to
do all that JSON schema validation in your
example. Try to keep my code close to what it
is otherwise.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">And if you start supporting
X3D JSON in your viewers, that would be even
better!</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">John</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">/**</p>
<p class="m_1758647866025161117m7357056672881959298msonormal" style="margin-left:56.25pt;line-height:105%"><span style="font-family:Symbol">·</span><span> </span>Next
is passed the element parameter</p>
<p class="m_1758647866025161117m7357056672881959298msonormal" style="margin-left:56.25pt;line-height:105%"><span style="font-family:Symbol">·</span><span> </span>*/</p>
<p class="MsoNormal">function
appendInline(element, url, next) {</p>
<p class="MsoNormal"> $.getJSON(url,
function(json) {</p>
<p class="MsoNormal"> if (typeof
prototypeExpander === 'function') {</p>
<p class="MsoNormal">
json = prototypeExpander(url, json, "");</p>
<p class="MsoNormal"> } else {</p>
<p class="MsoNormal">
console.error("Perhaps you need to include the
PrototypeExpander.js?");</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"> if (typeof
flattener === 'function') {</p>
<p class="MsoNormal">
json = flattener(json);</p>
<p class="MsoNormal"> } else {</p>
<p class="MsoNormal">
console.error("Perhaps you need to include the
Flattener.js?");</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"> // must
validate here because we call an inner method.</p>
<p class="MsoNormal">
loadSchema(json, url, doValidate, function() {</p>
<p class="MsoNormal">
ConvertToX3DOM(json["X3D"]["<wbr>Scene"], "Scene",
element, url);</p>
<p class="MsoNormal">
next(element);</p>
<p class="MsoNormal"> },
function(e) {</p>
<p class="MsoNormal">
console.error(e);</p>
<p class="MsoNormal"> });</p>
<p class="MsoNormal">
}).fail(function(jqXHR, textStatus,
errorThrown) { alert('getJSON request failed!
' + textStatus + ' ' + errorThrown); });</p>
<p class="MsoNormal">}</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">/**</p>
<p class="m_1758647866025161117m7357056672881959298msonormal" style="margin-left:1.0in;line-height:105%"><span style="font-family:Symbol">·</span><span> </span>Next
is passed the selected element from selector</p>
<p class="m_1758647866025161117m7357056672881959298msonormal" style="margin-left:1.0in;line-height:105%"><span style="font-family:Symbol">·</span><span> </span>Selector
is the CSS selector to append inline to.</p>
<p class="m_1758647866025161117m7357056672881959298msonormal" style="margin-left:1.0in;line-height:105%"><span style="font-family:Symbol">·</span><span> </span>*/</p>
<p class="MsoNormal">function
loadSubscene(selector, url, next) {</p>
<p class="MsoNormal">
appendInline(document.<wbr>querySelector(selector),
url, next);</p>
<p class="MsoNormal">}</p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
</p>
<pre>------------------------------<wbr>------------------------------<wbr>------------------</pre>
<pre>Check out the vibrant tech community on one of the world's most</pre>
<pre>engaging tech sites, Slashdot.org! <a href="http://sdm.link/slashdot" target="_blank">http://sdm.link/slashdot</a></pre>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
</p>
<pre>______________________________<wbr>_________________</pre>
<pre>X3dom-users mailing list<u></u><u></u></pre>
<pre><a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.<wbr>net</a><u></u><u></u></pre>
<pre><a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" target="_blank">https://lists.sourceforge.net/<wbr>lists/listinfo/x3dom-users</a></pre>
</blockquote>
<p> </p>
<p class="MsoNormal">-- <br>
<b><span style="font-size:13.5pt;color:#333366">Leonard
Daly</span></b><span style="color:#333366"><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the
Future</i> </span></p>
<p class="MsoNormal"> </p>
</div>
</blockquote>
<p><u></u> <u></u></p>
<div>
<p class="MsoNormal">-- <br>
<b><span style="font-size:13.5pt;color:#333366">Leonard
Daly</span></b><span style="color:#333366"><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the
Future</i> </span><u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<p><u></u> <u></u></p>
<p class="MsoNormal">-- <br>
<b><span style="font-size:13.5pt;color:#333366">Leonard Daly</span></b><span style="color:#333366"><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:black"><u></u> <u></u></span></p>
</div>
</blockquote>
<p><br>
</p>
<div class="m_1758647866025161117moz-signature">-- <br>
<font class="m_1758647866025161117tahoma,arial,helvetica m_1758647866025161117san m_1758647866025161117serif" color="#333366">
<font size="+1"><b>Leonard Daly</b></font><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i>
</font></div>
</div></div>
</blockquote></div><br></div>