<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>
      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>
      <br>
      <br>
    </div>
    <blockquote type="cite"
      cite="mid:592cbe08.42ac240a.f1146.c9e2@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;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
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;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal">Interesting.  Do you need a JSON -> DOM
          library, or are you going with glTF or some other tool based
          JSON?</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…</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.</p>
        <p class="MsoNormal"> </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…</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.</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!</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">) {<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L533"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC533" 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">);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L534"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC534" 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">() {<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L535"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC535" 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">;<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L536"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC536" 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">);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L537"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC537" 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);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L538"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC538" 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">) {<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L539"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC539" 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));<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L540"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC540" valign="top">
                  <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">             
                      }<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L541"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC541" 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);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L542"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC542" 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);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L543"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC543" 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">) {<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L544"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC544" 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);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L545"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC545" 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">);<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L546"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC546" valign="top">
                  <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">       });<o:p></o:p></span></p>
                </td>
              </tr>
              <tr style="box-sizing: border-box">
                <td style="width:37.5pt;padding:0in 7.5pt 0in
                  7.5pt;box-sizing: border-box;min-width:
                  50px;color:rgba(27, 31, 35,
                  0.3);cursor:pointer;user-select: none" id="L547"
                  nowrap="nowrap" valign="top" width="50"><br>
                </td>
                <td style="padding:0in 7.5pt 0in 7.5pt;box-sizing:
                  border-box;word-wrap: normal;overflow:visible"
                  id="LC547" valign="top">
                  <p class="MsoNormal" style="line-height:15.0pt"><span
style="font-size:9.0pt;font-family:Consolas;color:#24292E">}<o:p></o:p></span></p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">John</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</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: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</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>
        <ol start="1" type="1">
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Standardizable<o:p></o:p></li>
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Enterprise ready<o:p></o:p></li>
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Fully HTML5/DOM integrated<o:p></o:p></li>
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Runs in all browsers<o:p></o:p></li>
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Fully support VR, AR, xR, and flat-screen
            displays as determined by the content developer and user<o:p></o:p></li>
          <li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:0in;mso-list:l0
            level1 lfo1">Leverages other standards and communities
            applications and libraries<o:p></o:p></li>
        </ol>
        <p><o:p> </o: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"><o:p> </o:p></span></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>