[x3d-public] good example for ECMAScripting and Protos?

Leonard Daly Leonard.Daly at realism.com
Mon Aug 6 18:58:15 PDT 2018


Christoph,

I presume you are talking about an embedded HMD in a larger system such 
as aircraft operations. That would certainly not be a browser (though 
concept prototypes might be). This is a highly focused system where 
flexibility of a development environment (e.g., web browser) is 
generally avoided. In those types of systems it is all built for extreme 
performance, so interpreted code (JavaScript) and data objects 
(declarative languages) are almost never used in the display and render 
loop operations. That is all compiled code. It would build upon concepts 
developed for more flexible environments but not use them.

Leonard Daly



> Thank you. I hope I will have a chance to get in contact with X3DOM, 
> X_ITE, ...... some day. My only concern is about performance i.e. 
> resource consumption and about necessity of a W3C Browser for HMD.
>
> Any advise?
>
>
>
> Von meinem Samsung Gerät gesendet.
>
>
> -------- Ursprüngliche Nachricht --------
> Von: Leonard Daly <Leonard.Daly at realism.com>
> Datum: 06.08.18 22:27 (GMT+01:00)
> An: Valentin Christoph <Christoph.Valentin at kapsch.net>, John Carlson 
> <yottzumm at gmail.com>
> Cc: Andreas Plesch <andreasplesch at gmail.com>, X3D-Public 
> <x3d-public at web3d.org>
> Betreff: Re: AW: [x3d-public] good example for ECMAScripting and Protos?
>
> In X3DOM (I don't know enough about X_ITE to comment with authority), 
> it is possible to write JS code that handles new nodes. The code would 
> be loaded at run-time and handle parsing the processing the new nodes. 
> It is necessary to correctly connect them up with the rendering and 
> other parts of the X3DOM system.
>
> X3D Scripting is HTML/DOM scripting + X3D API calls for event and 
> field handling. There are certain things that are easier to do in DOM 
> scripting (e.g., connect HTML events to X3D actions and vice-versa). 
> Note that JavaScript is not on top of HTML. The DOM is the API to the 
> parsed HTML and JavaScript can access the DOM. It is possible to have 
> HTML without JavaScript and JavaScript without HTML.
>
> There may be cases where you will want a complete X3D environment 
> without a browser, but those cases will become fewer in number and 
> more restrictive in applicability. The world is moving to mobile 
> devices and there is a general disinterest in loading specialized apps 
> unless there is a real solid and obvious advantage to the user. Soon 
> the requirement to run outside the browser may be seen as a 
> disadvantage, especially if it prevents full integration and use 
> within the browser environment.
>
> Leonard Daly
>
>
>
>> Hi John.
>>
>> Cannot help here. I am just a user of X3D and I thought to stress the 
>> fact THAT extensibility is crucial. Cannot tell you HOW to achieve 
>> it. Sorry.
>>
>> All the best
>>
>>
>>
>> Von meinem Samsung Gerät gesendet.
>>
>>
>> -------- Ursprüngliche Nachricht --------
>> Von: John Carlson <yottzumm at gmail.com>
>> Datum: 06.08.18 21:18 (GMT+01:00)
>> An: Valentin Christoph <Christoph.Valentin at kapsch.net>, Leonard Daly 
>> <Leonard.Daly at realism.com>
>> Cc: Andreas Plesch <andreasplesch at gmail.com>, X3D-Public 
>> <x3d-public at web3d.org>
>> Betreff: RE: [x3d-public] good example for ECMAScripting and Protos?
>>
>> Here’s the one case I was successful at writing an interpreter: 
>> http://dsmforum.org/events/DSVL01/carlson.pdf I got help from Michael 
>> Turner, Jeffrey Allen and Frank Guerra.  No scoping whatsoever.
>>
>> John
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for 
>> Windows 10
>>
>> *From: *John Carlson <mailto:yottzumm at gmail.com>
>> *Sent: *Monday, August 6, 2018 3:13 PM
>> *To: *Valentin Christoph <mailto:Christoph.Valentin at kapsch.net>; 
>> Leonard Daly <mailto:Leonard.Daly at realism.com>
>> *Cc: *Andreas Plesch <mailto:andreasplesch at gmail.com>; X3D-Public 
>> <mailto:x3d-public at web3d.org>
>> *Subject: *RE: [x3d-public] good example for ECMAScripting and Protos?
>>
>> The only problem with this is that some X3D programmers are not 
>> capable of writing a good interpreter or compiler (only me perhaps). 
>> It’s another step up from regular programming (I have tried several 
>> times, and am only successful when someone else helps). I don’t see 
>> why we can’t use the regular browser JavaScript for x3dscript, except 
>> for scoping issues, perhaps. Am I being obtuse/stupid?
>>
>> John
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for 
>> Windows 10
>>
>> *From: *Valentin Christoph <mailto:Christoph.Valentin at kapsch.net>
>> *Sent: *Monday, August 6, 2018 3:04 PM
>> *To: *John Carlson <mailto:yottzumm at gmail.com>; Leonard Daly 
>> <mailto:Leonard.Daly at realism.com>
>> *Cc: *Andreas Plesch <mailto:andreasplesch at gmail.com>; X3D-Public 
>> <mailto:x3d-public at web3d.org>
>> *Subject: *AW: [x3d-public] good example for ECMAScripting and Protos?
>>
>> I am in favor of keeping X3D Scripting and X3D prototypes even in 
>> X3DOM and similar.
>>
>> Reason: need some place "on top" of X3D. At least for experimental 
>> extensibility.
>>
>> X3dscript "on top" of X3D ("on top" of Javascript "on top" of html)
>>
>> The part within parentheses needs to remain optional IMHO
>>
>> Von meinem Samsung Gerät gesendet.
>>
>>
>>
>> -------- Ursprüngliche Nachricht --------
>> Von: John Carlson <yottzumm at gmail.com>
>> Datum: 06.08.18 20:08 (GMT+01:00)
>> An: Leonard Daly <Leonard.Daly at realism.com>
>> Cc: Andreas Plesch <andreasplesch at gmail.com>, X3D-Public 
>> <x3d-public at web3d.org>
>> Betreff: Re: [x3d-public] good example for ECMAScripting and Protos?
>>
>> I agree there should be a solution that everyone can use.   One 
>> potential solution is to sandbox, which has worked for systems like 
>> VMware, virtual box etc.   I don’t know the status of systems like 
>> this for JavaScript, but it may be worth investigating such systems, 
>> and creating a recommendation for those implementing VRML on the 
>> web.  Another potential solution is moving more things into 
>> declarative syntax.  I favor this, but I don’t want to end up with 
>> something like CSAML (left to the reader to investigate).   A third 
>> solution get rid of scripting from X3D entirely and use DOM 
>> scripting.   This perhaps is the best solution, but might leave some 
>> people out of the VRML world because they are too afraid of DOM 
>> scripting.
>>
>> On Mon, Aug 6, 2018 at 1:56 PM Leonard Daly <Leonard.Daly at realism.com 
>> <mailto:Leonard.Daly at realism.com>> wrote:
>>
>>     [Removed X3DOM mailing list because the message applies to X3D in
>>     general and not X3DOM.]
>>
>>     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).
>>
>>     I do not recall seeing any discussion of potential security
>>     issues when 'eval'ing code.
>>
>>     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
>>     https://www.w3schools.com/js/js_json_parse.asp). This built-in
>>     method ensures that no code is executed and only data structures
>>     are created.
>>
>>     eval() is a dangerous function.
>>
>>     https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Do_not_ever_use_eval!
>>
>>     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.
>>
>>
>>
>>
>>     Leonard Daly
>>
>>
>>         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.
>>
>>         John
>>
>>         On Mon, Aug 6, 2018 at 1:32 AM John Carlson
>>         <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
>>
>>             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.
>>
>>             On Mon, Aug 6, 2018 at 1:19 AM John Carlson
>>             <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
>>
>>                 Leonard, I agree my approach may not work in all
>>                 environments.
>>
>>                 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.
>>
>>                 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.
>>
>>                 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?
>>
>>                 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?
>>
>>                 John
>>
>>                 On Mon, Aug 6, 2018 at 12:24 AM Leonard Daly
>>                 <Leonard.Daly at realism.com
>>                 <mailto:Leonard.Daly at realism.com>> wrote:
>>
>>                     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.
>>
>>                     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.
>>
>>                     There was a suggestion to use "text/x3dscript" or
>>                     some other string. The W3C has something to say
>>                     about this at
>>                     https://www.w3.org/TR/html5/scripting-1.html#the-script-element.
>>                     The value of the type attribute must either be
>>
>>                     1.omitted
>>
>>                     2.JavaScript MIME type
>>
>>                     3."module"
>>
>>                     4.any other valid mime type
>>
>>                     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.
>>
>>                     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).
>>
>>                     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.
>>
>>                     Leonard Daly
>>
>>                         Here’s my current code for clearing the
>>                         ECMAScript out of a X3D file so that it
>>                         doesn’t show on the screen:
>>
>>                         $(selector+"
>>                         Script").contents().filter(function () {
>>
>>                         return this.nodeType === 3 || this.nodeType
>>                         === 4;
>>
>>                         }).remove();
>>
>>                         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?).
>>
>>                         John
>>
>>                         Sent from Mail
>>                         <https://go.microsoft.com/fwlink/?LinkId=550986>
>>                         for Windows 10
>>
>>                         *From: *John Carlson <mailto:yottzumm at gmail.com>
>>                         *Sent: *Saturday, August 4, 2018 4:56 AM
>>                         *To: *vmarchetti at kshell.com
>>                         <mailto:vmarchetti at kshell.com>; X3D-Public
>>                         <mailto:x3d-public at web3d.org>; x3dom mlist
>>                         <mailto:x3dom-users at lists.sourceforge.net>;
>>                         Andreas Plesch <mailto:andreasplesch at gmail.com>
>>                         *Subject: *RE: [x3d-public] good example for
>>                         ECMAScripting and Protos?
>>
>>                         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.
>>
>>                         Thus I cannot take a reasonable length in the
>>                         script.  One would have to parse the string.
>>
>>
>>                         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.
>>
>>                         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.
>>
>>                         We just need a script tag that has fields,
>>                         but doesn’t execute its CDATA section. I am
>>                         pretty sure
>>
>>                         How is V4.0 handling this?
>>
>>                         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.
>>
>>                         Thanks for the great example, Vince,
>>
>>                         Should I adapt my code to deal with this
>>                         failing in X3DOM, or should we change X3DOM?
>>
>>                         John
>>
>>                         Sent from Mail
>>                         <https://go.microsoft.com/fwlink/?LinkId=550986>
>>                         for Windows 10
>>
>>                         *From: *vmarchetti at kshell.com
>>                         <mailto:vmarchetti at kshell.com>
>>                         *Sent: *Wednesday, August 1, 2018 9:04 PM
>>                         *To: *John Carlson
>>                         <mailto:yottzumm at gmail.com>; X3D-Public
>>                         <mailto:x3d-public at web3d.org>
>>                         *Subject: *Re: [x3d-public] good example for
>>                         ECMAScripting and Protos?
>>
>>                         See
>>
>>                         http://www.kshell.com/pages/pointcloudvisualization/SphereDirectedPointSet.x3d
>>
>>                         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.
>>
>>                         Example used is just points randomly
>>                         distributed on sphere with directs pointed
>>                         radially outward.
>>
>>                         Potential uses would be to implement the
>>                         scanning design pattern at
>>                         http://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html
>>                         , or
>>
>>                         visualizing fluid flow or  electromagnetic field
>>
>>                             On Jul 31, 2018, at 10:30 PM, John
>>                             Carlson <yottzumm at gmail.com>
>>                             <mailto:yottzumm at gmail.com> wrote:
>>
>>                             Is there a good example of ECMAScripting
>>                             in X3D that I can use to test my X3D JSON
>>                             ECMAScript preprocessor? Preferably with
>>                             Protos
>>
>>                             Thanks!
>>
>>                             John
>>
>>                             _______________________________________________
>>                             x3d-public mailing list
>>                             x3d-public at web3d.org
>>                             <mailto:x3d-public at web3d.org>
>>                             http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>                         _______________________________________________
>>
>>                         x3d-public mailing list
>>
>>                         x3d-public at web3d.org
>>                         <mailto:x3d-public at web3d.org>
>>
>>                         http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>                     -- 
>>                     *Leonard Daly*
>>                     3D Systems & Cloud Consultant
>>                     LA ACM SIGGRAPH Past Chair
>>                     President, Daly Realism - /Creating the Future/
>>
>>     -- 
>>     *Leonard Daly*
>>     3D Systems & Cloud Consultant
>>     LA ACM SIGGRAPH Past Chair
>>     President, Daly Realism - /Creating the Future/
>>
>>
>>
>>
>> The information contained in this e-mail message is privileged and 
>> confidential and is for the exclusive use of the addressee. The 
>> person who receives this message and who is not the addressee, one of 
>> his employees or an agent entitled to hand it over to the addressee, 
>> is informed that he may not use, disclose or reproduce the contents 
>> thereof, and is kindly asked to notify the sender and delete the 
>> e-mail immediately.
>>
>
> -- 
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> LA ACM SIGGRAPH Past Chair
> President, Daly Realism - /Creating the Future/
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org


-- 
*Leonard Daly*
3D Systems & Cloud Consultant
LA ACM SIGGRAPH Past Chair
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180806/7fa4832a/attachment-0001.html>


More information about the x3d-public mailing list