<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I don't see an immediate configuration to the python package for
      converting JSON arrays to python tuples, will continue digging. I
      realize we can only use standard packages, so we may have to
      convert JSON to X3DJSON compatible with our library.</p>
    <p>John<br>
    </p>
    <div class="moz-cite-prefix">On 12/4/21 20:49, John Carlson wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a111bb1f-6fdf-2535-1830-0e053189802f@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>With a small change to HelloWorld.py, a large amount of clarity
        comes.  I have made a couple of changes to
        Viewport.centerOfRotation and Viewport.position values, making
        them lists instead of tuples, and the following is revealed:</p>
      <p><span style="font-family:monospace"><span
            style="color:#000000;background-color:#ffffff;">$ python3
            examples/HelloWorld.py  </span><br>
          x3d.py package loaded, have fun with X3D Graphics! <br>
          Traceback (most recent call last): <br>
           File
"/c/x3d-code/www.web3d.org/x3d/stylesheets/python/examples/HelloWorld.py",
          line 59, in <module> <br>
             Viewpoint(DEF='ViewUpClose',centerOfRotation=<u><i><b>[0,-1,0]</b></i></u>,description='Hello
          world!',position=<u><i><b>[0,-1,7]</b></i></u>), <br>
           File
          "/c/x3d-code/www.web3d.org/x3d/stylesheets/python/x3d.py",
          line 74910, in __init__ <br>
             self.centerOfRotation = centerOfRotation <br>
           File
          "/c/x3d-code/www.web3d.org/x3d/stylesheets/python/x3d.py",
          line 74931, in centerOfRotation <br>
             assertValidSFVec3f(centerOfRotation) <br>
           File
          "/c/x3d-code/www.web3d.org/x3d/stylesheets/python/x3d.py",
          line 3929, in assertValidSFVec3f <br>
             raise X3DTypeError(str(value)[:100] + ', type=' +
          str(type(value)) + ' is not a valid Python tuple for SFVec3f')
          <br>
          x3d.X3DTypeError: [0, -1, 0], type=<class 'list'> is not
          a valid Python tuple for SFVec3f<br>
          <br>
        </span><span style="font-family:monospace"></span>I'm guessing
        you've already addressed this. If we want to continue with
        tuples, we will probably have to configure json loading.  I will
        look into that now.<br>
      </p>
      <p>Thanks!</p>
      <p>John<br>
      </p>
      <div class="moz-cite-prefix">On 12/4/21 20:29, John Carlson wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:4a2a4c11-1257-e991-ef3d-fe00244154eb@gmail.com">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        <p>I will keep my draft email aside until it can be tested with
          an improved x3d.py.</p>
        <p>The main issue appears to be the difference between a
          hand-coded python app and a JSON-based python dict, with
          difference between how SFVec3f setter handles tuple versus
          list.</p>
        <p>Good luck with testing/development!</p>
        <p>I will try to flesh out the partial classes, preparing for
          integration with the classes generated by the stylesheet. 
          Hopefully, I will get to full XML output with a single JSON
          file.<br>
        </p>
        <p>John<br>
        </p>
        <div class="moz-cite-prefix">On 12/4/21 17:11, Brutzman, Donald
          (Don) (CIV) wrote:<br>
        </div>
        <blockquote type="cite"
cite="mid:BY3PR13MB488490129C82CECE7C519F88C46B9@BY3PR13MB4884.namprd13.prod.outlook.com">
          <meta http-equiv="Content-Type" content="text/html;
            charset=UTF-8">
          <meta name="Generator" content="Microsoft Word 15 (filtered
            medium)">
          <style>@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;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
          <div class="WordSection1">
            <p class="MsoNormal">John, thanks for your note but again no
              complaints (ever) by me for your worthy efforts.<o:p></o:p></p>
            <p class="MsoNormal"><o:p> </o:p></p>
            <p class="MsoNormal">Email motivation: when I post it is
              best effort for everyone in community (now and future)
              reading the archives.  Avoiding confusion is important.<o:p></o:p></p>
            <p class="MsoNormal"><o:p> </o:p></p>
            <p class="MsoNormal">Please stand by on further x3d.py
              commentary.  Last weekend made good progress (as reported
              to you via phone Tuesday) and almost finished initial JSON
              export, now need to check a regression issue on VRML
              export.<o:p></o:p></p>
            <div>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif"><o:p> </o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">all the best, Don<o:p></o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">-- <o:p></o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">Don Brutzman  Naval Postgraduate
                  School, Code USW/Br        <a
                    class="moz-txt-link-abbreviated
                    moz-txt-link-freetext"
                    href="mailto:brutzman@nps.edu"
                    moz-do-not-send="true">brutzman@nps.edu</a><o:p></o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">Watkins 270,  MOVES Institute,
                  Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">X3D graphics, virtual worlds, navy
                  robotics https://</span> <span
                  style="font-size:10.0pt;font-family:"Courier
                  New",serif">faculty.nps.edu/brutzman<o:p></o:p></span></p>
            </div>
            <p class="MsoNormal"><o:p> </o:p></p>
            <div>
              <div style="border:none;border-top:solid #E1E1E1
                1.0pt;padding:3.0pt 0in 0in 0in">
                <p class="MsoNormal"><b>From:</b> John Carlson <a
                    class="moz-txt-link-rfc2396E"
                    href="mailto:yottzumm@gmail.com"
                    moz-do-not-send="true"><yottzumm@gmail.com></a>
                  <br>
                  <b>Sent:</b> Saturday, December 4, 2021 2:08 PM<br>
                  <b>To:</b> Brutzman, Donald (Don) (CIV) <a
                    class="moz-txt-link-rfc2396E"
                    href="mailto:brutzman@nps.edu"
                    moz-do-not-send="true"><brutzman@nps.edu></a>;
                  Joseph D Williams <a class="moz-txt-link-rfc2396E"
                    href="mailto:joedwil@earthlink.net"
                    moz-do-not-send="true"><joedwil@earthlink.net></a><br>
                  <b>Cc:</b> X3D Graphics public mailing list <a
                    class="moz-txt-link-rfc2396E"
                    href="mailto:x3d-public@web3d.org"
                    moz-do-not-send="true"><x3d-public@web3d.org></a><br>
                  <b>Subject:</b> Re: [x3d-public] X3D Scripting for
                  X3DOM w/o reading standard<o:p></o:p></p>
              </div>
            </div>
            <div>
              <p>I appreciate your confidence in me, but I feel that I
                would make a mess of it.  Plus, if I can't read existing
                standards, I probably can't figure out how to improve
                them either.<o:p></o:p></p>
              <p>I have similar problems with videos, TV episodes,
                books, etc.  I've been working on doing better with
                videos, but it seems that YouTube makes me angry now.<o:p></o:p></p>
              <p>For some reason, my ability to email people remains.  I
                don't know if I comprehend things too well in emails.<o:p></o:p></p>
              <p>I feel it's best to stick with my strong points in bug
                finding, problem solving and creativity.  I am not sure
                if there's a place for that in Web3D/X3D.<o:p></o:p></p>
              <p>I totally understand that X_ITE supports script
                <field>s, but I don't know if script
                <field>'s are required to be supported by the
                standard.<o:p></o:p></p>
              <p>I think the main sticking point is that HTML does not
                support script <field>'s, so neither does X3D4?  
                But somehow, X_ITE supports <field>s in scripts,
                and does DOM as well, via Andreas' extension.   It would
                seem that X3DOM could support scripts given some
                effort.   When I tried, I ran up against <field>'s
                not being supported, so I bailed.  But perhaps someone
                with a bit more persistence could get past that, IDK.<o:p></o:p></p>
              <p>Integrating Protos and Scripts still seems to be an
                unsolved problem in X3DOM?  Is my effort the only one
                that actually has some modicum of success (with some of
                my own files)?  If we start somewhere, should we start
                with my effort, or X_ITE?  Or another path?<o:p></o:p></p>
              <p>I opened email to report a possible misunderstanding in
                x3d.py.  I'll put that in another email.<o:p></o:p></p>
              <p>Thanks!<o:p></o:p></p>
              <p>John<o:p></o:p></p>
              <div>
                <p class="MsoNormal">On 12/4/21 12:30, Brutzman, Donald
                  (Don) (CIV) wrote:<o:p></o:p></p>
              </div>
              <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
                <p>Hi John.  You reasonably ask “Does the X3D4 standard
                  eschew script <field>s?  And instead offer
                  "onclick()" events?”<o:p></o:p></p>
                <p class="MsoNormal">Ummm, why wonder ever again?  Why
                  not propose fixing X3D4 if unclear or incorrect? 
                  Together we are in charge of our own destiny.<o:p></o:p></p>
                <p class="MsoNormal"> <o:p></o:p></p>
                <ol style="margin-top:0in" type="1" start="1">
                  <li class="MsoListParagraph"
                    style="margin-left:0in;mso-list:l0 level1 lfo3">X3D4
                    Architecture, Committee Draft CD1, Annex L  HTML
                    authoring guidelines<o:p></o:p></li>
                  <li class="MsoListParagraph"
                    style="margin-left:0in;mso-list:l0 level1 lfo3"><a
