O3D
Encyclopedia
O3D is an open source
(BSD license) 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 world
s. 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.
- An open standard for showing hardware accelerated 3D graphics with JavaScript
VRML
and X3D
- Open standard from Web3D Consortium
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
(BSD license) JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
created by Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...
for creating interactive 3D graphics applications that run in a web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
window or in a XUL
XUL
In computer programming, XUL , the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox...
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 world
Virtual world
A virtual world is an online community that takes the form of a computer-based simulated environment through which users can interact with one another and use and create objects. The term has become largely synonymous with interactive 3D virtual environments, where the users take the form of...
s. O3D is currently in Google's incubation lab, and originally built as a web browser plugin
NPAPI
Netscape Plugin Application Programming Interface is a cross-platform plugin architecture used by many web browsers.It was first developed for the Netscape family of browsers starting with Netscape Navigator 2.0 but was subsequently implemented by many other browsers, including all of the browsers...
, the new implementation of O3D is a JavaScript library implemented on top of WebGL
WebGL
WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser...
.
O3D is viewed as bridging the gap between desktop based 3D accelerated graphics applications and HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
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
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
and GPU
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...
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
WebGL
WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser...
.
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
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
and/or COMET
Comet (programming)
Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it. Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by...
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.
See also
WebGLWebGL
WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser...
- An open standard for showing hardware accelerated 3D graphics with JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
VRML
VRML
VRML is a standard file format for representing 3-dimensional interactive vector graphics, designed particularly with the World Wide Web in mind...
and X3D
X3D
X3D is the ISO standard XML-based file format for representing 3D computer graphics, the successor to the Virtual Reality Modeling Language . X3D features extensions to VRML X3D is the ISO standard XML-based file format for representing 3D computer graphics, the successor to the Virtual Reality...
- Open standard from Web3D Consortium
Web3D Consortium
The Web3D Consortium is a not-for-profit, member-funded industry consortium whose purpose is to define and develop the X3D royalty-free open standards file format and runtime architecture to represent and communicate 3D scenes....
External links
- O3D Developers' Site
- GWT-O3D Developers' Site
- O3D Discussion Site
- Google 3D Warehouse (Online 3D Model Repository)
- Google Sketchup (3D Modeler)
- A free 3D content importer/editor/publisher for creating O3D scenes
- A series of O3D tutorials
- Google I/O 2009 - Developing On O3D: View From The Trenches YouTube video