<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>