XML3D
The goal of XML3D is to add industrial-strength, high-quality, interactive 3D graphics as a built-in, native data type to the Web — just like text, images, and streaming video (as of HTML 5).
The design of XML3D is based on a few basic principles that differentiate XML3D from other approaches:
- Minimal additions to HTML 5: XML3D tries to add as little as possible to HTML, reusing existing features also for 3D graphics wherever possible (e.g. DOM scripting, AJAX, ...).
- Basic building blocks: XML3D is based on a small set of of general and extensible building blocks that can easily be combined to create more complex structures as necessary by specific applications. This avoids having to provide complex application specific features in the browser.
- Integrated 2D and 3D: All XML3D objects are part of the DOM and fully accessible by any existing Web technology. For example, a texture can be supplied as a normal <img> tag or even by a nested <html> tag allowing arbitrary dynamic HTML content to be rendered on to any 3D surface.
- Hardware friendly: While XML3D allows to comfortably describe 3D scenes using high-level abstractions, its underlying data structures have been optimized for efficient use of current and future hardware, making use of vertex buffers and similar structures.
- Fully programmable: XML3D has been designed with full programmability of graphics hardware in mind. Programmable shaders can be used to describe almost all aspects of a 3D scene: materials, light sources,etc.
- New portable shader technology: A key part of a ubiquituous standard for the 3D-Web is the ability to accurately and portably describe the look of objects. In the past, the portability of shaders has been severely limited both between applications themselves and rendering technologies. This is not acceptable for the 3D-Web: For XML3D we build on a recently developed technology that can represent programmable shaders in a portable way and can optimally map them to the native rendering technology used by the target application.
- Renderer independence: In contrast to other approaches, the scene description of XML3D has been carefully designed to be independent of the concrete way the scene will be rendered eventually. Thus it equally supports today's rasterization hardware (GPUs) as well as emerging realtime ray tracing renderers from the same scene description.




