Design by Algorithm Process Description

Overview (in words)

To understand the process, think of the image as comprising a large number of tiny pixels. The goal is to color each pixel according to the outcome of a single, simple iterative process. The x-y coordinates of each pixel provide the starting point for the iterative process. This starting value (expressed as a coordinate pair, or as a single complex number) is entered into a mathematical expression, which generates a new value. The value obtained from the expression is entered back into the same expression, producing yet another value. This process repeats until the value satisfies some mathematical condition defined by the artist (called an orbit trap), at which point the iteration terminates. The pixel is then colored according to a color lookup table, with the aid of a transfer function that selects a color according to some characteristic of the outcome of the iteration. At this point, one pixel has been colored. The same expression is used for each and every pixel of the image, differing only in the starting value used to initiate the process. This is then repeated sixty million times, once for each of the remaining pixels, to produce the completed image.

There is no manipulation of the image once it has been created by the computer program–no hand coloring or drawing. Control of the technique is achieved through the artist’s selection and manipulation of the mathematical equation, the orbit traps, and the color mapping that relates terminating events to pixel colors. The artist’s manipulations of the code tend to be global in nature, as compared to the local manipulations one achieves with a paintbrush.

Overview (in code)

Frequently Asked Questions

Q: What is an algorithm?

A: According to a dictionary definition “an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state.” All of this artwork is created by algorithms that I design and implement in very short computer programs, similar to the one shown in the section above this one, which are printed on the back of each piece.

Q: Do you draw, paint, or color them by hand?

A: No, the images that you see are exactly how they appear on the screen when I run the program. If I wish to modify an image, I modify the code, not the image directly.

Q: What software program do you use?

A: The code you see on the back of the artwork is the text of the entire computer program. It generates a bitmapped image file, similar to the file that your digital camera makes. There is no other computer program that I use. I use no “rendering” software, nor do I “Photoshop” the image (other than to open up the bitmap file and print it).

Q: What programming language is that on the back?

A: It is a combination of common languages, such as C, Basic, and Fortran. I took the parts of each language that I thought were easiest to understand, and combined them into a custom language. Computer programmers would call this “pseudo-code,” which is the way they communicate code in a language-independent way. If you wish to program it yourself, you will have to translate the code into a single language of your choice.

Q: Can I really create these images from the code printed on the back?

A: Yes! However, you will need to know how to program a computer in some language. That is different than knowing how to run programs on a computer.

Q: How are they printed?

A: They are printed on a professional quality Epson wide format printer, using archival, acid free media. Early on, I printed the work on paper and matted and framed it. These days, I print directly onto canvas and gallery-wrap them on stretcher bars. I use a 1.25″ black border on the side of the gallery wrap, which I believe helps to set the work apart from the wall and surroundings.

Q: How did you develop this technique?

A: It grew out of my research at the University of Illinois in the mid ’80s. I was studying the behavior of iterative numerical methods in engineering design, in support of a National Science Foundation grant, and started seeing these interesting shapes and colors. I then decided to pursue it as an art form, and have been exhibiting since 1990.

Q: How long does it take to create one of these?

A: Back in the ’80s, it took a long time just to run the program. I had one that ran for 24 days! Today’s fast computers can do the computation in a couple of hours and I do all my work on a laptop. Now, the most time consuming step is designing and modifying the mathematical expressions to achieve a desired graphical outcome. I have control of the main features of the image (see later question). Nevertheless the finer details are often a big surprise.

Q: Are these fractals?

A: Yes, these are fractals of my own design. In contrast to “standard” fractals, such as the Mandelbrot set or the Julia set, these fractals are custom designed to express my artistic intent more fully.

Q: What is a fractal?

A: The simplest explanation I can offer is that a fractal is a geometric form that exhibits special characteristics, including a self similarity at all levels of magnification. Fractals also exhibit a sensitive dependence to initial conditions, which gives rise to the intricate patterns characteristic of a fractal.

Q: Do you have control of the shapes and patterns?

A: Yes, to a large degree. Now that I have been doing this for 25 or so years, I can deliberately produce desired shapes and patterns from my understanding of how recurrences and orbit traps will behave. For example, Katsushika Hokusai’s famous woodcut, The Great Wave off Kanagawa (to the left), was the inspiration for image 91 (to the right). I sampled colors from the original and used them in my color palette. I also designed math expressions to create the main crashing wave shape and cloud shape.

