xml3d.js: Architecture of a Polyfill Implementation of XML3D


Kristian Sons, Christian Schlinkmann, Felix Klein, Dmitri RubinsteinPhilipp Slusallek


The paper below is the accepted version. Final version available in IEEE Xplore.

[paper][bibtex][source code]




With the advent of WebGL, most web browsers got native 3D graphics support. WebGL gives low-level access to the graphics hardware suitable for graphics experts. But there is no way to describe interactive 3D graphics on a higher abstraction level, using web technologies such as DOM, CSS and Events. XML3D is a proposal for an extension to HTML5 to fill this gap and to provide web developers an easy way to create interactive 3D web applications.

However, XML3D is not natively supported in browsers. But we can exploit JavaScript and WebGL to emulate it. Emulating natively missing browser functionality using JavaScript, plug-ins, or other APIs is a common pattern in the fast pacing web world with new standards and APIs popping up quickly -- a pattern called Polyfill.

In this paper we present xml3d.js, a Polyfill for XML3D. It runs in all major WebGL-capable browsers and platforms including iOS and Android. We present the modular and extensible architecture of our cross-browser XML3D implementation, discuss implementation aspects and limitations, and evaluate its performance.