Coding and Processing

Inspired by the colours and iterational nature of Andy Warhols Pop Art pieces, I have looked into exploring repetition and variation based on these pieces.

My processes are dynamic works that contain eight rows of circles which are all aligned and uniform and change colour and size rapidly. They are all copies of each other, only different when viewed on top of their predecessors.

However, I have allowed the user to be able to interact and smudge their uniform works, in much the same way that Andy Warhol’s “Marilyn Diptych, 1962” does. As it repeats more and more, the smudges and blurs from the mechanical process become apparent. By moving the mouse, the user places large black and white dots across the page that slowly fade by leave a remnant of themselves.

Very similarly to William Raben’s ” 2’45” ” from 1973, the process of the repetition is what leads to the artwork being created. This repeated process is what creates the work, both in my own code and in Raben and Warhol’s.

Code:

void setup() { //
size(1920, 1080);
loop(); background (0); //Basic setup. Set’s the background to black and the size of the frame.
}

void draw() { //Let’s begin drawing something.

int diameter = (int)random(50); //These randoms make the code look interesting and fun, choosing different sizes between 0 and 50.
int rows = 8; //these make the rows align themselves into eight groups.
int cols = (int)random(100); //Random amount of ellipses per collumn.
int b = (int)random(255);
int a = (int)random(255);
int c = (int)random(255); //Integers to be used for colouring the ellipses.

fill(255, 10); // semi-transparent white
rect(0, 0, width, height); //Since it’s transparent, the whiteish rectangle is greyed by the background. Makes the moving ellipses look cooler.

fill(random(255)); //Random shades of black and white, no colour.
ellipse(mouseX, mouseY, 100, 100); //Motion blurred black-white ellipses that follow the mouse.
fill(b, c, a, 100); //Colours of the circles are randomised by the integers, opacity stays full.
stroke(b, c, a, 50); //Stroke follows same conventions as fill.
for (int x = 0; x < rows; x++) { //Integer for use with the ellipses, helping define where they fit in the rows, and making them fills the collumns
for (int y = 0; y < cols; y++) {
ellipse((x+1)*(width/(rows+1)),(y+1)*(height/(cols+1)),diameter,diameter); //ellipses that are governed by the aforementioned parameters.
}
}
}

//End of Code

Sources of code examples:

https://amnonp5.wordpress.com/2012/01/28/25-life-saving-tips-for-processing/