Web 3D technology

This article or section is a stub. It does not yet contain enough information to be considered a real article. In other words, it is a short or insufficient piece of information and requires additions.

Draft

## Contents

* 1 Definition
* 2 Overview of web 3D technologies
* 2.1 VRML and X3D
* 2.2 WebGL
* 2.3 HTML5 / JavaScript APIs
* 2.4 Flash
* 2.5 Java 3D
* 2.6 QuickTime VR
* 2.7 3DMLW
* 2.8 Gaming engines
* 3 X3D/VRML vs. proprietary formats
* 4 Links
* 5 Bibliography

## Definition[edit | edit source]

Usually, Web 3D refers to interactive 3D technology that one can use through a web browser. However, users are usually required to install a so-called plugin.

Web 3D also can refer to technology that allows to browser the Web in 3D. See visualization.

See also:

* Tour 3D for an informal introduction plus demos
* 3D interactive environment, Desk-top virtual reality and 3D file formats.

## Overview of web 3D technologies[edit | edit source]

One may distinguish several kinds of technologies and that are not really comparable since the fulfill different needs.

Wikipedia (retrieved 11:00, 2 September 2010 (CEST)) suggests to use four different criteria:

* Simplicity (Automatic Installation, rates facilities already high)
* Compatibility (Windows, Mac, Unix ..)
* Quality (Performances, see Frames per second, and indirectly display quality)
* Interactivity (Depending on the solutions, their programming opportunities, the creators of content have more or less freedom in the creation of interactivity.)

We add to this list:

* Standardization (which is very important in education, since contents should last for decades). Standardization includes interaction with other standards, such as HTML, HTTP (URLs), ECMAScript, MPEG, etc.
* Expressiveness, i.e. what types of contents can be defined and rendered. See also interactivity above, i.e. what can be changed dynamically (anything as in X3D or only some things as in gaming engines)
* Format, i.e. weather the technology is a format or a programming API (or some of both)

### VRML and X3D[edit | edit source]

3D on the Web began in it's very beginning. The major impulse for VRML, the Virtual Reality Modeling Language, can be traced back to a birds of the feature sessions on Virtual Reality Markup Languages at the First International Conference on the World-Wide-Web, May 25-27, 1994 at CERN in Geneva.

It's conceptual origins are older, e.g. (a) Science Fiction literature (e.g. [Gibson, 1994], [Stephenson, 1992]), (b) Mark Pesce's, P. Kennard's and Toni Parisi's Labyrinth system ([Pesce et al., 1994]) and proposal for a 3-D navigation and representation scheme and (c) more generally 3-D computer graphics (including VR). Based upon SGI's Open Inventor format, a almost final draft for VRML 1.0 was presented at the second WWW conference in fall 94 in Chicago. On April 3, 1995 SGI presented WebSpace, the first publicly available VRML browser. So all in all it took about a year to set standards and make the first browser available. In 2007, VRML became an ISO standard.

VRML never caught on very much, because it's flexibility made it difficult to write rendering engines that were fast. In opposition, early gaming engines just could render tunnels (with textures) and weapons and were fast because of this specialization. Of course, in the 1990's most PC's didn't have 3D graphics boards and those who did, were both very slow and very expensive compared to modern boards. In addition, interfaces with web browsers, i.e. the HTML page in which the 3D scene is embedded were unreliable and not standardized. This was also a major flaw, since it is important to be able to combine interactive 2D and 3D contents. Finally, 3D companies ought to be able to plan for the long term since writing flexible rendering engines cans take years. Without the backing of large company, this is not possible.

In 2001, the Web3D Consortium started work on X3D and a first release was published in 2003. X3D is a revision of VRML in modular form. It supports both XML and traditional VRML syntax. Most modules are now ISO standards or almost.

### WebGL[edit | edit source]

The purpose of WebGL is to bring hardware-accelerated 3D graphics to the Web without plug-ins. In other words, web browsers can directly support 3D graphics and lessen the need to install plugins.

Currently, (2018), all major browsers do support WebGL in one way or another.

Web GL is based on the well know OpenGL graphics API.

### HTML5 / JavaScript APIs[edit | edit source]

The HTML canevas element allows for some 3D:

