Iteration

April 6, 2007
You might also like:
  • fl0w3rs
  • Version 3.5
  • Dynamic Colour (Color) Harmony with Actionscript
  • Other content in Sketches

    Comment

    Like many designers and programmers the process of iteration is an important part of the development of any idea and the execution of that idea. Below is a small example of the process that I always try to employ - start small with something simple then iterate the idea and see where it takes me.

    In this example I was starting to explore the wonderful NodeBox program - an application that uses Python to generate 2D graphics (and animations). At the time of writing NodeBox is still very new to me so the following process was really helpful in starting to understand how I can work with NodeBox and the sort of things it can do.

    So where to start? Well on looking at the libraries that are available, two (well three but we’ll come to that) caught my eye. One was a very simple way to use flocking algorithms in NodeBox creations and the second was a different way of drawing curves using a cornu method rather than bezier curves. These seemed really rather elegant, plus I noticed that someone had combined the Boids flocking library with these kind of curves. So I set about trying to do the same thing and then see where I could take it.

    First it’s important to start very simply. With a lot of these iterative designs I usually always start with black and white sketches - this way nobody gets hung up colours, plus it allows you to concentrate on the basic forms. This first sketch simply draws a cornu curve using a single flocking boid as it’s path.

    iteration with one line

    Next I simply increased the amount of updates the boid goes through - so the more updates, the more points for the cornu path to move through. Of course you could just randomly select different points on the canvas but by using this flocking algorithm technique the paths are much more natural and fluid.

    iteration one line with more boids

    So what would happen if I then duplicate the layer that the path is drawn on using the Core Image library and then shift those layers a couple of pixels each time in the x and y axis?

    iteration

    This now starts to become interesting as we begin to see interference effects happening. But it’s not really the look I’m after - it feels very mathmatical as if it’s drawn by a machine - which of course it has been. What I really want is a more organic construction. So instead of moving the duplicate layers by a fixed amount each time, lets intruduce some randomness.

    iteration

    Now we seem to be getting somewhere. On the next iteration I introduced a slight random rotation to each duplicate layer. Now it starts to look like the paths are not absolutely identical, increasing the orgnaic nature of the composition.

    iteration

    Finally using the filters in the Core Image library I’ve intruduced some random blur and played around with the opacity for each layer. Now we have a much softer more natural piece of work that I’m much happier with. This is a very simple example of how I tend to iterate through the design process. Remember this piece started out as a simple boring curvy line.

    iteration

    Popularity: 43% [?]