Google has released an experimental browser plugin that will make it possible to display rich 3D graphics in Web content. Google hopes that the plugin will stimulate discussion within the Web development community and contribute to a nascent effort headed by the Khronos group to bring 3D graphics to the Web.

The plugin provides an implementation of O3D, a new API conceived by Google that facilitates the development of interactive 3D Web applications. It can be used to programmatically create and manipulate 3D graphics with the JavaScript programming language. It's far more sophisticated and ambitious than some of Google's previous experiments with 3D Web content, such as the ill-fated Lively service. The source code of the plugin is distributed under the open source BSD license, which broadly permits third-party developers to study, modify, and redistribute the plugin software.

The Khronos group, the organization behind the OpenGL standard, announced plans last month to bring 3D graphics to the Web in collaboration with Mozilla. Khronos and Mozilla have encouraged other browser vendors and Web standards stakeholders to participate in the effort and contribute to the process. Mozilla has already released its own experimental 3D plugin, which closely mirrors the standard OpenGL APIs.

Google's O3D API takes a different approach and is not directly compatible with Mozilla's plugin. The significant differences between the two APIs articulate alternate perspectives and illuminate different paths to solving the same problem.

Although this fragmentation might seem troubling, it's important to remember that the process of standardizing 3D Web APIs is still at an extremely early stage. The availability of two different APIs with their own respective open source implementations will help to shed light on the relative strengths and weaknesses of the different approaches.

I spoke with Google product manager Henry Bridge and engineering director Matt Papakipos about Google's interest in 3D graphics and the purpose of the plugin. They contend that enabling interactive 3D Web applications will help to advance Google's chief goal, which is to make information more useful and accessible. Specifically, they would like to bring applications like Google Earth and SketchUp into the browser and lay a strong foundation for facilitating future innovation. The technology could be put to use in a wide variety of contexts, they say, ranging from 3D games to powerful data visualizations.

The initial implementation is being delivered as a plugin so that it can be put to use right away in all mainstream browsers. The plugin is fully cross-platform compatible and all of the platforms are supported in a single code base. When the technology matures and the standardization process is complete, the technology will arrive in browsers and will be supported natively alongside other Web content.

Google believes that the standardization process will take several years, during which the APIs will change considerably and evolve based on feedback from the Web development community. The work done in this space by Google and Mozilla will likely converge along the way. Google says that their work complements Mozilla's and that the projects should not be viewed as competitors. On a technical level, the most noteworthy difference is that Mozilla's plugin is designed around immediate mode rendering whereas Google's is designed to provide retained mode.

The O3D plugin leverages hardware accelerated rendering, which means that it is powered by the GPU and can deliver strong rendering performance. The API supports loading 3D models, much like Mozilla's high-level C3DL library. Google has published several open source demos which show how the API can be used to build interactive 3D Web applications with JavaScript. One of the demos even features a JavaScript physics engine.

The plugin is primarily being made available for software developers and is generally not intended for production use. Because the APIs are subject to considerable change, it is still far too early for the technology to be adopted outside the scope of testing and experimentation. At this stage, Google is very eager to receive constructive feedback from developers and see what people will do with the APIs.

Third-party experimentation will provide insight into which aspects of the technology work and which need improvement. In that sense, the O3D plugin is being released in much the same spirit as Google's Native Client plugin, which we looked at last year.

Google's participation in the effort to build 3D Web standards is a promising sign that the concept is gaining traction. As HTML 5 imbues browsers with native support for video and raster graphics, it is becoming increasingly clear that standards-based rich media will play a major role in the future of the Web. Delivering accelerated 3D graphics seems like the next logical step for empowering the open Web.

Further reading