SMIL animation and 3D canvas library for Firefox

Ars takes a look at two projects that aim to bring richer graphical …

As the demand grows for more sophisticated web applications, a very clear need has emerged for new, standards-based technologies that can expand the expressiveness and versatility of the medium. One standard that has long been neglected by browser implementors is the Synchronized Multimedia Integration Language (SMIL). Mozilla has recently taken a big step towards bring SMIL to the masses: after five years of development, a preliminary SMIL implementation for Firefox has landed.

SMIL, which was originally created by the W3C in 1998, provides an XML-based language for describing animated media presentations. It can be used in conjunction with SVG to produce rich interactive web content. Although there are several SMIL-compatible players that can be used in the browser through embedded plugins, native browser support for SMIL has traditionally been very limited. Mozilla's inclusion of SMIL support in a future version of Firefox could boost the relevance of the standard.

The effort to implement SMIL for Firefox has largely been championed by Brian Birtles, who originally began working on it five years ago as a university project. A few years ago, he published a detailed paper (PDF) on the topic that provides insight into the implementation strategy and underlying technology. Although the implementation is still not entirely complete today, it covers a reasonably broad spectrum of features in the standard. The current status is documented in a concise chart at his web site.

Firefox goes 3D

Another project that we have been watching closely is the Canvas 3D JavaScript library (C3DL), which aims to facilitate the development of browser-based interactive 3D graphics with JavaScript. It is highly experimental and is still at a relatively early stage in its evolution.

It was first created by Mozilla's Vladimir Vuki?evi?, who hoped to eventually create an official standard for an OpenGL-like JavaScript API. The project has been picked up by an awesome team at Seneca College that is pushing it forward and adding a lot of impressive features.

The latest release, which was announced last week, introduces support for loading Collada models. Collada is an XML-based open standard for 3D graphics interchange that is supported by a wide range of professional 3D graphics tools. The developers are actively working on adding support for lighting and for interactively selecting 3D elements.

The project is fascinating and has an extremely wide range of potential uses. It could eventually facilitate the development of more elaborate browser-based games or sophisticated 3D interfaces for manipulating web content. There are a lot of areas where 3D visualizations could improve the usefulness of existing web applications.

The examples that are available on the project's web site include a Flickr demo that displays images on rotating 3D cubes, and a simple maze that can be navigated with the keyboard.

Although C3DL has an enormous amount of potential, I have found that the current implementation is a bit fragile. It is currently distributed as a browser plugin that can be installed in Firefox 3, but I was not able to get it to work on my main Linux desktop computer. It seems to be very particular about the environment that it operates in.

The ongoing efforts to implement SMIL and C3DL are very exciting for web developers and standards enthusiasts. These technologies could eventually open the door for much richer web content and more innovative web-based applications.