PROJECT: Variance

Project Title: Variance
Date: Fall, 2007
Project Link:

Variance was born out of a year-long exploration into genetic algorithms and evolutionary computing, and their possible applications within the creative process. 

It can be argued that the traditional design process is not too far removed from the classical evolutionary process. Individuals (our designs) are introduced into a competitive environment (our brains, or perhaps, our clients' brains). The ones that survive are deemed to be the best. This fits nicely into the low level 'survival of the fittest' model of evolution but it doesn't consider some of the other key elements – namely mutation and hybridization.

Variance is an attempt to provide a creative tool for designers that can leverage some of the power of evolution. Using Variance, designers can harness genetic algorithms to brainstorm or refine compositional ideas. The classical design process becomes the Evolutionary Design Process.

I would consider this version of Variance to be pre-alpha – it is more of a proof of concept than it is a working application. Still, it show some promise. Here, I'll use the application to design a logo for Variance itself.

The first step is to select colours, compositional elements, and typefaces. We do this from the 'controls' panel:

Next, we press the 'hybirdize button' to create a random population of compositions. These are likely to be crap, since they are being pulled from the computational hat. In this image, you see the first population along the top row, with two of the individuals dragged down into the feature boxes:

I liked these two individuals the best, so I am going to hybridize them to create a new population of compositions. Before I do that, though, notice I can use some simple tools to adjust the compositions as necessary – here I am moving the word 'variance' in the right panel so that it appears at top left. Here's the next generation, again with two selected individuals in the feature boxes:


Notice that the previous 'parents' have moved up to the top row, which acts as a history of our selections. At any time, we can drag individuals from the history row into the feature boxes, to bring them back into the mix. This process gets repeated – the more generations we use, the better our results will be. You'll see in this sequence that the compositions quickly become more appealing:



There is no limit to how many generations we can run – but for the sake of this example, let's assume we are happy with this composition.

Up until now, we have been working with a whole mix of compositional properties – size, position, colour, typeface, rotation, scale, etc. Sometimes, however, we may want to optimzie one of these properties without effecting the others. With the variance interface, we can lock off certain properties, from the control panel. Here, we'll lock everything off but colour. We'll also increase the mutation rate so that we see more variations:


Here's the new generation of hybrids, with two individuals selected in the feature boxes. Notice that all of the individuals in the hybrid row have identical compositions – but different colour combinations:


Hopefully this example illustrates some of the possible uses of Variance – or at least raises some ideas as to how evolutionary concepts can be applied to the creative process.

Variance has been on hold for a while – I would like to move it over to Adobe AIR and make it into a more fully-featured RIA but alas resources are limited. If anyone is interested in this project and has some ideas as to how it would be taken further, please get in touch

Variance was built in Flash, using ActionScript 2.0. 

4 thoughts on “PROJECT: Variance”

  1. Could this be used to create graphic logos randomly like you are doing? if so that is pretty amazing. Although you'd have to be very selective about what sort of initial designs/illustrations you add to it in the first place. I like the idea though because it's actually very difficult to create good designs and logos. I've tried numerous times and usually end up outsourcing it! Thanks… Martin

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>