O3D is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
(
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
)
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
[O3D Project Page](_blank)
from Google Code created by
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
for creating interactive
3D graphics
3D computer graphics, sometimes called CGI, 3D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of perfor ...
applications that run in a
web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
window or in a
XUL desktop application. O3D may be crafted for use in any application area; however, it is geared towards
games
A game is a Structure, structured type of play (activity), play usually undertaken for entertainment or fun, and sometimes used as an Educational game, educational tool. Many games are also considered to be Work (human activity), work (such as p ...
, advertisements,
3D model
In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of a surface of an object (inanimate or living) in three dimensions via specialized software by manipulating edges, vertices, and ...
viewers,
product demos, simulations, engineering applications, control and monitoring systems, and massive online
virtual world
A virtual world (also called a virtual space or spaces) is a Computer simulation, computer-simulated environment which may be populated by many simultaneous users who can create a personal Avatar (computing), avatar and independently explore th ...
s. O3D is currently in Google's incubation lab, and was originally built as a
web browser plugin. Since 2010, O3D is a JavaScript library implemented on top of
WebGL
WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
.
O3D is viewed as bridging the gap between desktop-based 3D accelerated graphics applications and
HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
-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 reusability 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 system
A particle system is a technique in game physics, motion graphics, and computer graphics that uses many minute sprites, 3D models, or other graphic objects to simulate certain kinds of "fuzzy" phenomena, which are otherwise very hard to rep ...
s, and
physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, typically classical dynamics, including rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics. I ...
s. Because the plugin was written in
C, it communicated directly with hardware; thus, the speed of scene rendering was largely dependent on the GPU of the computer rendering it. Now, much of this same functionality is built into
WebGL
WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
.
The main advantage O3D has over alternative desktop or console based 3D rendering engines is that O3D may load, render, and transform
models
A model is an informative representation of an object, person, or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin , .
Models can be divided int ...
and their respective
textures dynamically, using
AJAX
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* Ajax (play), ''Ajax'' (play), by the an ...
and/or
COMET
A comet is an icy, small Solar System body that warms and begins to release gases when passing close to the Sun, a process called outgassing. This produces an extended, gravitationally unbound atmosphere or Coma (cometary), coma surrounding ...
in real time. Traditional compilation of source code, application resources, and object libraries are no longer necessary, since all of these are loaded in real time. These remote resources may be designed, developed, and maintained outside the core rendering or viewing application within a typical
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
MVC application. This makes developing rich 3D application easier because they do not need to be recompiled per resource changes, allowing 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
*
WebGL
WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
- An open standard for showing hardware accelerated 3D graphics with
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
*
VRML and
X3D - Open standard from
Web3D Consortium
*
List of WebGL frameworks
Software framework, Frameworks are available to create WebGL content quickly and easily without building from the ground up.
Note: The following list mixes WebGL Library (computing), libraries with game engines as well as Platform as a service, cl ...
References
External links
O3D Developers' SiteGWT-O3D Developers' Site{{Webarchive, url=https://web.archive.org/web/20120310180553/https://code.google.com/apis/o3d/docs/groups.html , date=2012-03-10
Trimble 3D Warehouse (Online 3D Model Repository)Trimble SketchUp (3D Modeler)A free 3D content importer/editor/publisher for creating O3D scenesGoogle I/O 2009 - Developing On O3D: View From The Trenches YouTube video Sophos Security: Researcher rewarded over $30,000 for finding 3 security flaws in O3D
Application programming interfaces
Free 3D graphics software
Software using the BSD license