"The The Canvas API is a client-side scripting technology to allow for the rich creation or alteration of raster images (bitmaps) . It uses vector-based programmatic methods to create shapes, gradients, and other graphical effects, and because it has no DOM, it can perform very quickly. Dedicated scripters can develop games or even full-featured applications using the Canvas API, alone or integrated into HTML or SVG. It is supported natively in most modern browsers (with script libraries extending support to all major browsers), and even on some mobile devices." (Graphics (W3C, retrieved Sept. 2 2010).

Other proposals (additions to the HTML5 DOM tree, or JavaScript extensions)

* Google promotes 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, or massive online virtual worlds. O3D is currently in Google's incubation lab, and is deployed as an experimental web browser plugin." (retrieved Sept. 2, 2010). Currently, a converter allows to load Collada files, an X3D-like interchange format sponsored by the entertainment industry. O3D sort of follows the same logic as Flash 3D, i.e. one has to write EcmaScript code.

* The Web|3D consortium launched X3DOM in 2010. X3DOM "an experimental open source framework and runtime to support the ongoing discussion in the Web3D and W3C communities how an integration of HTML5 and declarative 3D content could look like. It tries to fulfill the current HTML5 specification for declarative 3D content and allows including X3D elements as part of any HTML5 DOM tree." (X3DOM Blog , retrieved Sept. 2 2010).

### Flash[edit | edit source]

Flash 10 (released in 2008) does have 3D capabilities, i.e. ActionScript classes and methodes. Prior to official 3D support, many 3rd party developers did release Flash 3D products most of which are programming libraries. These libraries remain more popular than Adobe's classes but they usually rely on Adobe's framework.

There is no official 3D authoring tool from Adobe. CS4 and CS5 only provide support for 3D animation of 2D objects.

Flash is a popular technology for developing light-weight web games.

Adobe also provides older Shockwave format.

### Java 3D[edit | edit source]

According to Wikipedia (retrieved Sept. 2, 2010), "Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs atop either OpenGL or Direct3D. Compared to other solutions, Java 3D is not only a wrapper around these graphics APIs, but an interface that encapsulates the graphics programming using a real, object-oriented concept. Here a scene is constructed using a scene graph that is a representation of the objects that have to be shown. This scene graph is structured as a tree containing several elements that are necessary to display the objects. Additionally, Java 3D offers extensive spatialized sound support."

### QuickTime VR[edit | edit source]

According to Wikipedia (retrieved 11:38, 2 September 2010 (CEST)), "QuickTime VR (virtual reality) (also known as QTVR) is a type of image file format supported by Apple's QuickTime. It allows the creation and viewing of photographically captured panoramas and the exploration of objects through images taken at multiple viewing angles. It functions as a plugin for the standalone QuickTime Player, as well as working as a plugin for the QuickTime Web browser plugin."

### 3DMLW[edit | edit source]

3DMLW is format somewhat similar to X3D. They can be distinguised by two major features:

* 3DMLW supports both 2D and 3D Contents, whereas X3D is meant to be embedded in HTML
* 3DMLW allows .3ds, .obj, .an8, and .blend file formats for 3D models.
* In 3DMLW scripting is with Lua, whereas in X3D it is JavaScript (in addition to interactive built-in elements of the X3D format).

### Gaming engines[edit | edit source]

Since most gaming engines support multi-users over the Internet, it shouldn't be difficult to integrate a client with a web browser.

* Unity has a Webplayer. According to Wikipedia (sept. 2010), "Unity is an integrated authoring tool for creating 3D video games or other interactive content such as architectural visualizations or real-time 3D animations. Unity is similar to Director, Blender game engine, Virtools or Torque Game Builder in the sense that an integrated graphical environment is the primary method of development."

## X3D/VRML vs. proprietary formats[edit | edit source]

Both VRML and X3D never caught on a lot. Nevertheless, both formats are quite popular in education since they are flexible and powerful, declarative and standardized. Most proprietary Web 3D formats did not survive. A typical pattern is that a new 3D company makes a lot of noise for their proprietary format and then encounters some success then falls down to a smaller niche than VRML/X3D or bankruptcy. Examples were Active Worlds and now maybe Second Life.

Another typical pattern are the really big company planning to "own the 3D world". Typical examples are Microsoft Chrome and Adobe Atmosphere. Both were hailed as solutions supported by all the might of these companies, but they are all dead.

Let's see what will happen to Google's O3D, a particular difficult format to use, i.e. it's a JavaScript API and not a format. Such a strategy may be successful if end-user tools become available, like for Flash 3D or gaming engines, but probably it won't :)

For the reason that both VRML/X3D did survive and are quite expressive, both formats also are used as reliable exchange format (in the same way that SVG is used for 2D]]). Examples coded in 1997 still run and examples from 1995 only need minor adjustments. X3D has much better HTML/JavaScript integration. Yet another reason to opt for these standardized formats.

## Links[edit | edit source]

Wikipedia links

* 3DMLW
* WebGL
* O3D
* VRML
* X3D

Technology Home pages

* Please also follow up the links in the text and that point to other EduTechWiki articles
* Google Code o3d

Examples

* See X3D
* BodyBrowser (needs a WebGL compatible browsers like FF4 or Chrome 2010 beta)

## Bibliography[edit | edit source]

* Gibson, W. (1994). Neuromancer. Ace, New York.

* Ortiz, Sixto Jr. (2010). Is 3D Finally Ready for the Web?, Computer, January 2010 (Vol. 43, No. 1) pp. 14-16. (Computer, (Access restricted)).

* Pesce, M. (1995). VRML, Browsing and Building Cyberspace. New Riders, Indianapolis.

* Stephenson, N. (1992). Snow Crash. Bantam.