<?xml version="1.0" encoding="utf8" ?>
<rss version="2.0" 
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" 
   xmlns:html="http://www.w3.org/1999/html" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
   <title>No Warranty Expressed Or Implied</title>
   <link>http://johnp.net/blog</link>
   <description>Lisp, synthesisers, Web 3D &amp; stuff.</description>
   <language>en</language>
   <copyright>Copyright &#00a9; 2011 John Pallister</copyright>
   <ttl>60</ttl>
   <pubDate>Sat, 31 May 2008 12:14 GMT</pubDate>
   <managingEditor>me@johnp.net</managingEditor>
   <generator>PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008</generator>
<item>
   <title>More Ajax3D options</title>
   <guid isPermaLink="false">ajax3d/more-ajax3d-options</guid>
   <link>http://johnp.net/blog/ajax3d/more-ajax3d-options.html</link>
   <description><![CDATA[

<a href="http://www.flickr.com/photos/51035753587@N01/2532852844/"
title="Demolition by synchromesh, on Flickr"><img
src="http://farm3.static.flickr.com/2172/2532852844_32f1ac1e3c_m.jpg"
width="240" height="180" alt="Demolition" align="right" /></a>

<p>OK, there are more options than the ones I listed in my <a
href="http://johnp.net/blog/2008/05/27#ajax3d-options">last
post</a>. Some others include:</p>

<h3><a href="http://www.instantreality.org/home/">Instant
Reality</a></h3>

<p>Developed by the Fraunhofer Institute in Germany, this is a
"high-performance Mixed Reality (MR) system, which combines various
components to provide a single and consistent interface for AR/VR
developers." Runs on Windows with beta versions available for Linux and
OS X. Full X3D with extensions for clustering, devices, stereo and more.
No browser plugins (although they're on the roadmap). Not exactly sure
what the licensing is like, but they seem to be free to use for
non-commercial stuff at least. Static logos on scenes. No source
available AFAICT.</p>

<h3><a
href="http://java.sun.com/javase/technologies/desktop/java3d/">Java
3D</a></h3>

<p>This is probably a better solution than I give it credit for, but for
various reasons it turns me off.</p>

<h3><a href="http://blog.papervision3d.org/">Papervision3D</a> or <a
href="http://away3d.com/">Away3D</a></h3>

<p>Papervision3D (or PV3D as it is known) is a 3D engine written in
Flash. Away3D is a fork of PV3D.</p>

<p>From a purely technical point of view I'd much rather use an X3D
plug-in that calls the underlying hardware-accelerated 3D directly.
Obviously the performance would be far superior; also the language
itself is much better suited to the task. But the reality is that I
can't really do that with a free, cross-platform player that doesn't
have someone else's logo in the corner. And requiring people to download
a plug-in is still (seen as) a significant disincentive to new users. I
think that installing a Firefox add-in might be less of a barrier, but
there aren't any for VRML or X3D (yet).</p>

<p>However, in other ways it's not really that bad. Flash 10 is on its
way and apparently it will include some 3D support for projects like
PV3D. (See <a
href="http://www.dreaminginflash.com/2008/05/21/interview-with-rob-bateman-away3d/">this
interview</a> with <a href="http://www.infiniteturtles.co.uk/blog/">Rob
Bateman</a> of Away 3D and <a
href="http://dailypv3d.wordpress.com/2008/05/22/interview-with-ralph-hauwert/#more-164">this
interview</a> with <a
href="http://dailypv3d.wordpress.com/2008/05/22/interview-with-ralph-hauwert/#more-164">Ralph
Hauwert</a> of PV3D.)</p>

<p>Also, the sort of stuff I want to start with doesn't require anything
terribly amazing in terms of sheer 3D horsepower. Hopefully by the time
I have something that people actually find useful, PV3D and Flash will
have evolved together into more of a fully-fledged Web 3D (if not X3D)
solution.</p>

<p>In the meantime, I guess PV3D is a case of <a
href="http://en.wikipedia.org/wiki/Worse_is_better">"worse is
better"</a>, at least compared to X3D and <a
href="http://www.opencroquet.org/index.php/Main_Page">Croquet</a>.</p>

<p>See also the <a href="http://dev.papervision3d.org/">Papervision3D
developers blog</a>, <A href="http://pv3d.org/">some tutorials and other
resources</a> and the <a
href="http://code.google.com/p/papervision3d/">code</a>.</p>

<h3><a href="http://www.opencroquet.org/index.php/Main_Page">Croquet</a></h3>

<p>Technically the best solution. Fully open-source and cross-platform.
IMHO destined never to catch on widely (compared to Flash). Which just
goes to show that <a href="http://en.wikipedia.org/wiki/Ringworld">there
ain't no justice</a> in this game.</p>

<h3>Links</h3>

<p>A few links to vaguely relevant 3D stuff on the web (some courtesy of
<a href="http://utunga.blogspot.com/">Miles</a>):</p>

<dl>
<dt><a href="http://www.chronotext.org/">chronotext.org</a></dt>
<dd>"chronotext is a growing collection of software experiments
exploring the relation between text, space and time" by Ariel Malka, "a
designer and programmer based in Tel-Aviv." Uses <a
href="http://www.java3d.org/">Java 3D</a> and Java Web Start.</dd>
<dt><a href="http://www.ogoglio.com/">Ogoglio</a></dt>
<dd>An attempt to build a city in the metaverse. By <a
href="http://trevor.smith.name/">Trevor Smith</a>. Uses Java 3D, Apache
&amp; Tomcat <i>etc.</i> but not X3D. Runs in the browser, uses OSS
protocols, formats and libraries.</dd>
<dt><a href="http://pv3world.com/blog/">PV3World blog</a></dt>
<dd>A sort of community site for Papervision3D.</dd>
</dl>

]]></description>
   <category domain="http://johnp.net/blog"></category>
   <pubDate>Sat, 31 May 2008 12:14 GMT</pubDate>
</item>
<item>
   <title>Cross-platform X3D player options</title>
   <guid isPermaLink="false">ajax3d/ajax3d-options</guid>
   <link>http://johnp.net/blog/ajax3d/ajax3d-options.html</link>
   <description><![CDATA[

<a href="http://www.flickr.com/photos/tipiwhenua/2516384835/"><img
src="http://johnp.net/images/photos/bevan-piscine.jpg" width="180"
height="240" border="1" alt="Bevan at the Monaco GP" align="right"/></a>

<p>I would like to develop interactive process visualisation tools that
use 3D and virtual reality techniques to provide better, more powerful
user interfaces. These tools should be delivered to the user's web
browser and should follow modern Web principles such as <a
href="http://en.wikipedia.org/wiki/Web_2.0">Web 2.0</a> and <a
href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a>
where appropriate.</p>

<p>I suspect that eventually 3D capabilities (<i>i.e.</i> the ability to
use the underlying hardware acceleration via OpenGL or Direct3D) will
appear in Adobe Flash and modern browsers (there is already a <a
href="https://addons.mozilla.org/en-US/firefox/addon/7171">Canvas 3D for
Firefox 3</a> and <a
href="http://my.opera.com/timjoh/blog/2007/11/13/taking-the-canvas-to-another-dimension">something
similar for Opera</a>). But in the meantime browser support for the <a
href="http://en.wikipedia.org/wiki/X3d">X3D</a> standard is
non-existent, and some sort of plug-in is required to view and interact
with 3D content.</p>

<p><a href="http://www.adobe.com/products/flex/">Adobe Flex</a> provides
the browser with good communication links to server-side code
(<i>e.g.</i> true bidirectional sockets) as well as a nice 2D user
interface platform. The combination of Flex (or other <a
href="http://en.wikipedia.org/wiki/Ajax_(programming)">Ajax</a>
techniques) with an X3D plug-in on a web page has been termed <a
href="http://www.ajax3d.org">Ajax3D</a>.</p>

<a
href="http://www.facebook.com/photo.php?pid=538438&id=515494544&l=ebfab"><img
src="http://johnp.net/images/photos/alex-kovatchavitsa.jpg" width="86"
height="130" border="1" alt="Alex in Bulgaria" align="right"/></a>

<p>According to the <a
href="http://cic.nist.gov/vrml/vbdetect.html">NIST VRML Plugin and
Browser Detector</a> page, there are currently no free X3D browser
plug-ins that work on Windows, Linux and OS X that don't display some
sort of "nag" logo or are otherwise impaired (and/or in beta).</p>

<p>I guess my options for cross-platform browser-based Ajax3D can be
summarised as:</p>

<h3>Windows-only</h3>

<p>Since I mainly use Windows (since my clients all use Windows) I could
ignore other platforms until I have something of interest to the world
at large. Then I could use whichever plug-in I wanted (probably the <a
href="http://www.vivaty.com/downloads/player/">Player formerly known as
Flux</a>). The problem then is that your content won't work on any other
player/platform without (I would expect) some serious re-engineering.
Perhaps this could be anticipated in the initial design.</p>

<a
href="http://picasaweb.google.co.uk/hillary.cryan/MonacoGrandPrix2008/photo#5204615498258277362"><img
src="http://johnp.net/images/photos/hillary-grinaldi.jpg" width="108"
height="144" border="1" alt="Hillary in Monaco" align="right"/></a>

<h3>Best player per platform</h3>

<p>I could pick one plug-in (and one browser, <i>i.e.</i> <a
href="http://www.mozilla.com/en-US/firefox/all-rc.html">Firefox 3</a> at
this point) per platform and make sure that my code works on those three
OS/browser/plug-in combinations. Then at least I'll know my code is
reasonably cross-platform, and other people will be able to try out my
code much sooner. This is important, as I'll need feedback for both
motivation and "navigation"; I need to find out what's actually useful
to people, so I head in the direction of something actually
marketable.</p>

<h3>FOSS all the way</h3>

<p>The third option is to use the <a
href="http://www.openvrml.org/">OpenVRML</a> library and its plug-in
wrappers on Windows, Linux and OS X. This might limit my initial
audience (possibly not a bad thing) but would give me the greatest
flexibility (for the features it actually supports) if I'm prepared to
work for it (yay, another big C++ project to work on. At least it uses
<a href="http://www.boost.org">Boost</a>).</p>

<p>Something to think about, anyway.</p>


]]></description>
   <category domain="http://johnp.net/blog"></category>
   <pubDate>Tue, 27 May 2008 07:29 GMT</pubDate>
</item>
</channel>
</rss>

