Error message

  • Deprecated function: Array and string offset access syntax with curly braces is deprecated in include_once() (line 20 of /home/drbiz/public/
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home/drbiz/public/

The Future of X3D

X3D is the ISO standard for the display of 3D graphics on the Web (ISO/IEC 19775). Until the last year, it was necessary to have use a plug-in or specialized application to display and interact with 3D objects. In late 2014, the browser builders released versions of their browsers that provided a JavaScript interface to the underyling graphics system of your computer. This interface is called WebGL and is part of most HTML5 implementations. There are several different libraries that provide a simplier interface to the graphics. X3DOM and CobWeb are the two that support the X3D format and execution model. The most popular library (three.js) provides a programmatic interface and requires the user to define everything by function calls.

To move X3D into the HTML environment, I am proposing a major evolution to X3D that allows it to interact with all HTML DOM objects. This evolution of X3D in the DOM environment retains all of the functionality and adds new support for other geometry types (notably Shape Resource Container (SRC)) and other media types supported by the browser. It is designed to look and feel like declarative HTML tags that are seamlessly processed to create the animated, interactive 3D display within the HTML page. All normal DOM operations work on the nodes within the capabilities of X3D and the X3D support library in use. The X3D nodes work with jQuery and other DOM manipulating libraries. In general it is 3D the HTML WaySM. The proposed X3D V4 concept specification is online at The Author's Notes section describes the underlying differences and concepts between X3D V3 and this proposal.

This new version has been proposed to the Working Group that manages the specification and is under consideration. In order for it to function in a DOM environment, a few changes from the current version of X3D had to be made. These include removal of X3D nodes in conflict with HTML tags (e.g., Script), changes to event handling to correspond to that in the DOM, and a few other relatively minor changes.