3D Website Technology

 
Martin Belcher 17th June 2010

IntroAndroid data storage icon

This is a light look at the possibility of a delivery method for search engine indexed 3D websites which is native to the browser. This is not an exhaustive investigation but covers the main areas which are most common at time of writing.


Background

With HTML5 gradually being supported by browsers, 3D increasing in popularity films in cinemas and the start of sale of 3D ready televisions we decided to look into the current capability for the web to go 3D.

Combining 3D with touch screen / movement tracking technology it is easy to imagine interfaces like those in the film Minority Report

Something along those lines is already possible now by using a 3D display combined with something like Microsoft’s Project Natal



Aim

Although this would already be possible with purpose written application and hardware what would be more exciting is a standards compliant method of delivery across multiple platforms via the internet.

What we would like to be able to find is a method for delivery which satisfies these conditions:

  • search engine indexed
  • 3D websites
  • native to the browser

Current uses for 3D web browsers

  • games
  • advertisements
  • 3D model viewers
  • product demos
  • simulations
  • engineering applications
  • control and monitoring systems
  • massive online virtual worlds

Methods for delivery of 3D experience via web

There are four main methods to provide 3D via internet

  1. Custom download app / plug-in

    This is nothing new and is not worth looking at under the scope of this investigation. It is not a 3D internet just a 3D program downloaded via the internet.

    This fails our desired conditions.

  2. Flash

    Flash is not native to browsers (plug-in) although it is extremely common to find that it is installed so this is hardly a consideration. It is so ubiquitous that for practicality we could almost consider this to be built in to all browsers.

    Flash has a history of being buggy and memory intensive but more importantly it is a platform delivered by a single company and not a standard managed by the W3C. The advantage of a standard is that it will be supported in multiple browsers allowing users to switch to the browser that best supports it and hence drive innovation via competition. Another drawback to proprietary software is that there is no guarantee that new versions of will be backwards compatible.

    Supported in all browsers and OS (except mobile)

    There is a mature history of 3D development for Flash and hence a large resource of information and experience developers.

    Flash is not indexed by search engines (yet) so would not be useful as a replacement for most websites.So this fails our desired conditions.

  3. SVG

    SVG is 2D but 3D effects can we achieved via clever programming. Objects drawn via SVG remain in existence after the image is drawn (like a DOM) which means they can be clicked although this has a cost in memory.

    Not indexed by search engines (yet), in theory should be but in practice it is not at present.

    Cannot be linked into.

    Supported in all browsers except IE before 9.

    This fails our desired conditions.

  4. Canvas

    Like SVG Canvas is 2D but 3D effects can we achieved via clever programming or using APIs on to draw 3D effects on the 2D canvas.

    Canvas does not hold any object structure in memory so is faster than SVG although you lose clickable functionality.

    Canvas is a available as of HTML5, and is defined by the W3C although it is owned by Apple.

    Supported by all browsers except IE, so is not worth using exclusively yet.

    Canvas is just a 2D image drawn on the screen so is not indexed and cannot be linked into.

    Canvas is proving much more popular than SVG.

    This fails our desired conditions.


A little more on Canvas and 3D

Although Canvas is 2D, fast 3D can be delivered through is by using WebGL:

WebGL

WebGL is an open standard for showing hardware accelerated 3D graphics (ie very fast!) programmed using JavaScript.

It is a standard for 3D API that can draw in the HTML5 Canvas tag.

WebGL is a work in progress but is/will be supported natively in Mozilla Firefox, Google Chrome, Safari, and Opera.

Some libraries exist for programming WebGL

  • X3D is a W3C standard for XML programming WebGL
  • O3D is a 3D API. Made by Google it already currently exists as a plug-in written in C but they are working on moving to a JavaScript 3D API library on WebGL.

Summary

At present it does not make sense to switch from normal HTML web to a 3D web experience since it would make SEO impossible.

3D elements of web experiences are limited in usefulness to specialised functions and will not broadly replace the current web format until ubiquitous browser and search engine support exists for a popular 3D format.

SVG with some small changes looks like a good candidate for replacing current HTML. Just needs to be able to be linked into and indexed properly.

Canvas with WebGL APIs would be better for intensive 3D such as in games and applications that do not required SEO, bookmarks or links.


Conculsion

For the time being, 3D, however it is delivered, is better used as an enhancement to a HTML web page so that users whose browsers do not support your chosen technology can still browse your site and search engines can still index it. These technologies are moving quickly hopefully we will not have to wait too long before we see a more immersive 3D web.

 

Add Comment

 
Name:
Email:
This email address will not be shown on the website and will not be distributed to any other parties. By submitting this email address you agree to receive an email from Eigo in the future, that email will include an option to unsubscribe from future emails.
Comment:
(HTML allowed)
Website: (Optional)
A link to show beneath your comment.
Security Check: