Evolutionary art project in Clojure

View the Project on GitHub nodename/clevolution


This project is an attempt to implement some of the work described in Karl Sims' 1991 SIGGRAPH paper Artificial Evolution for Computer Graphics.

There exists a previous version in the haXe language, with its own simple parser and interpreter for Lisp s-expressions.

As of 1 Jan 2013 Clevolution has taken a great leap forward onto the shoulders of Clisk, the Clojure Image Synthesis Kit by Mike Anderson, taking advantage of its wide variety of image-processing operations and fast image generation.

The process consists of generating random s-expressions from a set of image-processing primitives, such as those provided in the Clisk DSL, and evaluating them to produce images. As usual in genetic programming, a fitness function is applied to judge the results; in this context the function is "Do I like the image?"

Sometimes a generated image will suggest expansion of its canvas via clisk's scale operator to achieve coolness:

generated image

zoomed image

zoomed again

This and other exploratory functions, as well as basic support for generating, evolving, and reviewing images, are available in the Clevolution GUI application. Please click "View on GitHub" for more information.

Related work by others:
tweegeemee, Twitter Genetic Algorithm imagery
fungp, a genetic programming library for Clojure
clojinc, an introduction to Clojure with genetic programming

Copyright © 2012-2015 Alan Shaw

Distributed under the Eclipse Public License, the same as Clojure.