<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.m3705278146108278236m8095493740017175402m-7056022351321710558apple-converted-space
        {mso-style-name:m_3705278146108278236m_8095493740017175402m_-7056022351321710558apple-converted-space;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:141317963;
        mso-list-template-ids:-1;}
@list l1
        {mso-list-id:1841193229;
        mso-list-template-ids:-1;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>This is the main reason why I have not introduced anything into X3DOM or X_ITE which uses eval.  Thanks for the heads up and the link Leonard, will look into using Function to execute ECMAScript in X3DJSONLD—X3DJSONLD is still very much a prototype when dealing with Scripts.  Can you discuss uses of eval with Holger, Andreas?  The use of a scope with eval in X_ITE is similar to Function perhaps?  I need to read more.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>One thing that comes to mind right away for X3DJSONLD is the ability to execute ROUTEs to and from scripts.  For each eval or Function call on things which do routing, how do I share the Function or eval scope? I guess I need to put the event loop in the local Function scope instead of in the global scope. Hmm.</p><p class=MsoNormal><br>In particular, if you are using Scripts.js or loadScripts in X3DJSONLD, you should make sure your ECMAScript does not have security holes.  Plus that, just to let you know, I am modifying the ECMAScript being sent to eval, so the script you currently send in JSON and X3D is not your own, it’s a cobbled together way to handle stuff with Proto’s and script events.  If you are concerned, see Script.js</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I will be working on creating a Function equivalent, but if someone wants to look at loadScripts in Script.js, this is where I do the evals, that would be most welcome.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><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></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>X3DJSONLD has the following warning in the README.md:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p><div><ul type=disc><li class=MsoNormal style='color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo2;background:white'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif'>WARNING<o:p></o:p></span></li></ul><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'>You should not put up index.html from the X3D JSON Loader found here <a href="https://github.com/coderextreme/X3DJSONLD/"><span style='color:#0366D6'>https://github.com/coderextreme/X3DJSONLD/</span></a> and here <a href="http://coderextreme.net/X3DJSONLD/"><span style='color:#0366D6'>http://coderextreme.net/X3DJSONLD/</span></a> without careful consideration of this:<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'><a href="https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet"><span style='color:#0366D6'>https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet</span></a><o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'>In particular, I am choosing tags, attribute names, and attributes right out of the JSON and XML with limited filtering or checking (just checking JSON schema, which may be ignored). You should validate any JSON or XML being loaded into the X3D JSON Loader (yes I know it’s problematic). In particular, if you store XML or JSON from untrusted sources and display them in the Loader, it’s likely you will get an XSS attack. Please sanitize all input from untrusted source and make sure it’s valid. We don’t currently have XML Schema or XML Schematron for JSON data yet. We do have JSON schema, but it doesn't test scripts.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'>It’s in the license that I will not be liable for damages. Please use my software with care. I am not a security researcher.<o:p></o:p></span></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in;background:white'><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white;border:none;padding:0in;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'>If someone wants me to write a sanitizer for the X3D JSON Loader, I am willing to for $$$. I will need to run it by some security researchers.<o:p></o:p></span></p></div><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'><br>I will consider putting a warning about eval soon, if I can’t get rid of eval.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;background:white'><span style='font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E'><o:p> </o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;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">Leonard Daly</a><br><b>Sent: </b>Monday, August 6, 2018 1:56 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a>; <a href="mailto:vmarchetti@kshell.com">Vincent Marchetti</a>; <a href="mailto:x3d-public@web3d.org">X3D-Public</a><br><b>Subject: </b>Re: [x3d-public] good example for ECMAScripting and Protos?</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>[Removed X3DOM mailing list because the message applies to X3D in general and not X3DOM.]<br><br>There has been several mentions over that last many months about using eval to process code in the browser. Sometimes the code is JSON, other times the code is JavaScript (sometimes HTML5 JavaScript, others X3D ECMAScript). <br><br>I do not recall seeing any discussion of potential security issues when 'eval'ing code. <br><br>If the string is JSON, then the proper way to convert the JSON string to internal data structure is with JSON.parse (e.g., see <a href="https://www.w3schools.com/js/js_json_parse.asp">https://www.w3schools.com/js/js_json_parse.asp</a>). This built-in method ensures that no code is executed and only data structures are created.<br><br>eval() is a dangerous function. <br><br><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Do_not_ever_use_eval">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Do_not_ever_use_eval</a>!<br><br>Any library that provides the ability to execute uncontrolled code is really asking for trouble and probably will not be allowed in any corporate environment. Any X3D solution that requires the use of eval() for user code needs to be re-thought to develop a solution without that requirement -- either explicitly stated or required because no other solution to the requirements is possible.<br><br><br>Leonard Daly<br><br><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>I am interested in the fields, specifically getting scengraph values out of SFNodes which are in fields.  I can call the script node mooluckpooluck when I insert it into DOM, let’s just decide on something and add it to both X_ITE and X3DOM. X_ITE already uses eval.  Are we going to make that magically disappear, if so, how?   Let’s hop skip jump to it if it has to go through W3C.<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Mon, Aug 6, 2018 at 1:32 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p></div><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>I don’t care if the script tag is called mooluckpooluck or if there is a conflict.  I’m working in the JSON environment, so the rules are somewhat different.   What I am concerned about is getting my arrays converted to arrays and not strings.<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Mon, Aug 6, 2018 at 1:19 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p></div><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>Leonard, I agree my approach may not work in all environments.<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Determining a valid or invalid mime type is extremely difficult if done semantically, but extremely easy if done syntactically.  My guess is that many of the X3D tags are semantically invalid, unless someone has added them to Apache.   I do not know the status of this.   I have to add mine types to my server for every new extension I add.  It is not a that big of a deal.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>One may not need a script tag around X3D script to execute X3D script.  One may use eval in a script tag.   One may make script inconsequential by making the scripts only functions, and move the functions to a string which is evaled.  Essentially you are parsing twice.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If we want script fields handled by X3DOM, we will have to find someway to bring them into X3DOM.  X_ITE has shown the way.   We can take other approaches than X3DOM, like straight DOM.  I am beginning to think this is preferable,  but using DEF to find node which aren’t in the scenegraph has kind of been, wtf?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The question has become “Are DEFed SFNodes valid scenegraph objects if they are in fields?” This may show a failing of X3DOM, which may need to be corrected.  I can probably find the scengraph object using USE, but I really want to use DEF.   Can someone show me how to do it in the HTML5 environment?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John<o:p></o:p></p></div><div><div><div><p class=MsoNormal>On Mon, Aug 6, 2018 at 12:24 AM Leonard Daly <<a href="mailto:Leonard.Daly@realism.com" target="_blank">Leonard.Daly@realism.com</a>> wrote:<o:p></o:p></p></div><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>I am replying to an early message in this thread, but I hope to capture comments from all messages in the thread. My comments only apply to the web browser (HTML5) environment.<br><br>First, any Script tag (in any case) will be handled by the web browser, and the web browser will parse content before anything else. If you really need to independently parse some tags, you will need to "read" it into a JavaScript variable and handle it that way. If it's in the page file, it will be parsed.<br><br>There was a suggestion to use "text/x3dscript" or some other string. The W3C has something to say about this at <a href="https://www.w3.org/TR/html5/scripting-1.html#the-script-element" target="_blank">https://www.w3.org/TR/html5/scripting-1.html#the-script-element</a>. The value of the type attribute must either be<o:p></o:p></p><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>omitted<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>JavaScript MIME type<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>"module"<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>any other valid mime type<o:p></o:p></li></ol><p>So the use of an invalid MIME type is not technically valid HTML. This may cause a problem with some browsers or validators; or present future problems if that string is ever defined to have a particular meaning.</p><p>X3DOM does not have X3D scripting. If you need scripting to correctly process an X3DOM environment; then you need to do it in HTML5 Javascript. X3DOM does not process the Script tag, that is done by HTML5. While X3DOM parser could recognize that tag, it does not; hence, none of the X3DOM methods are available to handle interactions on a Script node (a Script tag parsed into DOM).</p><p>The X3D Script / HTML5 Script tag name conflict is a long-standing and known issue. To my knowledge no work has been done to break the conflict. </p><p>Leonard Daly</p><p><o:p> </o:p></p><p><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p></div></div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Here’s my current code for clearing the ECMAScript out of a X3D file so that it doesn’t show on the screen:</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                       $(selector+" Script").contents().filter(function () {</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                            return this.nodeType === 3 || this.nodeType === 4;</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>                       }).remove();</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This retains the fields.  I may change my code to work with fields instead of parsing out the fields into properties (but directOutput is nice).  This would mean that X3DOM has to route to and from the script fields (is this possible?).</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>John</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Saturday, August 4, 2018 4:56 AM<br><b>To: </b><a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D-Public</a>; <a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank">x3dom mlist</a>; <a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a><br><b>Subject: </b>RE: [x3d-public] good example for ECMAScripting and Protos?</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I have a problem with this file in X3DOM, because as far as I can tell, the SFNode fields (the node, not the field) do not have getFieldValue for point etc. as a function, for example (but one can double check me).  In other words, I don’t think this node is an X3DOM node.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thus I cannot take a reasonable length in the script.  One would have to parse the string.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><br>That’s as clear as I can get.  I think this might be because x3dom does not process scripts correctly. We would need a script tag handler, and a field handler inside that.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Can you help Andreas?  I’ve created a script tag before, but that code is lost. It might be in my GitHub repository somewhere, not sure.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>We just need a script tag that has fields, but doesn’t execute its CDATA section.  I am pretty sure</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>How is V4.0 handling this?</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Alternatively, I can change my nodeUtil code to look at the type and do the right thing converting a string to the correct type.   Suggestions are welcome.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks for the great example, Vince,</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Should I adapt my code to deal with this failing in X3DOM, or should we change X3DOM?</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>John</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a><br><b>Sent: </b>Wednesday, August 1, 2018 9:04 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D-Public</a><br><b>Subject: </b>Re: [x3d-public] good example for ECMAScripting and Protos?</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>See <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a href="http://www.kshell.com/pages/pointcloudvisualization/SphereDirectedPointSet.x3d" target="_blank">http://www.kshell.com/pages/pointcloudvisualization/SphereDirectedPointSet.x3d</a></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It is a X3D file with with a Prototype + ecmascript definition of a point cloud, with a vector attached to each point of the cloud.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Example used is just points randomly distributed on sphere with directs pointed radially outward.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Potential uses would be to implement the scanning design pattern at <a href="http://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html" target="_blank">http://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html</a> , or</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>visualizing fluid flow or  electromagnetic field</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'> </p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Jul 31, 2018, at 10:30 PM, John Carlson <a href="mailto:yottzumm@gmail.com" target="_blank"><yottzumm@gmail.com></a> wrote:</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Is there a good example of ECMAScripting in X3D that I can use to test my X3D JSON ECMAScript preprocessor?  Preferably with Protos<span class=m3705278146108278236m8095493740017175402m-7056022351321710558apple-converted-space> </span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks!</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>John</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:9.0pt;font-family:"Times New Roman",serif'>_______________________________________________<br>x3d-public mailing list<br></span><a href="mailto:x3d-public@web3d.org" target="_blank"><span style='font-size:9.0pt;font-family:"Times New Roman",serif;color:#954F72'>x3d-public@web3d.org</span></a><span style='font-size:9.0pt;font-family:"Times New Roman",serif'><br></span><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank"><span style='font-size:9.0pt;font-family:"Times New Roman",serif;color:#954F72'>http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a></p></div></blockquote></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><p class=MsoNormal><br><br><o:p></o:p></p><pre>_______________________________________________</pre><pre>x3d-public mailing list<o:p></o:p></pre><pre><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><o:p></o:p></pre><pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></pre></blockquote><p><o:p> </o:p></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 Past Chair<br>President, Daly Realism - <i>Creating the Future</i> </span><o:p></o:p></p></div></div></blockquote></div></div></blockquote></div></div></blockquote></div></div></blockquote><p><o:p> </o: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 Past Chair<br>President, Daly Realism - <i>Creating the Future</i> </span><o:p></o:p></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div></body></html>