# Computer-generated wall pieces

Part of my studio research has involved making wall-based pieces and writing computer programs to guide me in the generation of the shapes. I based this on a simple grid format; screws set into the wall had lengths of coloured wool wrapped around and I used the program to plot the path the wool would take from one point to another. By making changes to the computer code I was able to vary how the paths were generated, sometimes only allowing vertical and horizontal lines and sometimes diagonals. I was also able to make the program favour a particular side or corner of the grid. Below is an example of one of the programs running.

//Info: http://processingjs.org/reference
// draw 18 x 14 grid, when key pressed draws a random line from
// one nail to another, alternating between horizontal and vertical

int nailx =40;
int naily =40;
int count = 1;

void setup() { // draw nails on wall 18 * 14 grid
frameRate(2);
size (680, 520);
background(32, 16, 16);
smooth();
drawgrid();
}

void draw() {

drawgrid(); // red circle first, then blue
rolldiceX();
dicey=0;
linewalk();
fill (200, 0, 0);
noStroke();
ellipse(x2, y2, 6, 6);

rolldiceY();
dicex=0;
linewalk();
fill (0, 0, 200);
noStroke();
ellipse(x2, y2, 6, 6);

if (count == 100) {
background(32, 16, 16);
count=1;
}
count = count+1;
}

void keyPressed() {
}
void drawgrid() {
smooth();
noStroke();
fill (160, 220, 230);
for (nailx=40; nailx<width;nailx = nailx+ 40) {
for (naily=40; naily=width){ // keeps line inside box
x2 = x2-((int)random(3,4)*40);
}
if (x2=height){
y2 = y2 -((int)random(3,4)*40);
}
if (y2<=0){
y2 = y2 +((int)random(3,4)*40);
}

line (x1,y1,x2,y2);

x1=x2;
y1=y2;
}

These are some examples of the imagery generated by the programs, along with the wall pieces based on them. I found this a useful way of exploring the issues of artistic labour and authorship.

# Embedding Processing sketches

This is my first attempt at embedding a processing sketch into a webpage (many thanks to Paul Green for showing me how)

Here’s what to do;

PressĀ left mouse button to generate a shape

Press right mouse button to darken the image

Press any key to start over

//Info: http://processingjs.org/reference

void setup() {
size (600, 440);
background(10, 15, 15);
smooth();
frameRate(2000);
}

void draw() {
}

void mousePressed() {
if (mousePressed &&(mouseButton == RIGHT)) { // subtle eraser
stroke (random(10,20),random(10,20),random(10,20),(random(17,23)));
int x1 = ((int)random(1, width));
int y1 = ((int)random(1, height));
for (int count = 0; count < 30000; count ++) {

linewalk();
}
}
if (mousePressed &&(mouseButton == LEFT)) {

int xx1 = (mouseX);
int yy1 = (mouseY);

int wwidth = ((int)random(10, 110)); // adjust rectangle size
int xright = xx1+wwidth;
int xleft = xx1-wwidth;
int hheight = ((int)random(10, 70)); // adjust rectangle size
int ydown = yy1+hheight;
int yup = yy1-hheight;

colourpick(); // pick random colour for lines
scale = (hheight*wwidth); // makes larger rectangles denser
if(scale 7000) {loop=30000;}

for (int count = 0; count =xright) { // keeps line inside box
xx2 = xx2-((int)random(15, 20));
}
if (xx2=ydown) {
yy2 = yy2 -((int)random(15, 20));
}
if (yy2=width) { // keeps line inside box
x2 = x2-((int)random(15, 20));
}
if (x2=height) {
y2 = y2 -((int)random(15, 20));
}
if (y2<=0) {
y2 = y2 +((int)random(15, 20));
}

line (x1, y1, x2, y2);

x1=x2;
y1=y2;
}