introduction
how randomseeds work?
what is a randomSeed?
random
Seed development
cellular automata
turing machine


Vicky Isley & Paul Smith
Research Fellows in Computer Animation & Computer Art
NCCA, Bournemouth University
t: +44 (0) 1202 966699
e: info at boredomresearch dot net

boredomresearch is represented by [DAM] Berlin



randomSeed on display at HTTP, London uploads an image every hour - watch how the system has developed from the 9th October 2005

Stephen Wolfram's publication 'A New Kind of Science' was a great inspiration to this project

Mirek Wojtowicz Cellular Automata simulator Mcell is a great application to download

dataisnature a site with great links to other algorithmic and computational work

 


introduction
an online version of randomSeed using the same rules as the theatre of restless automata exhibition system

To view this content, you need to install Java from java.com
this version has been made in Processing

In May 2005, we launched our solo exhibition, theatre of restless automata at Aspex Gallery, Portsmouth touring to HTTP, London (Sept-Oct 2005) and Peterborough Digital Arts (March-May 2006). Within this exhibition two randomSeeds are displayed, in which tiny creature-like objects can be observed, busily moving about in encapsulated worlds; like ‘workers’ in an ants nest. We have created simple movement instructions for our ‘workers’ (we refer to our workers as machine heads). They march out from the centre of their world leaving movement traces by changing pixel colour.

We are absorbed by the intricate and beautiful images the machine heads make by following simple rules. Eventually, the machine heads fill their world with different coloured pixels and can no longer move in straight lines. Their behaviour changes as their environment becomes increasingly complex. Finally, their world takes on the appearance of what looks similar to rough stone or noise on a television screen. As authors, we are fascinated how we can’t predict the images created, as the machines respond to their environment.

If you reload this web page the machine heads above receive new rules. If we tried to view every possible permutation of this work our mouse buttons would soon wear out. We were compelled, while constructing these systems, to watch them for great lengths of time. In fact for months every computer in our studio was running a randomSeed system. The main attraction was observing the different outcomes of the innumerable permutations that were out of our aesthetic control.





detail of both randomSeeds in theatre of restless automata, Aspex Gallery 2005

By slightly varying the machine head instructions we created a huge range of diverse images. For example, the two randomSeed systems within theatre of restless automata have slightly different boundaries. In one system, machine heads leaving the circle return to the opposite side; in the other system they are placed back in the centre. After running both these systems for a couple of months you can appreciate the subtle differences in how the images develop. But however many times we re-launch a system we still find ourselves surprised by the beauty and intricacy of the images.


back to top

How randomSeed works?


As mentioned above the image is manipulated by workers (like ants) or machines (like robotic trucks). Lets imagine these with a hole through the centre revealing the underlying image. Here I will refer to them as machines. Only one pixel is visible through the hole at any time . In randomSeed there are eleven possible pixel colours and our machines have five directional states: up, right, down, left & stationary. At any time a machine will have a colour and direction i.e. (grey & up) or (pink & up) or (yellow & right).

Our machine has a list containing all fifty five possible colour and direction combinations, paired with a new colour and direction. These are the machines rules or program. In the table above all possible combinations are in the left hand side of each column and a randomly assigned colour and direction on the right. Our machine consults this table, replaces the pixel value of the visible square with the new colour and then moves one square along in the direction it was originally facing before changing its direction to the new direction.

This process of change and motion repeats endlessly. As the machines metabolise in their environment they are forced to cope with the changes they have made. As their world becomes increasingly complex so does their motion patterns. If we were to make the image invisible we would see our workers moving around in complex patterns responding to invisible signals like ants following pheromone trails.


back to top

what is a randomSeed?

Apart from the title, 'random seed' refers to random number generation in computers (NB.to avoid confusion in this section, I will refer to randomSeed the work as RS).

Paint specks flicked from a brush appear random. This distinct effect (a 'splatter') is often used by artists who for little investment can achieve an interesting result. In contrast if we placed each speck individually, the process would be laborious. Programmers, who also like economy of effort, may replace randomness arising from the complex physics of brush bristles and paint blobbles, with computer random.



(a) 20 spots with a 4 pixel radius, placed 90 pixels across and 90 pixels down from the top left
(b) 20 spots with a 4 pixel radius, placed at random locations
(c) 20 spots with a random size, shade, outline and location


above we can see how replacing values with random numbers adds to visual complexity.

In RS we are interested in achieving visual complexity, independent of computer random, and more like the apparent randomness of a paint splatter. Dice represent an everyday understanding of random number generation. Random in computers is different, so lets briefly look at how computers generate random numbers. If we take the last number of entry one in the phone book (A1 AAA Cars and Home Insurance 0845 344 0141) we have the number 1. Unless you've read and remembered the same phone book you'll not be able to predict the last number of the next entry (A1 Able Kissograms 023 8032 4333) which is 3. If we repeat this we get an unpredictable, seemingly random sequence of numbers: 1309490140137..... This is pretty close to how computers generate random numbers. If we always use the same phone book, our first number will always be 1 followed by 3 and so on. To prevent predictability we can start from a random location in the book. But how do we randomly select this location? Look at your watch... mine says 12:45 and 52 seconds or 124,552 if we just read the numbers. So now I count the entries until I reach entry 124,552 and start my sequence from here. The number taken from my watch is a 'random seed' and unless the time was 12:45 and 52 seconds when you looked at your watch, your random seed will be different.

