<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">I just had an inspiration and would
      like to run it by people. This may have been obvious to everyone
      else, but it's the first time I have thought of it this way.<br>
      <br>
      In X3D a Grouping node (e.g., Transform, Group, etc.) can contain
      other nodes. These usually define scene objects and collect them
      together in some sort of organized system. Looking at a Transform
      node that does not have any Transform children, that node can be
      thought of as a single entity with all of the children nodes and
      fields contained in that single parent.<br>
      <br>
      For example<br>
      <br>
      <tt><Transform translation='1 2 3' rotation='1 0 0 3.14'
        scale='3 2 1'></tt><tt><br>
      </tt><tt>    <Shape></tt><tt><br>
      </tt><tt>        <Cone></Cone></tt><tt><br>
      </tt><tt>        <Appearance></tt><tt><br>
      </tt><tt>            <Material diffuseColor='1 .5 .2'
        specularColor='.8 0 0'></Material></tt><tt><br>
      </tt><tt>        </Appearance></tt><tt><br>
      </tt><tt>    </Shape></tt><tt><br>
      </tt><tt></Transform></tt><tt><br>
      </tt><br>
      Could be represented (using an arbitrary, non-XML representation)
      as:<br>
      <br>
      <tt>Transform {</tt><tt>translatio</tt><tt>n:</tt><tt>(1 2 3);
        rotation</tt><tt>:(</tt><tt>1 0 0 3.14); scale</tt><tt>:</tt><tt>(3
        2 1</tt><tt>);</tt><tt> <br>
                    geometry:Cone; </tt><tt>diffuseColor</tt><tt>:(</tt><tt>1
        .5 .2)</tt><tt>; </tt><tt>specularColor</tt><tt>:</tt><tt>(.8 0
        0);}</tt><tt><br>
      </tt><tt>
      </tt><br>
      Thereby collapsing five elements (in XML) into one. [I am not
      advocating that this is the right approach.] Do note that this
      looks a lot like a CSS statement - it was not intentional. Note
      that in this representation it is not possible to have more than
      one Shape node. What is really being defined is a mesh (geometry +
      texture) at a specific translation, scale, and rotation. If the
      desired final geometry is a cube + sphere, it would take two
      statements to make that work (or make the geometry in Blender and
      output a single piece of geometry).<br>
      <br>
      Higher level transforms would have a reference to a previously
      defined Transform. For example something like:<br>
      <br>
      <tt>Transform {children:(Transform#One Transform#Two
        Transform#Three);}</tt><tt><br>
      </tt><br>
      <br>
      For me, what makes this important is that it is a lot like the
      definitions in A-Frame on an entity. I know that there are a lot
      of capabilities of X3D that are not being included in this
      example, but this gives me connection between the two in
      representing the same objects.<br>
      <br>
      I am interested in what others have to say about this connection
      idea. <br>
      <br>
      <br>
      Leonard Daly<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
    </div>
    <blockquote type="cite"
      cite="mid:8326579c-aa97-6eed-8b54-ae7be57aaa1f@noegenesis.com">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      <p>Great points!!</p>
      <p>Sounds like a combination of the two is best.</p>
      <p>I am afraid that if there is not strong advocacy for the
        strengths of both, we will wind up with A-Frame only and unless
        it is somehow extended will hobble rich webVR worlds for a
        longer time than necessary.<br>
      </p>
      <br>
      <div class="moz-cite-prefix">On 4/13/17 8:02 PM, Leonard Daly
        wrote:<br>
      </div>
      <blockquote
        cite="mid:2d3ffec4-433a-5a8e-b961-40806c1b64db@realism.com"
        type="cite">
        <meta http-equiv="Content-Type" content="text/html;
          charset=utf-8">
        <div class="moz-cite-prefix">On 4/13/2017 6:55 PM, Michael
          Aratow wrote:<br>
        </div>
        <blockquote type="cite"
          cite="mid:45c89a1c-4475-fc9b-6a24-f4ea544c1349@noegenesis.com">
          <meta content="text/html; charset=utf-8"
            http-equiv="Content-Type">
          <p>Do we really need to have both A-Frame and X3D?  This seems
            to be making things unnecessarily complicated for VR content
            authors.  Either one or the other or something that is a
            combination of the two?<br>
          </p>
        </blockquote>
        <br>
        [Usual caveats apply here -- this is a discussion of displaying
        3D in a web browser environment using a declarative HTML-like
        language.]<br>
        <br>
        Only one will end up surviving. <br>
        <br>
        A-Frame is simple, easy to understand, and supported by some
        very large and influential organizations<br>
        <br>
        X3D is complex, fully declarative, rich environment and is
        frequently never heard of or ignored.<br>
        <br>
        A-Frame is not currently capable of handling (without coding)
        Geospatial, volume, CAD, metadata, and 3D printing (though it is
        usually the just the models that are printed). <br>
        <br>
        A-Frame's component system isolates individual elements of the
        scene. It is difficult to impossible to build up a composite
        structure of multiple elements. In X3D this is done as a
        Transform containing another Transform containing ... So far, I
        have not found a way to even Group elements together; however,
        it may be beyond where my detailed reading has taken me so far.<br>
        <br>
        So far, I believe that it is difficult (or impossible) to have
        your model in X3D and express it in A-Frame. I believe that it
        is possible to have a separate file that is just a model and
        load that (as geometry or geometry+texture). I think traditional
        X3D (rigid-body, key-frame) animation cannot be done in A-Frame
        on pieces of X3D models. <br>
        <br>
        I am trying to get at the basic philosophy of X3D and A-Frame
        and see what use cases each cover and not cover. <br>
        <br>
        A-Frame appears to put each element in a box. The elements can
        only change in pre-defined manners and two elements cannot
        merge. X3D is far more flexible in this regard. I don't know how
        I would handle certain types of visualization or user-controlled
        on-the-fly geometry changes or arbitrary network updates in
        A-Frame.<br>
        <br>
        <br>
        Leonard Daly<br>
        <br>
        <br>
        <br>
        <blockquote type="cite"
          cite="mid:45c89a1c-4475-fc9b-6a24-f4ea544c1349@noegenesis.com">
          <p> </p>
          <br>
          <div class="moz-cite-prefix">On 4/11/17 12:57 PM, Andreas
            Plesch wrote:<br>
          </div>
          <blockquote
cite="mid:CAKdk67sgiy3wj7hnELHZ83_LMJex9Q5=S7shMJ6ABNqrLZ3hbQ@mail.gmail.com"
            type="cite">
            <div dir="ltr">
              <div class="gmail_extra">
                <div class="gmail_quote">
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">From:
                    Leonard Daly <<a moz-do-not-send="true"
                      href="mailto:Leonard.Daly@realism.com">Leonard.Daly@realism.com</a>><br>
                    To: <a moz-do-not-send="true"
                      href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br>
                    <br>
                    A-Frame's VR capability (as all of its rendering
                    capability) is provided<br>
                    by Three.js. I know that Unreal has rather extensive
                    VR (Rift, Vive)<br>
                    headset capability. I believe that Unity does too.
                    Since the focus for<br>
                    this talk was on browser-based VR, I couldn't spend
                    the time addressing<br>
                    VR capabilities of these platforms.<br>
                    <br>
                  </blockquote>
                  <div><br>
                  </div>
                  <div>True, A-Frame only provides the declarative DOM
                    layer, and three does all the rendering.</div>
                  <div><br>
                  </div>
                  <div>Unity can export to webgl but I do not know if or
                    how it supports webvr.</div>
                  <div> </div>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    ><br>
                    > Did you get feedback after your presentation ?
                    Anything you can share<br>
                    > would be interesting.<br>
                    <br>
                    Nothing significant. There was more in discussions
                    with other attendees<br>
                    at the conference who did not see my presentation.
                    I'll be posting that<br>
                    over the next month or so.<br>
                  </blockquote>
                  <div><br>
                  </div>
                  <div>ok. thanks.</div>
                  <div> </div>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    ><br>
                    > The idea of combining of x3dom and A-Frame
                    somehow is interesting. I<br>
                    > think it would boil down to implementing a new
                    x3d browser on top of<br>
                    > A-Frame which may be quite possible. I
                    experimented by reimplementing<br>
                    > IndexedFaceSet and ElevationGrid in A-Frame and
                    think that geometry<br>
                    > and material nodes could be quite
                    straightforward. Not sure about<br>
                    > everything else but probably possible with a
                    lot of work. It also<br>
                    > would mean having a SAI on top of the DOM (as
                    being manipulated by<br>
                    > A-Frame and custom event interfaces). Your
                    presentation made a good<br>
                    > argument that there is a lot of value in having
                    a wide set of<br>
                    > standardized capabilites.<br>
                    <br>
                    Personally, I think putting X3DOM on top of A-Frame
                    is a bit like<br>
                    inverting a pyramid. A-Frame (as defined, not
                    extended) is a rather<br>
                    limited-capability system. I think it would be much
                    easier to put<br>
                    A-Frame on top of X3DOM -- except the part with
                    A-Frame extensions. I<br>
                    think a better choice is to merge the two keeping
                    the most important<br>
                    capabilities of both. I am formulating some ideas on
                    that.<br>
                    <br>
                  </blockquote>
                  <div><br>
                  </div>
                  <div>Well, the idea of A-Frame is to be extensible
                    with the hope that over time enough functionality
                    emerges so it becomes truly easy to use.</div>
                  <div><br>
                  </div>
                  <div>A-Frame takes care of parsing html (using html5
                    custom elements API I believe), helps with defining
                    nodes, and provides rendering and interaction
                    basics. To me it does sound like a good intermediate
                    layer between three and x3d. And it exists. Of
                    course, then all elements have to start with 'a-'.</div>
                  <div><br>
                  </div>
                  <div>-Andreas</div>
                  <div> <br>
                  </div>
                </div>
              </div>
            </div>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <br>
            <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org" moz-do-not-send="true">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" moz-do-not-send="true">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
          </blockquote>
          <br>
          <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <br>
          <pre wrap="">_______________________________________________
x3d-public mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
        </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>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org" moz-do-not-send="true">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" moz-do-not-send="true">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
    </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>