Simple Interactive Evolution

Credit: this makes much use of the jsDraw2D javascript drawing package at jsfiction.com , and uses some images from carpictures.cc under a Creative Commons License .

This is a very simple demo of interactive evolution.

An evolutionary algorithm (EA) is a process that can automatically solve very difficult problems. EAs are used for real in many areas of science and industry. The basic idea is to 'evolve' solutions to a problem, and EAs work in a way analagous to how evolution works in nature.

Each generation, new designs are generated by randomly mixing and/or otherwise randomly changing the individuals from the previous generation that were 'fittest'.

Click "Start", and you will see a number of random car designs.

Keeping in mind some overall type of car shape you would like to design, select (by clicking on them) one or more that seem to have the right features, and click "Regenerate".

Keep doing this, and gradually the car designs will get closer to what you are looking for.

Originally for my son Stephen, I use this in the intro parts of courses in evolutionary computation (EC). The point is to demonstrate the search "power" of selection combined with random mutation and random breeding.

You are providing selection pressure, but the changes are otherwise undirected (i.e. random). You can see how this gets you to interesting car designs quite quickly.

If, having tried it, you think 'quickly' is optimistic, see how long it takes if you use random undirected search -- you can do that by pressing "Initialise" repeatedly, and never selecting anything.

Don't be too demanding of this app -- it's just for illustration and I hope you find it educational and fun.

If there is demand, I will make improved or additional versions with extra features.

Want to use something like this for creative design? Don't be fooled by the simplicity of this demo: serious use of interactive evolution tools in design has precedent and is becoming increasingly popular and effective.

Tweet or email me if you are interested: @dwcorne / dwcorne@gmail.com