Logo IMG


Seeing between the Pixels

Brian Hayes


Vector formats are ideal for mechanical or geometric drawings, but it's hard to imagine that Seurat would have been very happy working in vector mode. On the other hand, he might have been delighted to try a form of computer painting devised by Paul Haeberli of Silicon Graphics. Haeberli's program captures something of the kinesthetic experience of painting, and in skilled hands the program can produce distinctly painterly results. It achieves this through a strategy that seems perfectly obvious once someone else has thought of it: The program represents a painting not as an array of pixels or as a collection of lines or splines but as a sequence of brushstrokes.

To paint with Haeberli's program you begin with an existing template image in pixel format, and next to it a blank canvas. As you run the mouse over the canvas, the program chooses a color from the corresponding region of the template, and paints a brushstroke in that color on the new canvas. But the brushstrokes do not merely reproduce the pixel structure of the template; brushes have numerous adjustable properties, including size, shape, orientation and texture. Indeed, the computerized brushes can do things that no brush of pig bristle or camel's hair could achieve, such as spraying squares and circles of color or tiling the surface of the canvas with the polygons known as Dirichlet domains. The result is a highly stylized and often impressionistic version of the template image.

Figure 4. Three renderings of a single imageClick to Enlarge Image

Weird and wonderful brushes are not unique to Haeberli's software; several other painting programs have a wide selection of them. But other painting software does not represent the finished artwork as a list of brushstrokes; instead the brushes merely spray pixels onto the image surface, so that any subsequent operations have to be done at the pixel level. In effect, you are left with a flat photograph of a painting, whereas the brushstroke format is more like a movie of the artist at work—a movie so precise and detailed that it reproduces the exact motions needed to apply all the layers of paint to the canvas.

Storing brushstrokes opens up a number of possibilities for image manipulation that simply cannot be done either with pixels or with conventional pigments on canvas. At the simplest level, you can undo a brushstroke if you make a mistake. Beyond that is the possibility of "post-processing" the brushstrokes. For example, you might experiment with changing the diameter or length or direction of the brushstrokes after a painting is completed, or you might use one template image to determine the color of each brushstroke and another image to control brush orientation. You could even change the order in which the brushstrokes are layered onto the canvas, perhaps sorting them by color.

The most elaborate versions of Haeberli's painting program run only on Silicon Graphics workstations, but a Java applet called the Impressionist has some of the basic functions. It is available at and should run on any Java-equipped computer.

comments powered by Disqus


Of Possible Interest

Computing Science: Computer Vision and Computer Hallucinations

Engineering: Anonymous Design

Sightings: Cell by Cell, Life Appears

Subscribe to American Scientist