Artificial Evolution

"Artificial Evolution" refers to a technique useful for (among other things) modeling and animation first used in recent years by artists like Karl Sims and William Latham.

The basic methodology involves having the computer present the user with a set of designs, somewhat randomly created. The user decides which design is "best".

The selected design is used as the springboard for a new set of designs, each created by altering the chosen one slightly. A new "best" design can then be selected from this fresh set, and the process continues... until the user is satisfied.

The paper "Artificial Evolution for Computer Graphics" by Karl Sims which appeared in Computer Grapics, July 1991, provides an excellent explanation of these ideas. The paper's content is discussed below.


In the language of biologists, a "genotype" is a code which when "expressed" generates a "phenotype", or individual. A population of unique individuals contains a wide range of genotypes.

"Selection" based upon "fitness" determines which individuals pass their "genotypes" to offspring through reproduction. Assuming offspring are not exact clones of their parents, but slightly "mutated", evolution occurs.

Charles Darwin's, The Origin of the Species and Richard Dawkins', the Blind Watchmaker are two very good sources for further reading.

Sims describes two basic forms of mutation. The simpler form, parametric mutation, is useful for evolving variations of similarly structured forms. Symbolic expression mutation is more complex, but also more general, leading to a wider range of possibilities.

Parametric Mutation

In AL it becomes possible to write short programs representing higher-level model data, i.e. running the program yields a model. These procedures can accept several parameters that control various features of the data generated. For example, Sims created a generic plant model that accepted parameters which determined plant attributes such as branching frequency, scaling, fractal-limits, randomness, and so on. Using parametric mutation for artificial evolution allows a convenient aesthetic driven interface for exploring the vast space of possibilities.

Mutation of a parametric genotype is done by adding or subtracting some small amount from several of the parameters. Modifying the amount each is changed, as well as the number that are changed controls the amount of mutation.

Scheme Example Code

Below are some examples done by Beth Blostein and Terry Monnett. They wrote a function that would generate a building based on the values of 15 parameters. These parameters grouped together form a genotype which can then be mutated to generate the individual buildings, or phenotypes. Below are several iterations of building selection, followed by four views of one of the buildings:

Complex Expression Mutation

While parametric mutation can yield quite a variety of possibilities, they will all most likely share the same structure i.e. they will all be branching trees, buildings, etc. Only their dynamic attributes will change. By using more complex genotypes, a much wider range of unpredictable results can emerge.

Sims uses lisp expressions for genotypes, which allows the underlying structure to evolve. The tradeoffs are both a loss of control, and greater difficulty in goal directed design. But in design domains driven by exploration rather than purposeful problem solving such as abstract texture or object generation, this lack of control is beneficial, even desireable.

This technique requires a set of functions and a set of mutation operations, each with probabilities for selection. Functions can be chosen at random from the set, and then mutated using a randomly selected mutation operation.

Sims used a set of mathematical and image processing functions to generate texture images. The value of each pixel in the image was determined by a complex math expression. A version of the system was commercially implemented in Kai's Power Tools as a Photoshop add-on (and is available at ACCAD).

Below are some samples generated with a simple implementation of Sims' algorithms and RenderMan:

Some more complicated examples can be found at CMU, courtesy of John Mount.


By including "time" as a variable in the expressions used to generate images or objects, animation can be produced. John Mount has some evolved animations available, as well as info on how they are produced.

Karl Sims has made available an animation of his work shown at Siggraph '94 on evolving virtual creatures using physical dynamics:

(9.5meg, used with permission)

Return to Schedule Information