We describe Chromium, a system for manipulating streams of graphics API
commands on clusters of workstations. Chromium's stream filters can be
arranged to create sort-first and sort-last parallel graphics architectures
that, in many cases, support the same applications while using only commodity
graphics accelerators. In addition, these stream filters can be extended
programmatically, allowing the user to customize the stream transformations
performed by nodes in a cluster. Because our stream processing mechanism is
completely general, any cluster-parallel rendering algorithm can be either
implemented on top of or embedded in Chromium. In this paper, we give examples
of real-world applications that use Chromium to achieve good scalability on
clusters of workstations, and describe other potential uses of this stream
processing technology. By completely abstracting the underlying graphics
architecture, network topology, and API command processing semantics, we allow
a variety of applications to run in different environments.