Xflow - Declarative Data Processing for the Web

[pdf] [bib] [slides]

The Web evolved from a simple information medium to an interactive application platform featuring advanced 2D layouts, videos, and audio. At the same time, support for hardware-accelerated 3D graphics improves continuously even among mobile devices. Hence, there is a renewed interest in adding interactive 3D graphics to the overall Web experience and therefore a need for highperformance data processing beyond DOM modifications through JavaScript. A challenge in adding this functionality to Web technologies is to close the deep gap between low-level hardware programming (e.g. using WebGL or WebCL) and high-level Web development with HTML, CSS and JavaScript.

In this paper we present Xflow, a system for declarative, highperformance data processing. In combination with XML3D, it allows Web developers to combine a 3D scene graph with dataflows. Our approach is general enough to allow meshes, shaders, texture samplers and the canvas itself as sink of these dataflows. Thus it enables data processing e.g. for dynamic meshes, animation of shader parameters, image processing and post processing. In this first stage, we define a set of generic building blocks that can be used to construct more complex operations. This gives a large degree of flexibility, but is still abstract enough to increase ease-of-use and ensure security. To maximize performance, dataflows are automatically connected to the render pipeline and mapped to both CPU and GPU, thus harnessing parallelization. In order to evaluate our system, we have created a number of examples.