href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html"
                      moz-do-not-send="true"
                      class="moz-txt-link-freetext">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html</a><o:p></o:p></li>
                </ol>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">The X3D4 guidelines are intended to
                  complement HTML5. Building up behavior examples (like
                  the rosetta-stone bouncing ball) that show HTML DOM
                  being HTML DOM, and X3D being X3D, is a very good
                  approach.<o:p></o:p></p>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">Thanks for all scrutiny,
                  demonstration, and possible improvements.  Looking
                  forward to steady continuing progress together as a
                  community.<o:p></o:p></p>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">p.s. Have fun with X3D4 and HTML5! 
                  8)<o:p></o:p></p>
                <div>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif"> </span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">all the best, Don</span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">-- </span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">Don Brutzman  Naval Postgraduate
                      School, Code USW/Br        <a
                        href="mailto:brutzman@nps.edu"
                        moz-do-not-send="true"
                        class="moz-txt-link-freetext">brutzman@nps.edu</a></span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">Watkins 270,  MOVES Institute,
                      Monterey CA 93943-5000 USA    +1.831.656.2149</span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">X3D graphics, virtual worlds,
                      navy robotics https://</span> <span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">faculty.nps.edu/brutzman</span><o:p></o:p></p>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <div>
                  <div style="border:none;border-top:solid #E1E1E1
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <p class="MsoNormal"><b>From:</b> x3d-public <a
                        href="mailto:x3d-public-bounces@web3d.org"
                        moz-do-not-send="true">
                        <x3d-public-bounces@web3d.org></a> <b>On
                        Behalf Of </b>John Carlson<br>
                      <b>Sent:</b> Friday, December 3, 2021 2:07 PM<br>
                      <b>To:</b> Joseph D Williams <a
                        href="mailto:joedwil@earthlink.net"
                        moz-do-not-send="true"><joedwil@earthlink.net></a><br>
                      <b>Cc:</b> X3D Graphics public mailing list <a
                        href="mailto:x3d-public@web3d.org"
                        moz-do-not-send="true">
                        <x3d-public@web3d.org></a><br>
                      <b>Subject:</b> Re: [x3d-public] X3D Scripting for
                      X3DOM w/o reading standard<o:p></o:p></p>
                  </div>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p>For example, if we see this: <a
