X3DOM (pronounced X-Freedom) is an open-source framework and runtime for 3D graphics on the Web. It can be freely used for non-commercial and commercial purposes, and is dual-licensed under MIT and GPL license.
X3DOM tries to support the ongoing discussion in the Web3D and W3C communities how an integration of HTML5 and declarative 3D content could look like, and it aims to fulfill the current HTML5 specification for declarative 3D content and allows including X3D elements as part of any HTML5 DOM tree.
The goal here is to have a live X3D scene in your HTML DOM, which allows you to manipulate the 3D content by only adding, removing, or changing DOM elements. No specific plugin or plugin interface (like the X3D-specific SAI) is needed. It also supports most of the HTML events (like “onclick”) on 3D objects. The whole integration model is still evolving and open for discussion.
We hope to trigger a process similar to how the SVG in HTML5 integration evolved:
- Provide a vision and runtime today to experiment with and develop an integration model for declarative 3D in HTML5
- Get the discussion in the HTML5 and X3D communites going and evolve the system and integration model
- Finally it would be part of the HTML5 standard and supported by every major browser natively
More architectural and background information can be found in the X3DOM papers (published at the annual Web3D conferences from 2009 to 2012):
- X3DOM: a DOM-based HTML5/X3D integration model
- A scalable architecture for the HTML5/X3D integration model X3DOM
- Dynamic and Interactive Aspects of X3DOM
- Using Images and Explicit Binary Container for Efﬁcient and Incremental Delivery of Declarative 3D Scenes on the Web
There are also two articles about the project in the German iX magazine, one in the November issue 2010 and one in the December issue 2010.
Alternatively you, as Web developer, can also just utilize the system today to build Web pages and applications, which include declarative (X)3D content that will be rendered hardware accelerated (thanks to WebGL) without the need for using any plugin.