What is this? A search for interesting Cellular Automaton using Genetic Programming enables ordered patterns to evolve from a random population under your direct control. A Cellular Automaton defines a system of individual elements (turtles/ants/cars) following exactly the same rule. Genetic Programming is a population of individual programs of rules which are recombined according their fitness for a given task, to produce a new population. The fitness in this case is simply how attractive an individual pattern of turtles is to the user.

How do I use this? The patterns are user rated by clikcing on the image. The more you like a presented pattern the further down the image you should click. Initially there will be a few random looking patterns which you may appreciate but on which you should generally click nearer the top. As you progress, combinations of previously highly rated patterns will evolve together to provide interesting patterns in further generations. You will see shared traits between patterns as this happens. You also have control over how large each population is.


Getting Going. Firstly, change any values in the form on the right to set up the parameters of a "run". At any time you may restart with a fresh population of individuals by clicking the browser's refresh button. Two reasons for doing this might be convergence where all patterns have come to look alike or when there are no interesting individuals being presented (probably because you need a break!).


Parameters. The parameters which you may set are explained here and on the right. Try experimenting with all these values, they are listed in the order of their effect on patterns. Each turtle making up the pattern is organized into a hierarchy. The initial oligarchic set Size Of Oligarchy is the set of turtles at the top of this hierarchy. Their positions affect the positions of all their children and hence of all the turtles. The number of children each member of this set has and that each turtle has is fixed by the parameter Turtle Children. The Animation Steps parameter is used to specify how many steps of animation there is in each cycle. If you want the chance of a quickly repeating set of patterns then use a small value. This value gets used with the trigonometric functions and I usually set it to 360 so you get wave forms. The larger the polulation of patterns Population Size the greater chance of finding a great pattern but the more ratings you have to make.

A guide to rating patterns includes the following considerations :-

  • Originality. If a pattern presented seems unique then rate it highly. This ensures novelty in the population. If a pattern has already appeared then rate it less than you normally might to avoid convergence.
  • Natural. How much does this pattern mesmerize you? How closely does it remind you of something natural?
  • Priority. First rate interesting coordination between turtles, then movements followed by colour.
  • Random. Rating some patterns at random helps to give a population an interesting flavour.
  • Patience. It will take a minimum of two or three generations to get to an interesting population.
  • One Window. For the self organized complexity also please only keep one window open at a time!
The number of turtles which draw the patterns.
Number of Turtles

Number of turtles at the top of the turlte hierarchy.
Size of Oligarchy

Number of children each turtle has.
Turtle Children

Used to give a sense of cycle to patterns.
Animation Steps

Number of patterns in the pattern population.
Population Size


Copyright 2017 blue-sky-thinking.co.uk. All Rights Reserved.