The design of XML3D allows seamless integration of 3D content into HTML pages. The interactive 3D content can be embedded directly into the HTML content. This way, 3D content can be displayed in arbitrary websites without any plug-in being installed.
As it is appropriate for a format that aims to be used in the web, XML3D is based on and takes advantage of several W3C standards and recommendations. This includes amongst others HTML, DOM, DOM Events and CSS. Embedding XML3D into this family of standards brings many benefits: It allows millions of exiting web programmers to directly apply their existing knowledge also to interactive 3D graphics.
The basis of the XML3D data structure is the Document Object Model (DOM). All 3D objects are fully accessible in the DOM, while an optimized 3D engine ensures realtime display and interaction of the 3D content within the HTML page. This enables access to the data in a standardized way using several scripting or high level languages. Using DOM as the basis of XML3D allows good integration with other technologies also based on the DOM, i.e. HTML, CSS etc.
The DOM Events specification defines the propagation and handling of events in the DOM. XML3D reuses existing events such as MouseEvents and TouchEvents. Together with the DOM scripting possibilities, the 2D/3D DOM events form the runtime of the XML3D scene.
XML3D Scenegraph Model
XML3D is designed to respect recent developments in 3D hardware and software. On the other hand, the chosen abstraction level allows creation of 3D content without any knowledge about certain 3D specific technologies.
It is by design that XML3D lacks high-level geometry descriptions and instead uses simple array-based data structures, similar to vertex arrays. These data structures are optimized for current and future graphics hardware and minimizes the need to hold multiple copies of the (often massive amounts of) data. Where really necessary, other high-level descriptions can be layered on top of XML3D. Converters from popular other formats are already becoming available.
Besides a scene graph, XML3D can process data in a data flow model. This allows the configuration of complex operation chains as input for geometry or surface shaders. Implementation can optimize the computation and perform computation on hardware.
XML3D has been used in a variety of industry projects including prototypes for BMW, Daimler, Intel, and RTT. A terminal application based on XML3D is running in the municipal museum of Saarlouis.
Free and Open-Source
We released xml3d.js under the MIT license, a very liberal open-source license. We encourage everyone to participate and contribute to our XML3D efforts. This can be code or documentation, or providing frameworks and converters for XML3D. We welcome contributions from anyone willing to put in the time and effort to help us and our community of users.