<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <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>
  </body>
</html>