Friday, March 27, 2009

Mozilla and Khronos to bring standards-based 3D to the web

Emerging standards are bringing a growing number of rich media technologies to the web, ranging from programmable raster graphics to video playback. The next area that will be tackled by Internet innovators is support for interactive 3D graphics, a capability that would enable a whole new class of browser-based games and expressive data visualizations.

The Khronos Group, the organization behind OpenGL, has teamed up with Mozilla to define a new royalty-free web standard for bringing 3D graphics to the web. They are inviting other companies to participate in the effort and aim to have a functional specification ready for publication within a year.

Recent advancements in JavaScript performance have opened the door for building web applications that can leverage client-side processing to perform computationally intensive tasks that were not previously possible in web browsers. These capabilities are already being used experimentally in very impressive ways with video and 2D graphics. Bringing standards-based 3D to the web is the next logical step in the evolution of programmable Internet graphics.

Mozilla, which will serve as the chair of the working group, has proposed basing the new standard on the OpenGL ES 2.0 APIs. The plan is to make these APIs accessible directly through JavaScript so that they can be used in web applications. In a blog entry published on Tuesday, Mozilla evangelist Chris Blizzard wrote that the feature is tentatively planned for the next version of Firefox after the upcoming Firefox 3.5 release.

"Accelerated 3D graphics with the super-fast next-generation JavaScript engines from nearly every web browser vendor means that we're going to be able to start to see more and more advanced applications written using open web technologies. 3D is a huge part of that story and we're happy to bring our proposal to the table," he wrote. "It's our intention to include this as base functionality in the release after Firefox 3.5, assuming all goes well on the standards front."

Mozilla's Vladimir Vukićević released an experimental Firefox plugin last year that brought support for a subset of OpenGL to the browser. His Canvas 3D plugin provides some insight into the approach that developers could eventually take to integrate standards-based 3D into browsers.

Although the proposed OpenGL APIs provide a strong foundation for 3D development, their intrinsically low-level design will pose challenges for developers who want to do practical development. Vukićević and others believe that third-party developers will create libraries and other abstraction layers on top of the standard APIs to provide higher-level interfaces for developers. An entry at the Mozilla standards blog points out that such libraries could serve the same function for 3D that toolkits like jQuery and Prototype provide today for conventional JavaScript development.

Indeed, there is already a very promising effort to build an open source JavaScript library that sits on top of the Canvas 3D plugin. The project, which is called C3DL, is being developed by a team at Seneca College in collaboration with Mozilla. We looked at C3DL back in January. It supports loading 3D models in various formats and has a wide range of functionality needed to jumpstart the development of comprehensive 3D engines in JavaScript on top of the OpenGL APIs.

Adapting OpenGL seems like the right approach, because OpenGL is a strong existing standard that already has a lot of traction in the computer gaming ecosystem and other industries that heavily depend on 3D graphics. Using it as the basis for creating a vendor-neutral 3D standard will ensure that content creators will have choice in their authoring tools and that the technology will be broadly inclusive. Integrating it into JavaScript and designing it to function in much the same manner as the existing Canvas element will make it conform well with conventional web technologies.

The web is growing up and displacing the desktop as the primary vehicle for delivering applications. The addition of support for standards-based 3D graphics is another significant milestone in the movement to make the web a more modern medium for conveying interactive content.

For more information visit: