Like the work of Karl Sims [Sim91], images are generated by evaluating a function on the rectangular grid. This function is vector valued with red, green, and blue components. The grid of vectors is normalized so all the components are in the range . This function is composed of many standard and custom mathematical functions. The complete list of functions used is: avg, max, min, add, mul, sub, div, sin, cos, tan, pow, log, exp, abs, inv, rnd, mod.
The mutation and crossbreeding of the image expressions is performed by the general expression mutator and crossbreeder discussed earlier. The starting equations are fairly easy to understand, but after only a few generations of mutation, they become non-intuitive.
Two images generated from somewhat similar expressions can be animated evolving from one to the other by crossfading the generating expressions [Sim91]. This is done by traveling down the expression tree until differences are discovered. Linear interpolation between the different subexpressions is used when evaluating of expression during the crossfade. An example is shown in Figure 3.
Figure 3: Example of a genetic crossfade between images