O3D


O3D is an open-source JavaScript API created by Google for creating interactive 3D graphics applications that run in a web browser window or in a XUL desktop application. O3D may be crafted for use in any application area, however it is geared towards games, advertisements, 3D model viewers, product demos, simulations, engineering applications, control and monitoring systems, or massive online virtual worlds. O3D is currently in Google's incubation lab, and originally built as a web browser plugin, the new implementation of O3D is a JavaScript library implemented on top of WebGL.
O3D is viewed as bridging the gap between desktop based 3D accelerated graphics applications and HTML based web browsers. Proponents assert that creating a full featured 3D graphics engine that can be downloaded and run through web browsers may eliminate the need to install large applications on a local desktop computer. This allows O3D to maximize re-usability amongst application resources, while providing a robust interface to the client's CPU and GPU using JavaScript.
Originally, O3D used a plug-in based architecture which allowed 3rd party developers to integrate custom functionality such as pre and post render effects, particle systems, and or physics engines for example. It is important to note that the plugin was written in C which communicated directly with the hardware, thus the speed of scene rendering was largely dependent on the graphics card of the computer rendering it. Now, much of this same functionality is built into WebGL.
The main advantage O3D has over alternative desktop or console based 3D rendering engines is that O3D may load, render, and transform models and their respective textures dynamically, using AJAX and/or COMET in real-time. Traditional compilation of source code, application resources, and object libraries is no longer necessary, since all of these aspects are loaded in real-time. These remote resources may be designed, developed, and maintained outside the core rendering or view application within a typical object oriented MVC application. The direct result of this, explicitly makes development of rich 3D application easier, as you do not need to recompile your O3D application per resource changes. This allows for a more robust and distributive approach when designing 3D applications.
On May 7, 2010, Google announced that O3D would be changing from a plugin to a JavaScript library running on top of WebGL.