Image 80 (to the left) was inspired by the interesting patterns I saw on trunks of palm trees (to the right) while I was vacationing in Florida. These crisscrossing patterns were mathematically expressed in the orbit traps, giving rise to the fern-like patterns in image 80.

In general, I have much more control of the larger features of the image; the finer details are too complex to anticipate, and are often a wonderful surprise.

Q: How are the colors selected?

A: First, I define a color palette and implement it in the code as a color lookup table. Then I instruct the computer how to select colors from the palette when orbits are trapped while executing a recurrence (see later for explanation of these terms). The hue, saturation, and value are all mathematically determined by the algorithm I create.

Q: What is a recurrence?

A: This is short for “recurrence relation,” which is a mathematical expression that produces a new value of a sequence from previous values. For example, the recurrence xn+1 = xn2 produces the sequence 2, 4, 16, 256, . . . when initiated with x = 2.

Q: What is an orbit trap?

A: An orbit trap is a mathematical condition that determines when a recurrence should terminate. For example, using the recurrence xn+1 = xn2 above with the starting value x = 2, the orbit trap defined as x>100 will terminate the recurrence on the third iteration (when it reaches 256).

Q: How does the orbit trap determine the color?

A: I define the orbit traps to capture different behaviors of the recurrence. For example, the recurrence xn+1 = xn2 that was mentioned earlier has three distinct behaviors, according to whether the starting point is greater than 1 (it blows up to infinity), equal to 0 or 1 (it stays the same), or between 0 and 1 (it converges to zero). These behaviors can be captured by different orbit traps. Different colors can then be assigned to each orbit trap, such as shown below:

The three behaviors are assigned green, red, and yellow, respectively. This isn’t a very interesting image, mainly because it’s just one-dimensional. But it’s possible to generalize this idea to two dimensions (see next question). Furthermore, the shade of the color could be varied according to a wide variety of criteria, such as the iteration count at the time of capture, or the location within the orbit trap where the iterate lands. This is how the shading is done in my images.

Q: How do you get a 2-D image from a single variable?

A: The key is to work in the complex plane. The symbol z that you see in the formulas represents a complex number—one which has a “real” part and an “imaginary” part. If we plot the real part of a complex number on the x-axis, and the imaginary part on the y-axis, then each pixel in the image plane has a unique x-y coordinate pair, and consequently, a unique z value. Complex numbers can be added, multiplied, raised to a power, etc., just as real numbers can be. If we define the recurrence relation to be a function of a single complex variable, then it will generate a sequence of complex numbers. The orbit traps can also be expressed in terms of the complex variable and have colors assigned to them. Thus, the mathematical treatment applied to each pixel is identical, except for the starting value, which is a the z value corresponding to each pixel. The net result is a color image that is two-dimensional instead of one-dimensional.

Q: You seem to use “Newton’s method” and the “logistic map” a lot. Why?

A: Newton’s method is an iterative algorithm for finding the values of x that make a function, f(x), equal to zero. It has the form xi+1 = xi – f(xi) / df/dx|xi. Newton’s method has long been known to exhibit chaotic behavior when applied to certain equations. Although it converges quickly when in the vicinity of a solution, it can jump violently in early iterations. This was noted by mathematicians in the 1800s, but the aesthetic quality of this behavior was not appreciated until computer graphics revealed it visually. Similarly, the logistic map, xi+1 = A xi (1 – xi), is known to generate chaotic sequences for certain values of A.

Q: You are both an engineer and an artist. Which came first?

A: The artist. When I was in my early teens, I was very involved in photography. I had my own darkroom (initially in the crawl space below my family’s home, and eventually in a room I built under the basement stairs) and entered photographs into school competitions. Then I discovered math and science in high school, which dominated my interests for decades. Now, I’ve returned back to my art roots (although I still am very active in engineering projects).

Q: When someone comes to view your art fair display, how do you discern how “geeky” they are?

A: The non-geeks are fascinated by the colored side of the artwork. The geeks think the art is the computer code printed on the back! 🙂