header

genetic-algorithms.com

 

About Conrad

Conrad Genetic Art Algorithm Conrad is a genetic algorithm that designs images based on user input.

Conrad is composed of populations of agents, known as Artists, as they design the images which are used to represent them.

Conrad's Artists, like all living creatures, have a genotype and a phenotype. Their genotype is a string of 'A's, 'T's, 'C's, and 'G's, just like yours! This genotype is used by the algorithm to produce an image, which is the Artist's phenotype.

At the start of a population, 30 artists with 30 letters in their genome are generated totally at random. They then display their phenotype to the user, who scores them between 1 and 10. At the end of the generation, the Artists reproduce. Those with higher scores, or 'fitness' are more likely to have more offspring, and so gradually the population moves towards genotypes which the user is more likely to rate as attractive.

Conrad was inspired by the work of Karl Sims in the 1990s who wrote several papers on his own Genetic Art, and even created an interactive exhibition where visitors voted for their favourite images by standing in front of them. While Sims did not leave his source code, Conrad is heavily based on both his idea and his specific instantiation of Genetic Art.

How it works

How are the images generated?

The images are generated from a selection of simple mathematical functions which act on randomly generated numbers and the x,y co-ordinates of pixels in the image to produce a RGB values which make up the image.

The functions are specified by the genome of the Artist. The genome is split down into 3-character codons. Each codon specifies a function, for example 'AAA' = 'abs()' and 'CTC' = min. There are 64 unique codons which I won't list here, but you can see the full code for how the images are generated if you're interested. You can also play around with writing, editing, and mating your own genomes in the Conrad Sandbox.

How do the images evolve?

Once the images have been generated, the all important step is evaluating the fitness of each Artist. Here, that's done by you: the user. The images you give high scores to are 'fitter' and more likely to pass on their genes to the next generation. For each required member of the new generation, the code selects two members of the current generation. The fitter the Artist the more likely they are to be selected.

Once selected, the pair mate: their genomes are 'crossed-over', meaning some characters from one are mixed with characters from the other. The new genome is mutated with a small probability, and a new Artist is born. The new Artist then generates its own image which is seen in the next generation.

All of the images on this site have been created in exactly this way by Conrad. So get started and create your own!