"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures ... Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time."

-- Frederick Brooks ("The Mythical Man-Month" 1975)

This is all too true. Given the addictive nature of programming it is surprising that millions of people aren't creating computer-generated images.

Art by Algorithms

An "algorithm" is simply a list of computer operations needed to process or produce certain data -- an image in the present case.

There are analogies with music. At a recent concert I listened to several Bach pieces with their pleasing "theme and variations" style, with just enough surprise and change thrown in to keep them from being boring. Musicians have long noted that Bach's fugues (for example) are somewhat "algorithmic" in nature, that is to say they follow rules. A John-Art picture might have "trees" as the theme, with the partly-random changes from tree to tree as the "variations".

It is a specific aim of my art to produce scenes with something interesting at all length scales. Such an image would have interesting features seen from 20 ft away. Other detail would emerge when viewed from 10 ft, 5 ft, etc. This property is not inherent in computer-generated art but must be created by the artist in the algorithm. Another aim is to impose sufficient randomness on objects of the same type that they do not look identical or "mechanically drawn". (In painting, for example, the artist's fingers do this.)

The visitor to this site may not be familiar with the use of computers to create art. One of the better sources for this is the web site of the retired MCAD professor Roman Verostko who has been a pioneer in this field.  It includes some interesting history and examples. Verostko's art and the art shown here show few similarities except in the use of algorithms to create it. Another interesting site, which has a broad selection of computer art, is the Museum of Computer Art.

Another interesting site is that of Joshua Davis. Like the work shown here, it consists of uniformly-colored regions ("vector graphics").

There are some parallels with the work of Ray Balbes. Like the work shown here it is algorithmic, and the artist builds his software from the ground up without using commercial packages. There is some overlap in subject matter too. He appears to use bit graphics rather than vector graphics.

Math-science based algorithmic art can be seen at the web site of Samuel Monnier. An on-line sampling of several math-science based artists can be seen at MB Honaker.

The geometric art of the late M. C. Escher did not use a computer, but he has latter-day followers who do. The web site of Hans Kuiper is worth a visit. I have not worked on art of this sort, but it is tempting.

A computer program begins with input data, processes it in some manner prescribed by instructions in the program, and then creates output data. In the context of art, the input data is a picture idea existing in the artist's mind. One of the challenging tasks is to convert the artist's idea of size, shape, color, and composition to specific numbers which can be dealt with by the computer.

Thus the "art" in John's computer art lies in the writing of the program.

The "canvas" is a regular array of points, with a color defined at each point. Your digital camera produces such an image. A color-defined point is called a pixel (short for picture element). A digital camera image might be, say, 1600 pixels wide by 1200 pixels high. In printing the picture a colored "dot" would be laid down on the paper at a given position. This is usually done in such a way that the dots appear to merge together into a continuous image.

The output from an art program is thus a set of pixel colors, one for each location within the image. The algorithm is the set of computer rules that generate color information for each pixel. Shapes are defined by specifying color for a set of pixel locations within the shape.

Most computer algorithms (e.g., for the "Mandelbrot set") are completely deterministic. This means that, given the inputs, the outputs are completely determined by the computational rules. If you re-run such a program, the same output (picture) is produced every time. Reality isn't like that. Natural scenes always have a large amount of randomness. If we view a meadow in autumn, we would say that the asters are scattered at random. This can be implemented in a computer program using the random number generators which are available in general-purpose computer languages such as Basic or C. In the "sunflowers" picture (see gallery or the overview), each sunflower has slight but visible differences in petal color, petal count, and center color. These features are determined by random numbers and thus will be different for each re-running of the program. Such a computation which includes randomness and is not deterministic can be called statistical or stochastic. Much of the art of writing such programs lies not so much in specifying the colors and shapes of objects, but in the statistical distribution of their colors and shapes.

Is the art presented here fractal? Some would say no because it isn't deterministic. But one of the first problems considered by Mandelbrot in his ground-breaking book was "How long is the coast of Britain?", which refers to a natural structure which is only self-similar in a statistical sense. Another feature of Mandelbrot's writing is a long and admiring account of the work of Louis Batchelier (the inventor of the idea of "random walk" which is one of the best examples of a random fractal). A good survey of fractals in their variety can be found in the on-line material of a recent Yale course (in which Mandelbrot is involved) Yale. Other interesting sources are the web sites of Paul Bourke and Clint Sprott. Some John-Art images are fractal in the sense of being statistically self-similar.