# Chromium Introduction

What you will find here is the original documentation for the Chromium project as of version 1.9. Use it judiciously, as several features are not part of the vmgl project. Hopefully, you'll feel inclined to contribute :)

Chromium is a system for interactive rendering on clusters of workstations. It is a completely extensible architecture, so that parallel rendering algorithms can be implemented on clusters with ease.

Among Chromium's features are

- Sort-first (tiled) rendering - the frame buffer is subdivided into rectangular tiles which may be rendered in parallel by the hosts of a rendering cluster.
- Sort-last (Z-compositing) rendering - the 3D dataset is broken into N parts which are rendered in parallel by N processors. The resulting images are composited together according to their Z buffers to form the final image.
- Hybrid parallel rendering - sort-first and sort-last rendering may be combined into a hybrid configuration.
- OpenGL command stream filtering - OpenGL command streams may be intercepted and modified by a stream processing unit (SPU) to implement non-photorealistic rendering (NPR) effects, etc. Here's an interesting example.
- Many OpenGL programs can be used with Chromium without modification.
- One can write Chromium-specific applications which perform parallel rendering with the aid of special synchronization primitives.
- Chromium runs on Linux, IRIX, AIX, SunOS and Windows-based systems.
- Chromium is an open-source project.

Chromium is derived from the WireGL project. Even if you're completely happy with your WireGL setup, we recommend replacing it with Chromium for several reasons:

- Numerous bugs have been found and fixed since the last WireGL release.
- The new configuration system will make setting up and reconfiguring your tiled display much simpler.
- Chromium has many, many more features.

This documentation serves as both a reference guide and tutorial for using and extending Chromium. See the the Where to get help link for other resources.

## Credits

Chromium is mainly the product of Greg Humphreys. However, a few other individuals deserve special mention. Ian Buck wrote the original state tracking and bucketing system for WireGL, which the Chromium "tilesort" SPU and "state_tracker" library are loosely based on. Ian has also been in charge of the WireGL release process and maintenance for its 80+ users. Matthew Eldridge made significant improvements to WireGL's networking libraries and the overall system design, and his design philosophy (if not his code) lives on in Chromium. Chris Niederauer did most of the implementation of the OpenGL extensions, including all of the NVIDIA-specific ones. He also designed the Chromium logo and did a lot of really useful slave labor for us last summer when we were building our cluster.

For the beta and 1.0 through 1.4 releases Brian Paul and Alan Hourihane of Tungsten Graphics, Inc. contributed much of the development. Brian and Alan Matsuoka (of Red Hat) made many contributions to the Chromium 1.4 through 1.7 releases.