O3D

Last updated
O3D
O3D Beach Demo.png
A screenshot from the Beach Demo [1] used by Google to demonstrate O3D's capabilities
Repository
Written in JavaScript
Operating system Cross-platform
Type JavaScript API
License BSD license
Website https://code.google.com/p/o3d/

O3D is an open-source (BSD license) JavaScript API [2] 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, and massive online virtual worlds. O3D is currently in Google's incubation lab, and was originally built as a web browser plugin. [3] [4] Since 2010, O3D is a JavaScript library implemented on top of WebGL. [2]

Contents

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 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 systems, and physics engines. 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.

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 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 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. [5]

See also

Related Research Articles

Adobe Flash is a multimedia software platform used for production of animations, rich web applications, desktop applications, mobile apps, mobile games, and embedded web browser video players. Flash displays text, vector graphics, and raster graphics to provide animations, video games, and applications. It allowed streaming of audio and video, and can capture mouse, keyboard, microphone, and camera input.

OpenGL Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation, vision acceleration and machine learning. The open standards and associated conformance tests enable software applications and middleware to effectively harness authoring and accelerated playback of dynamic media across a wide variety of platforms and devices. The group is based in Beaverton, Oregon.

Mozilla Firefox has features that allow it to be distinguished from other web browsers, such as Chrome and Internet Explorer.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

Adobe AIR Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS and BlackBerry Tablet OS.

JavaFX Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android.

ShiVa3D is a 3D game engine with a graphical editor designed to create applications and video games for desktop PCs, the web, game consoles and mobile devices. Games made with ShiVa can be exported to over 20 target platforms, with new export targets being added regularly.

Google Native Client (NaCl) is a sandboxing technology for running either a subset of Intel x86, ARM, or MIPS native code, or a portable executable, in a sandbox. It allows safely running native code from a web browser, independent of the user operating system, allowing web apps to run at near-native speeds, which aligns with Google's plans for Chrome OS. It may also be used for securing browser plugins, and parts of other applications or full applications such as ZeroVM.

WebGL JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics and image processing and effects as part of the web page canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

GLGE is a programming library for use with WebGL and JavaScript.

Away3D

Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor, a 3D graphics engine, a 3D physics engine and a compressed 3D model file format (AWD).

Oak3D

Oak3D is a free JavaScript library for 3D graphics development based on the HTML5 WebGL standard, dedicated in realizing the Web3D applications with GPU acceleration for all the front-end developers in an easy and efficient way.

Three.js

Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.

Google Chrome Experiments Online showroom of web browser based experiments

Google Chrome Experiments is an online showroom of web browser based experiments, interactive programs, and artistic projects. Launched on March 1, 2009, Google Chrome Experiments is an official Google website that was originally meant to test the limits of JavaScript and the Google Chrome browser's performance and abilities. As the project progressed, it took the role of showcasing and experimenting latest open-source web-based technologies, such as JavaScript, HTML5, WebGL, Canvas, SVG, CSS, and some others. All the projects on Chrome experiments are user submitted and are made using open source technologies. As of February 24, 2015, there were 1,000 different Chrome projects posted on the website.

JWt is an open-source widget-centric web application framework for the Java programming language developed by Emweb. It has an API that uses established GUI application development patterns. The programming model is component-based and event-driven, similar to Swing.

PlayCanvas

PlayCanvas is an open-source 3D game engine/interactive 3D application engine alongside a proprietary cloud-hosted creation platform that allows for simultaneous editing from multiple computers via a browser-based interface. It runs in modern browsers that support WebGL, including Mozilla Firefox and Google Chrome. The engine is capable of rigid-body physics simulation, handling three-dimensional audio and 3D animations.

In computing, Stage3D is an Adobe Flash Player API for rendering interactive 3D graphics with GPU-acceleration, within Flash games and applications. Flash Player or AIR applications written in ActionScript 3 may use Stage3D to render 3D graphics, and such applications run natively on Windows, Mac OS X, Linux, Apple iOS and Google Android. Stage3D is similar in purpose and design to WebGL.

OpenFL

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

References

  1. O3D Beach Demo on YouTube
  2. 1 2 O3D Project Page from Google Code
  3. O3D preview from Ars Technica
  4. O3D Old Plugin Developer's Page from Google Code
  5. "The future of O3D".