<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">John,<br>
      <br>
      I'm not sure I follow all of this (at least not sure yet...)<br>
      <br>
      I can get the external (JSON) file in text format and easily parse
      it into an object. Do you have software that goes from the object
      to DOM nodes? Once there are DOM nodes (but not in the page's
      document tree), I can extract what I need and insert it as
      children of Inline, then parse the 3D node contents.<br>
      <br>
      BTW, the conversion from JSON object to DOM needs to be general
      purpose and not specifically for X3D nodes, though it can follow
      the attribute and children pattern that has been set up.<br>
      <br>
      Leonard Daly<br>
      <br>
      <br>
      <br>
    </div>
    <blockquote type="cite"
      cite="mid:592d32dc.4f0d240a.f91b6.f9a7@mx.google.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.pl-k
        {mso-style-name:pl-k;}
span.pl-en
        {mso-style-name:pl-en;}
span.pl-smi
        {mso-style-name:pl-smi;}
span.pl-c1
        {mso-style-name:pl-c1;}
span.pl-s
        {mso-style-name:pl-s;}
span.pl-pds
        {mso-style-name:pl-pds;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1581673668;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal">Yes, the code is in
          x3dom/src/nodes/Networking/Inline.js:loadInline()</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">You would have to set  the Ajax to be
          generic (or add json, not sure how to do that—one thing you
          can do is test the extension of the url), instead of XML so
          you can download JSON as well, then around these lines,</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">                    if (navigator.appName
          != "Microsoft Internet Explorer")</p>
        <p class="MsoNormal">                        xml =
          xhr.responseXML;</p>
        <p class="MsoNormal">                    else</p>
        <p class="MsoNormal">                        xml = new
          DOMParser().parseFromString(xhr.responseText, "text/xml");</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">call my JSON to DOM converter after parsing
          the xhr.response with JSON.parse(), then pass javascript
          object returned from JSON.parse and a brand new xml variable
          X3D element you create into my routines (or call
          JSONParser.parseJavaScript() which returns an X3D element and
          set the xml variable to it).</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I believe they will do the step of
          integrating the JSON Inline into the scene below, so you don’t
          have to do it!</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Then you add X3DJSONLD as a package to
          X3DOM.  That, I don’t know how to do yet.  Why didn’t I do it
          myself?  Because I want to get people interested with me and
          test my code!  I believe programmer should test their code,
          and I have done that, but further testing is always welcome!</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I believe the best approach would be to
          integrate the JSONParser with X3DOM, since the code is
          cleaner, and JSONParser is already somewhat packaged.  If not,
          give me module for X3DOM/JSONLD, and I will add my code to it,
          and we can put it under X3DOM’s license!</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">If we make these changes to X3DOM (or
          XSeen), I will be happy to test  XSeen!</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">And then watch how easy my JSON prototype
          expander slips in.  LOL, needs more work.</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">What is Multipart.js in X3DOM?  Do we need
          to modify that?</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">John</p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div
          style="mso-element:para-border-div;border:none;border-top:solid
          #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
          <p class="MsoNormal" style="border:none;padding:0in"><b>From:
            </b><a href="mailto:yottzumm@gmail.com"
              moz-do-not-send="true">John Carlson</a><br>
            <b>Sent: </b>Tuesday, May 30, 2017 3:48 AM<br>
            <b>To: </b><a href="mailto:Leonard.Daly@realism.com"
              moz-do-not-send="true">Leonard Daly</a>; <a
              href="mailto:x3d-public@web3d.org" moz-do-not-send="true">X3D
              Public</a>; <a href="mailto:brutzman@nps.edu"
              moz-do-not-send="true">Don Brutzman</a><br>
            <b>Subject: </b>RE: [x3d-public] Announcing XSeen</p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I have code for that in X3DJSONLD.js, but
          it doesn’t work very well yet in X3DOM (works fine in Cobweb),
          so it’s commented out.  Here it is. I attach the Inline to the
          parent of the Inline, instead of the scene element, I believe.
          I believe I have a problem with figuring out the right URL to
          load, so look at loadURLs and especially processURLs with it—I
          believe these are best left to X3DOM and Cobweb though. 
          Patching the code to load the right URL based on a parent
          would go a long way to fixing my code-loading the right URL is
          pretty much always an issue, and it would be nice if it was
          built into the browser itself.  I can work on it if you want,
          if XML -> JSON is not a priority.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">                } else if (key ===
          'Inline') {<o:p></o:p></p>
        <p class="MsoNormal">                        var localArray =
          object[key]["@url"];<o:p></o:p></p>
        <p class="MsoNormal">                       
          console.error("Loading", localArray, "at", path, "into", key);<o:p></o:p></p>
        <p class="MsoNormal">                        loadURLs(path,
          localArray, function(jsobj, path) {<o:p></o:p></p>
        <p class="MsoNormal">                                //
          console.error("Read", jsobj);<o:p></o:p></p>
        <p class="MsoNormal">                                try {<o:p></o:p></p>
        <p class="MsoNormal">                                        //
          console.error("Loading", jsobj, "into inline");<o:p></o:p></p>
        <p class="MsoNormal">                                        var
          child = document.createDocumentFragment();<o:p></o:p></p>
        <p class="MsoNormal">                                       
          ConvertToX3DOM(jsobj, "-children", child, path);<o:p></o:p></p>
        <p class="MsoNormal">                                       
          element.appendChild(child);<o:p></o:p></p>
        <p class="MsoNormal">           
                            element.appendChild(document.createTextNode("\n"));<o:p></o:p></p>
        <p class="MsoNormal">                                } catch(e)
          {<o:p></o:p></p>
        <p class="MsoNormal">                                        //
          if JSON parse failed, it might be XML or WRL<o:p></o:p></p>
        <p class="MsoNormal">                                        var
          child = CreateElement(key, x3djsonNS, containerField);<o:p></o:p></p>
        <p class="MsoNormal">                                        //
          console.error("Reloading",
          object[key]["@url"].join('","').replace(/\.json/g,
          '.x3d').split(/","/));<o:p></o:p></p>
        <p class="MsoNormal">                                       
          ConvertToX3DOM(object[key], key, child, path);<o:p></o:p></p>
        <p class="MsoNormal">                                       
          element.appendChild(child);<o:p></o:p></p>
        <p class="MsoNormal">                                       
          element.appendChild(document.createTextNode("\n"));<o:p></o:p></p>
        <p class="MsoNormal">                                }<o:p></o:p></p>
        <p class="MsoNormal">                        });<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I don’t believe I need this in Cobweb
          (loadURLs and processURLs is not present), because Inlines are
          handled separately from the JSON parsing.  I believe that
          cobweb/X3DJSONLD can load a JSON URL for XML, or an XML URL
          for JSON.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Speaking of this, I am just realizing that
          Inlines in the above code will not go through normal schema
          processing (WHOOPS!).  So that’s something I need to change—or
          plain throw away the above code.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">In summary, you can look at this code for
          an example, but it plain doesn’t work, and I prefer what
          Cobweb does anyway..so I leave it up to cobweb to call my
          parser when it finds a JSON scene in a URL in DOM.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The real thing would be to extend X3DOM to
          handle JSON Inlines and translate from JSON to DOM there
          natively when reading Inlines.  That would work best, IMHO,
          not in a separate piece of code.  My code can be used in X3DOM
          (you have my permission).<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I haven’t gotten any interest in X3DJSONLD
          from the X3DOM folks that I know of.  Perhaps you could
          intercede? I can also look into how Inlines are loaded in
          X3DOM (but so can you).  I can certainly provide a DOM object
          from reading JSON.  If you know the best place to attach the
          Inline, great!<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I use $.getJSON() from JQuery to load JSON
          external references.  References to that is in:  <a
href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/loaderJQuery.js"
            moz-do-not-send="true">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/loaderJQuery.js</a>. 
          I have also used Google’s get() and getJSON() from <a
href="https://developers.google.com/web/fundamentals/getting-started/primers/promises"
            moz-do-not-send="true">https://developers.google.com/web/fundamentals/getting-started/primers/promises</a>
          if you want a smaller chunk of code than JQuery, and something
          compatible with current promises.  Likely there is already
          similar code in X3DOM’s inlines, and you can just call
          JSON.parse(ajax return).  If it throws an exception, then you
          know it’s XML.  Easy.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">So in other words, I think going from JSON
          to DOM really is the correct solution that will work in the
          long run.  It’s probably very difficult to replace X3DOM with
          a JSON equivalent and not recreate DOM.  I don’t have the
          time, and you probably don’t either.  Maybe if we sacrifice a
          few years of our lives.  But I don’t want to do that.  Do
          you?  I have not seen a great difference in loading times
          between Cobweb/X3DJSONLD and Cobweb native (in one case), but
          someone could show me the differences.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I will look a bit into X3DOM Inlines and
          tell you what I think.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">John<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Sent from <a
            href="https://go.microsoft.com/fwlink/?LinkId=550986"
            moz-do-not-send="true">Mail</a> for Windows 10<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:Leonard.Daly@realism.com"
              moz-do-not-send="true">Leonard Daly</a><br>
            <b>Sent: </b>Tuesday, May 30, 2017 2:16 AM<br>
            <b>To: </b><a href="mailto:yottzumm@gmail.com"
              moz-do-not-send="true">John Carlson</a>; <a
              href="mailto:x3d-public@web3d.org" moz-do-not-send="true">X3D
              Public</a>; <a href="mailto:brutzman@nps.edu"
              moz-do-not-send="true">Don Brutzman</a><br>
            <b>Subject: </b>Re: [x3d-public] Announcing XSeen<o:p></o:p></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-bottom:12.0pt">John,<br>
          <br>
          Thank you for your interest. I have thought about how to
          create a scene in the browser if the input is JSON. I don't
          really have an answer right now. One solution I thought of is
          to create DOM nodes from the info in the JSON, then parse the
          DOM into the scene graph. There is obvious overhead, but it
          does reduce the problem to a previously solved case.<br>
          <br>
          At this time I am comparing features to determine which are
          important and how best to express them. I have tried to keep
          the input possibilities as simple as possible so I haven't
          worked on handling a JSON encoding just yet. I do consider it
          important, but I'm not sure exactly where to start with it
          given where XSeen is right now.<br>
          <br>
          When importing, I can take an X3D file and parse it as an XML
          file to create a DOM tree that is not attached to the
          document. I walk through the tree looking for a Scene element,
          then move all children of Scene to be children of the
          referring Inline. If you have code that can take an input (as
          external reference via Inline) and parse it into a DOM tree, I
          would be interested. Is that what your code does?<br>
          <br>
          Leonard Daly<br>
          <br>
          <br>
          <o:p></o:p></p>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="MsoNormal">Interesting.  Do you need a JSON ->
            DOM library, or are you going with glTF or some other tool
            based JSON?<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">X3DJSONLD may work for your JSON ->
            DOM purposes.  It is intended to be fairly JSON encoding
            agnostic, and I’d like to try it with one of your scenes.
             Do you have a scene in JSON?  That is, I don’t have a DOM
            -> JSON yet, but that’s on my near todo list, and I have
            a pre-alpha prototype, if X3D/X3DOM Scripts and Routes are
            no longer a priority.  It sounds like DOM -> JSON is
            higher priority…<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">If you do have JSON, and you are using <a
href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/X3DJSONLD.js"
              moz-do-not-send="true">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/X3DJSONLD.js</a>
            ,  you will need to modify the below method to provide your
            own loadSchema for JSON validation, or just remove it an
            rely on the basic DOM validation in the browser.<o:p></o:p></p>
          <p class="MsoNormal">I do have a version which is more
            packaged, found in cobweb/X3DJSONLD, here:  <a
href="https://github.com/coderextreme/cobweb/blob/master/cobweb.js/cobweb/Parser/JSONParser.js"
              moz-do-not-send="true">https://github.com/coderextreme/cobweb/blob/master/cobweb.js/cobweb/Parser/JSONParser.js</a>
            in that case, you just call var dom =
            JSONParser.parseJavaScript(jsObj), but it creates and X3D
            DOM element, which may not be desired.  The code is cleaner,
            and you may provide an alternative to parseJavaScript…<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">There are also DOM -> XML serializers
            in X3DJSONLD (not the above JavaScript, but in
            src/main/node) to validate your JSON is producing the right
            DOM.  The serialization is fairly standard, but you may find
            that you need to do some substitutions, which I provide.<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">I will start work on DOM -> JSON
            again.  We do need a second implementation, and I need it
            for client side purposes.  Off to work!<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <div>
            <table class="MsoNormalTable"
              style="background:white;border-collapse:collapse"
              cellspacing="0" cellpadding="0" border="0">
              <tbody>
                <tr>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">function</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">loadX3DJS</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">jsobj</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">path</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">xml</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">NS</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">loadSchema</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">doValidate</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">callback</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">) {</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">       </span><span
                        class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">console</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">.</span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">error</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">"</span></span><span
                        class="pl-s"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">Invoking
                          client side loader</span></span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">"</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">       </span><span
                        class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">loadSchema</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(jsobj, path,
                        doValidate, </span><span class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">function</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">() {</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                        x3djsonNS </span><span class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">=</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">NS</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">;</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">var</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> child </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">=</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">CreateElement</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
                        class="pl-s"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">X3D</span></span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, </span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">NS</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">ConvertToX3DOM</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(jsobj, </span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">""</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, child,
                        path);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">if</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> (</span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">typeof</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> xml </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">!==</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
                        class="pl-s"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">undefined</span></span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">&&</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">typeof</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">xml</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">.</span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">push</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">===</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E"> </span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
                        class="pl-s"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">function</span></span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">'</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">) {</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                               </span><span class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">xml</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">.</span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">push</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">serializeDOM</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(jsobj,
                        child));</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                        }</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">console</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">.</span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">error</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">"</span></span><span
                        class="pl-s"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">Returning
                          with</span></span><span class="pl-pds"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#183691">"</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">, child);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">callback</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(child);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">       }, </span><span
                        class="pl-k"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#A71D5D">function</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-smi"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#333333">e</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">) {</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">console</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">.</span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">error</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(e);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      </span><span class="pl-en"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#795DA3">callback</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">(</span><span
                        class="pl-c1"><span
                          style="font-size:9.0pt;font-family:Consolas;color:#0086B3">null</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">);</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">       });</span><o:p></o:p></p>
                  </td>
                </tr>
                <tr>
                  <td style="width:37.5pt;padding:0in 7.5pt 0in 7.5pt"
                    nowrap="nowrap" valign="top" width="50"><br>
                  </td>
                  <td style="padding:0in 7.5pt 0in 7.5pt" valign="top">
                    <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">}</span><o:p></o:p></p>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">John<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">Sent from <a
              href="https://go.microsoft.com/fwlink/?LinkId=550986"
              moz-do-not-send="true">Mail</a> for Windows 10<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:Leonard.Daly@realism.com"
                moz-do-not-send="true">Leonard Daly</a><br>
              <b>Sent: </b>Monday, May 29, 2017 7:11 PM<br>
              <b>To: </b><a href="mailto:x3d-public@web3d.org"
                moz-do-not-send="true">X3D Public</a><br>
              <b>Subject: </b>[x3d-public] Announcing XSeen<o:p></o:p></p>
          </div>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p>As most of you know I have been advocating that X3D fully
            move into the HTML5 environment and support the display and
            interaction of flat-screen and VR declarative content in the
            browser. A-Frame offers many of those capabilities and was
            built for the browser environment. </p>
          <p>In keeping with my advocacy of this evolution of X3D, I
            started development of a library that supports comparison
            and definition of the best features of A-Frame, X3D, and
            other capabilities. This is a very early pre-alpha
            development release to help generate interest in a
            discussion of the appropriate technologies to include in the
            3D/VR HTML language. The initial release is announced at <a
              href="http://realism.com/blog/xseen-merging-x3d-and-frame"
              moz-do-not-send="true">http://realism.com/blog/xseen-merging-x3d-and-frame</a></p>
          <p>At this stage only a few static features are available
            including all 3D pre-defined solids from  both languages
            plus X3D's Appearance, Material, Shape, Transform, and
            Inline. It is possible to mix nodes from X3D and A-Frame.
            The initial version of the library is on GitHub at <a
              href="https://github.com/DrX3D/XSeen"
              moz-do-not-send="true">https://github.com/DrX3D/XSeen</a>.
            It runs on top of THREE.js</p>
          <p>My next step is to write the beginnings of the internals
            documentation describing how to add nodes and other
            features. At this time there are no capabilities for
            animation except for what is done directly through THREE.</p>
          <p>The goal of this work is to develop a language that is</p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">1.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Standardizable<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">2.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Enterprise
            ready<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">3.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Fully
            HTML5/DOM integrated<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">4.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Runs
            in all browsers<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">5.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Fully
            support VR, AR, xR, and flat-screen displays as determined
            by the content developer and user<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.5in;text-indent:-.25in;mso-list:l0
            level1 lfo1"><!--[if !supportLists]--><span
              style="mso-list:Ignore">6.<span style="font:7.0pt
                "Times New Roman"">       </span></span><!--[endif]-->Leverages
            other standards and communities applications and libraries<o:p></o:p></p>
          <p> </p>
          <p class="MsoNormal">-- <br>
            <b><span style="font-size:13.5pt;color:#333366">Leonard Daly</span></b><span
              style="color:#333366"><br>
              3D Systems & Cloud Consultant<br>
              LA ACM SIGGRAPH Chair<br>
              President, Daly Realism - <i>Creating the Future</i> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="color:black"> </span><o:p></o:p></p>
        </blockquote>
        <p><o:p> </o:p></p>
        <p class="MsoNormal"><span style="color:black">-- <br>
          </span><b><span style="font-size:13.5pt;color:#333366">Leonard
              Daly</span></b><span style="color:#333366"><br>
            3D Systems & Cloud Consultant<br>
            LA ACM SIGGRAPH Chair<br>
            President, Daly Realism - <i>Creating the Future</i> </span><span
            style="color:black"><o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
    </blockquote>
    <p><br>
    </p>
    <div class="moz-signature">-- <br>
      <font class="tahoma,arial,helvetica san serif" color="#333366">
        <font size="+1"><b>Leonard Daly</b></font><br>
        3D Systems & Cloud Consultant<br>
        LA ACM SIGGRAPH Chair<br>
        President, Daly Realism - <i>Creating the Future</i>
      </font></div>
  </body>
</html>