href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.kshell.com%2Fpages%2Frosetta%2Frosetta_x3dom.html&data=04%7C01%7Cbrutzman%40nps.edu%7C3c69f0c7cc5f457ced0208d9b7728cbd%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637742525300096123%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=wsa4aY%2B8UhE%2FnLTAKQdrOMSwiq5m6L4g6SkakyjGXxA%3D&reserved=0"
                    moz-do-not-send="true">
                    https://www.kshell.com/pages/rosetta/rosetta_x3dom.html</a>
                  copied from another email, we see that there are *no*
                  script <field>s in the code.<o:p></o:p></p>
                <p>Does the X3D4 standard eschew script <field>s? 
                  And instead offer "onclick()" events?<o:p></o:p></p>
                <p>Thanks!<o:p></o:p></p>
                <p>John<o:p></o:p></p>
                <div>
                  <p class="MsoNormal">On 12/3/21 15:33, John Carlson
                    wrote:<o:p></o:p></p>
                </div>
                <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
                  <p class="MsoNormal"> <o:p></o:p></p>
                  <div>
                    <p class="MsoNormal"><br>
                      <br>
                      <br>
                      <o:p></o:p></p>
                    <blockquote
                      style="margin-top:5.0pt;margin-bottom:5.0pt">
                      <p class="MsoNormal" style="margin-bottom:12.0pt">On
                        Dec 3, 2021, at 1:53 PM, Joseph D Williams <a
                          href="mailto:joedwil@earthlink.net"
                          moz-do-not-send="true"><joedwil@earthlink.net></a>
                        wrote:<o:p></o:p></p>
                    </blockquote>
                  </div>
                  <blockquote
                    style="margin-top:5.0pt;margin-bottom:5.0pt">
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                      <ol style="margin-top:0in" type="1" start="1">
                        <li class="MsoListParagraph"
                          style="margin-left:0in;mso-list:l2 level1
                          lfo6">2.  What are the stumbling blocks to
                          getting script fields into the event model?<o:p></o:p></li>
                      </ol>
                      <p class="MsoNormal"> <o:p></o:p></p>
                      <p class="MsoNormal">Hi John,<o:p></o:p></p>
                      <p class="MsoNormal">Scripts are completely
                        involved in the x3d sai event model. A script
                        must receive an event to begin execution and
                        then it is like an ’external’ in that when the
                        script begins it essentially acts like a
                        beginUpdate and when it completes it essentially
                        gets an endUpdate and all outputs are sent with
                        the same time stamp as kicked off the script.
                        Think of it as script is like any other node
                        that can receive and send events. Only exception
                        is, I think, that a script directOut does not
                        initiate a new cascade<o:p></o:p></p>
                    </div>
                  </blockquote>
                  <div>
                    <p class="MsoNormal"> <o:p></o:p></p>
                  </div>
                  <p class="MsoNormal">Part of the thing to do is try
                    script fields in X3DOM and see if they work at all,
                    and if they don’t, try to do a minimal amount of
                    debugging to see what might be done. <o:p></o:p></p>
                  <div>
                    <p class="MsoNormal">I do not recall if Roy’s work
                      on this is available still or not.<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"> <o:p></o:p></p>
                  </div>
                  <div>
                    <div>
                      <blockquote
                        style="margin-top:5.0pt;margin-bottom:5.0pt">
                        <div>
                          <p class="MsoNormal"> <o:p></o:p></p>
                          <ol style="margin-top:0in" type="1" start="2">
                            <li class="MsoListParagraph"
                              style="margin-left:0in;mso-list:l2 level1
                              lfo6">3.  If scripts are transformed, how?<o:p></o:p></li>
                          </ol>
                          <p class="MsoNormal"> <o:p></o:p></p>
                          <p class="MsoNormal">If it is ECMAScript then
                            what do you do? What can be done? Break it
                            down into json like any other node? For some
                            reason I hope not.<o:p></o:p></p>
                          <p class="MsoNormal"> <o:p></o:p></p>
                        </div>
                      </blockquote>
                      <div>
                        <p class="MsoNormal"> <o:p></o:p></p>
                      </div>
                      <p class="MsoNormal">Well, one could potentially
                        replace field access with a node attribute util
                        get or set method.   But this can get really
                        tricky, if not impossible to do in all cases.  
                        It would be better to implement script field
                        routes, if possible. See above.  If one could
                        get script field routes into the HTML standard,
                        much, much better…<br>
                        <br>
                        <br>
                        <o:p></o:p></p>
                      <blockquote
                        style="margin-top:5.0pt;margin-bottom:5.0pt">
                        <div>
                          <p class="MsoNormal">Joe <o:p></o:p></p>
                          <p class="MsoNormal"> <o:p></o:p></p>
                          <p class="MsoNormal"> <o:p></o:p></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:yottzumm@gmail.com"
                                moz-do-not-send="true">John Carlson</a><br>
                              <b>Sent: </b>Tuesday, November 30, 2021
                              11:40 AM<br>
                              <b>To: </b><a
                                href="mailto:x3d-public@web3d.org"
                                moz-do-not-send="true">X3D Graphics
                                public mailing list</a><br>
                              <b>Subject: </b>[x3d-public] X3D
                              Scripting for X3DOM w/o reading standard<o:p></o:p></p>
                          </div>
                          <p class="MsoNormal"> <o:p></o:p></p>
                          <p class="MsoNormal">Information needed:<o:p></o:p></p>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">1.   Do scripts in
                              proto bodies get copied?<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">2.  What are the
                              stumbling blocks to getting script fields
                              into the event model?<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">3.  If scripts are
                              transformed, how?<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">4.  What is the new
                              event model for X3D4?<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"> <o:p></o:p></p>
                          </div>
                          <p class="MsoNormal">John<o:p></o:p></p>
                          <p class="MsoNormal"> <o:p></o:p></p>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </blockquote>
              </blockquote>
            </div>
          </div>
        </blockquote>
      </blockquote>
    </blockquote>
  </body>
</html>