<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">I ran into a problem with scenegraph conversion, converting force.json to force.mjs. Running force.mjs with node.js in the X3DJSONLD/src/main/node/net/ecma/data folder revealed a coding error where field arrays are not being closed off soon enough. The code to create the .mjs file is in …/node/ECMAScriptSerializer.js, but mjs are generally created with the X3DJSONLD/src/main/shell/several.sh script running like<div><br></div><div>$ bash ./several.sh ../data/force.x3d</div><div><br></div><div>I might start with the serializer, perhaps in a bit.</div><div><br></div><div>Another thing I might do is resort to Is something that follows the SAI Standard. I already have some code there, but it pretty much requires running in a browser to test.</div><div><br></div><div>Which seems weird, since EAI has been converted to SAI, AFAIK.</div><div><div><div><div><br><div dir="ltr">Sent from my iPad</div><div dir="ltr"><br><blockquote type="cite">On Nov 1, 2021, at 1:10 PM, John Carlson <yottzumm@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="auto">Joe, as you are probably aware, your example probably does not work in some browsers. I am not a browser developer. I still don’t think that Script fields are hooked up with ROUTEs yet in X3DOM. That is a major problem that may or may not affect X_ITE, but in my testing, I couldn’t see that any clicking worked.</div><div dir="auto"><br></div><div dir="auto">I did write some script to route interactions in X3DJSONLD’s Script.js. I do not know how applicable that is to anything, except my own animations.</div><div dir="auto"><br></div><div dir="auto">I understand Web3d has goals of getting the standard working on the WWW. I do not see any structure within the organization which will track tasks for software and keep people accountable, except for standards oriented tasks.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">My focus has been getting JSON working. I need to continue to do that, or my code will rot.</div><div dir="auto"><br></div><div dir="auto">I have 1 primary goal: 1) get Ajv 8.6.3 or other JSON validator working on the web. The move to JSON Schema 2020-12 was not well informed as Ajv does not currently have a web solution, and the python validators are slow or don’t work. I believe that the Java solutions may be adequate, but the ant script in x3dschema repository does throw warnings I believe.</div><div dir="auto"><br></div><div dir="auto">We do need a way to sent many JSON files to the validator. I don’t currently know how to do this with an ant script and I hope to accomplish this task this afternoon.</div><div dir="auto"><br></div><div dir="auto">In other words, I am pretty busy keeping the JSON message going.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 31, 2021 at 6:55 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word"><div class="m_-8813890000071991460WordSection1"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Looks like great stuff if I as a simple user of the x3d ecmascript SAI ever needed to know about it in order to create and use x3d Script node. </p><p class="MsoNormal">All I want to know is will this example work. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://www.web3d.org/documents/specifications/19775-2/V3.3/index.html" target="_blank">ISO/IEC 19775-2 Index page (web3d.org)</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://www.web3d.org/documents/specifications/19775-2/V3.3/index.html" target="_blank">https://www.web3d.org/documents/specifications/19775-2/V3.3/index.html</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/index.html" target="_blank">ISO/IEC 19777-1 Edition 2 -- X3D ECMAScript binding (web3d.org)</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/index.html" target="_blank">https://www.web3d.org/documents/specifications/19777-1/V3.3/index.html</a><u></u><u></u></p><p><a href="https://www.web3d.org/documents/specifications/19776-1/V3.3/index.html" target="_blank">ISO/IEC 19776-1:2015 — X3D XML encoding — Index (web3d.org)</a><u></u><u></u></p><p><a href="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/examples.html#ScriptingExample" target="_blank">https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/examples.html#ScriptingExample</a><u></u><u></u></p><p><span style="font-size:12pt;font-family:Verdana,sans-serif;color:black">Here is the example:<u style="font-family:Verdana,sans-serif"></u><u style="font-family:Verdana,sans-serif"></u></span></p><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><?xml version="1.0" encoding="utf-8"?><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> "<a href="http://www.web3d.org/specifications/x3d-3.0.dtd" target="_blank" style="font-family:monospace">http://www.web3d.org/specifications/x3d-3.0.dtd</a>"><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><u style="font-family:monospace"></u> <u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><X3D version='3.0' profile='Immersive'><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <head><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <meta name='filename' content='Scripting.x3d'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </head><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Scene><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Script DEF='OpenVault'><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <field name='openVault' type='SFTime' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> accessType='inputOnly'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <field name='combinationEntered' type='SFBool' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> accessType='inputOnly'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <field name='vaultUnlocked' type='SFTime' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> accessType='outputOnly'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <field name='unlocked' type='SFBool' value='false' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> accessType='initializeOnly' /><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <![CDATA[<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> ecmascript:<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> function combinationEntered (value) {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> unlocked = value;<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> }<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> function openVault(value) {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> if (unlocked) vaultUnlocked = value;<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> }<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> ]]><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </Script><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Shape><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Appearance><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Material diffuseColor='1 0 0'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </Appearance><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Sphere/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </Shape><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <Sound maxBack='1000' maxFront='1000' minBack='1000' minFront='1000'><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <AudioClip DEF='Click' stopTime='1' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> description='clicking sound' url='"click.wav"'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </Sound><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <TouchSensor DEF='TS'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <ROUTE fromNode='TS' fromField='isOver' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> toNode='OpenVault' toField='combinationEntered'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <ROUTE fromNode='TS' fromField='touchTime' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> toNode='OpenVault' toField='openVault'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> <ROUTE fromNode='OpenVault' fromField='vaultUnlocked' <u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> toNode='Click' toField='startTime'/><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"> </Scene><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"></X3D><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><u style="font-family:monospace"></u> <u style="font-family:monospace"></u></span></b></pre><pre style="margin-left:11.25pt;font-family:monospace"><a href="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/Examples/Scripting.x3d" target="_blank" style="font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white">Click here</span></a><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black"> to view this example in a 3D scene window.<u style="font-family:Verdana,sans-serif"></u><u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black"><u style="font-family:Verdana,sans-serif"></u> <u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black">If already ok for some tools please tell me: <u style="font-family:Verdana,sans-serif"></u><u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black">How can we best be sure that when that ‘Click here’ in the spec or in this note gets made, that it works as described using any competent html Dom webGL ecmascript browser, not in a sandbox (at least show the geometry and retrieve that .wav), free to interact with the rest of our WWW. <u style="font-family:Verdana,sans-serif"></u><u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black"><u style="font-family:Verdana,sans-serif"></u> <u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black">Thanks for all, <u style="font-family:Verdana,sans-serif"></u><u style="font-family:Verdana,sans-serif"></u></span></pre><pre style="margin-left:11.25pt;font-family:monospace"><span style="font-size:12pt;font-family:Verdana,sans-serif;background-color:white;color:black">Joe </span><b style="font-family:monospace"><span style="font-size:8.5pt;font-family:monospace;color:black"><u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></b></pre></div></div><div lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word"><div class="m_-8813890000071991460WordSection1"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Sunday, October 31, 2021 1:16 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br><b>Subject: </b>[x3d-public] ECMAScript 6 X3D API</p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">More work done on es6x3d:</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://GitHub.com/coderextreme/es6x3d" target="_blank">https://GitHub.com/coderextreme/es6x3d</a></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Changes for MFString, and other MF work.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Still lots of work to do, including possible export to three.js</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">John</p><p class="MsoNormal"><u></u> <u></u></p></div></div><div lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word"><div class="m_-8813890000071991460WordSection1"><p class="MsoNormal">_______________________________________________</p><p class="MsoNormal">x3d-public mailing list</p><p class="MsoNormal"><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a></p><p class="MsoNormal"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div></div>
</div></blockquote></div></div></div></div></body></html>