genetic image filtering with sol

The genetic filter applet is an image filter breeding system written in Sol, a new Internet programming language for design, simulation, and modeling.

This page documents the process of creating new image filters using the genetic filter applet. There are lots of cool images here, so make sure you scroll all the way to the bottom.

This is a screen grab showing the genetic filter applet in action. The reference (unprocessed) image is shown in the lower right, and the seven other small images are the result of applying the current group of filters.

To create new filters, two parent filters are selected and seven new children are produced. Filters are recombined in a process analogous to the sexual recombination of DNA. The sliders control the three free parameters of the recombination process.

This assignment involved taking some pictures of a hand (ours or someone else's) and processing them. Here are the original hand pictures I took:

And now what you've been waiting for: the cool results.

Results for Source Image One.

Results for Source Image Two.

Results for Source Image Three.


The images you see here are the result of breeding image filters using genetic programming techniques. When the Genetic Filter applet starts, the user is given a selection of seven initial filters as applied to a source image. The user may choose another source image from a list, edit the genetic code of a particular filter, or select two filters to be "parents" of a new generation of child filters.

When two parents are selected and the "combine" button is pressed, the applet generates seven new image filters which are the genetic descendents of the two parent filters. These child filters are a combination of the genetic code for the parent filters with possible additional code introduced by mutation. The new filters are then applied to the selected source image and the user is shown the results. The cycle of filter selection, recombination, and display is repeated as many times as desired. In this way, the aesthetic sense of the user acts as the fitness function for the genetic evolution of the system. Once an image is created which the user likes, a larger version may be rendered in a new window and captured from the screen, as these example images were.

All of the filter results shown here were the results of only a few generations of filter evolution.

last updated $Date: 1998/12/10 12:58:02 $

index page