When a RS system is launched a random seed is taken from the system clock. Then random numbers generated from this seed are used to set the rules applied to each machine head (the black marks that move around the image changing pixel values). No random numbers are used after this. Every change made to pixel values or movements of machines are rigidly dictated by the rules. Despite this rigidity the systems all eventually generate what appears as randomness. For this reason the randomness experienced in RS is closer to that of the paint splatter than traditional computer random. It emerges from the physical laws that govern the systems behaviour and consequently each launch of the system produces distinct and unique qualities. The use of computer random to set the rules at the start of the program is simply a way of sampling from the huge number of permutations of those rules. It is particularly the complexities within these simple rules that has been of interest to us.

As the rules are applied the systems move through 4 distinct stages:



(1) The heads move in straight lines only occasionally changing direction when they encounter another line. The image looks quite geometric at this point.
(2) The heads start to weave their way along lines or bounce between lines. The line then become quite intricate with small lumps of randomness at many junctions.
(3) The lines and patterns become exceedingly complex and fuzzy randomness steadily spreads out from line junctions until the screen is filled with apparent random noise.
(4) The noise develops a certain uniformity often containing subtle yet distinct ripples and waves.



back to top

randomSeed systems in development
three images taken at different stages during a development of an early randomSeed

This is how we started our investigation by running simple programs that had the potential to create complex imagery. This body of work started in 2002/03 when we undertook a year long new media residency at Artsway, Sway. During this period we explored the relationship between the physical and electronic world, deconstructing programming language to produce computational paper based artworks. Inspired by John Conway a mathematician who in the 70's created the ’Game of Life’ where on an infinite grid (Conway used graph paper) you randomly scatter some counters, these counters are then checked to see if the squares around them have counters. Again there is a rule table which specifies whether the counter stays or goes dependant on how many cells are occupied around it. We decided to compile our own sets of rules on paper - translating our programs into psuedo code we painstakingly executed each line one by one, mapping our movement paths with a pencil. Often we found ourselves emanating complicated and intricate patterns through following simple sets of instructions. Although this method of execution could be quite laborious, by following the rule sets slowly step by step you gained an appreciation of the potentials. We could spend hours thinking of a way to simulate a certain type of movement on paper, then establish some rules that may have this particular outcome. Often, when running these rules we would then find ourselves surprised by the outcome and therefore compelled to rerun them. It was this unpredictability that led us to go back to the computer, by programming these simple sets of rules we could rerun them at a touch of a button. This development opened up a new window of research where we started examining mathematicians work into Cellular Automata and Turing Machines.



a time lapse of an early randomSeed

back to top

illustration of cellular automata

A Cellular Automata (CA), in its original form, is a way of understanding how cells multiply and die. CA’s manifest as software arrangements of squares, often in a grid, that represent cells. Rules are applied to all cells determining their current state. For our purposes we will consider a one dimensional CA, that is one that has all its cells arranged side by side in a line.

Each cell can have a number of states. For our purposes we will keep this at its minimum of two. If we imagine seven cells with the central one, black, or on and all the rest white, or off.



Running the program applies rules to each, potentially changing its state. For example a cell may change to white if a black cell appears on either side. The rules repeat, potentially changing the state of the cells at each iteration. We experience these changes frame by frame temporally. Here the space of this Universe is the cell space and time the perception of change. Alternatively, we could render each iteration in a new row of cells below the previous. In this form the x axis equals space and the y axis time.


Each iteration of the program increases the y axis by one. At every iteration we can perceive the entire history of this universe. In this representation of a CA time and space are interchangeable.

“...in fact the basic notion of extending the idea of position in space to an idea of position in time has been common in scientific thought for more than five centuries."
Stephen Wolfram 'A New Kind of Science'

It is all to easy to simply think of space as the stuff we move around in and time as duration. The interesting quality of the CA’s discussed above is the incredibly intricate patterns revealed as a product of their space-time continuum. Viewed as a static image, time is no longer the perception of change but something more beautiful. In randomSeed the image represents a record of the machines movements and can also be thought of in this way.


back to top

illustration of a Turing machine

We began building randomSeed with principles closely related to CA's. Rather than applying these rules to the whole cell space we applied them to a moving machine head. This is similar to the principles of a Turing Machine. The Turing Machine, conceived by Alan Turing, a British student of mathematical patterns, is a mathematical process that involves reading symbols by moving a head systematically backwards and forwards along an infinitely long tape. This tape would be divided into cells and each cell would be either on or off. In the versions of randomSeed exhibited in theatre of restless automata we changed the principles to be closer to those of a Turing Machine. In this instance rather than confine the tape to a single dimension, the heads are free to move over the image surface.


back to top