XML3D and Xflow: Combining Declarative 3D for the Web with Generic Data Flows


Felix Klein, Kristian Sons, Dmitri RubinsteinPhilipp Slusallek

Computer Graphics and Applications, IEEE, 33(5):38-47 2013

Paper available in IEEE Xplore.





The Web was originally designed as an information medium, with the simple task to display formatted text and media, such as images. With the rise of modern Web technologies the Web further evolved into a ubiquitous application platform. Today’s Web technologies allow for the implementation of advanced 3D applications, running in realtime without any plug-in.

However, this quick development of the Web came at a price. Several new technologies such as WebGL were designed with a focus on bare functionality, neglecting interoperability with other, traditional Web technologies such as HTML and CSS. As a result, there is a wide gap between traditional, declarative Web design based on HTML/CSS and 3DWeb application development. The later is based on imperative low-level APIs such as WebGL [4] or specialized JavaScript libraries such as three.js [7] that are mostly isolated from other Web technologies. Consequently, creating even a basic 3D Web application requires Web developers to learn a stack of new languages or APIs entirely different from what they are familiar with.

The Declarative 3D on the Web initiative at the W3C tries to make 3D Web development more accessible to Web developers by adding a high-level, declarative 3D content to HTML5, making it a part of the structured Web. However, a big challenge for Declarative 3D on the Web is to provide a technology that is intuitive and easy to use but at the same time flexible and efficient enough to match modern 3D graphics and all the high performance processing tasks that come with it.

In this article we present an implementation of Declarative 3D on the Web based on two technologies: XML3D and Xflow. XML3D, an extension to HTML5 for 3D graphics, adds only a minimal set of elements to describe 3D content as part of the document with the goal to be as well integrated with other Web technologies as possible. Xflow, a declarative language for dataflow processing, connects to the scene graph of XML3D to add a generic option to handle expensive 3D graphics-related computations, such as animations, geometry- and image processing.