My inspiration for this assignment came from two sources:
- A quote that “success isn’t linear”,
- Casey Reas’ talk on Chance.
Now, let me explain what I mean.
Human brains are wired in a way to notice only up’s of certain experiences (Kahneman, “Thinking, Fast and Slow”). When looking at success stories of other people, it is oftentimes tempting to simplify their path into a mere collection of linear dots and draw a straight line connecting all. This is why I wanted to challenge this notion through my Processing code, but most importantly, to make a kind reminder to myself, too 🙂
So I took out my iPad and started drawing the image that I was bearing in my head. After looking at some of the examples from the syllabus, I started off with simple, straight lines that were forming a rectangular pattern all throughout the setup window. Then, I decided to add random red lines throughout the screen to perform in a noise-like pattern. All these straight lines serve as a metaphor to a “linear path”.
While I was implementing my sketch into code, I was listening to the Casey Reas’ talk on Chance which made me think a lot about random chances and possibilities in the meanwhile. I started playing around with my Processing code, challenging this “chance” to finally show in my work. Aaand…it did!
While I was taking this chance, one of my functions stopped working the way I expected it to work, and started to make a blinking effect on the screen instead. I took this as an opportunity to explore my options and made a slight shift to the initial idea.
It took me a while and a lot of web browsing to figure out how to place the red lines on the screen – however, all to turn the intended lines into rectangles and visit the class-example with the noise function and implement a similar one in my code.
So, in the very end, I got the following interpretation: in a black-and-white world where everything seems so linear, sometimes you have to be a red rectangle and take a step back to build your own, non-conventional path.
float x_width, y_height; float x_coordinate, y_coordinate; float x_center, y_center; float lineX, lineY; void setup(){ size(640, 480); x_width = 10; y_height = 10; x_coordinate = 10; y_coordinate = 10; x_center = width/2; y_center = height/2; } void redNoise(){ float freq; float angle; push(); fill(255, 0, 0); noStroke(); for (int x = 0; x<width; x+=50){ freq = frameCount*.01 + x*.001; angle = noise(freq); rotate(angle); //rect(x_center, y_center, x_width + 40, y_height + 60); rect(mouseX, mouseY, x_width + 40, y_height + 60); } pop(); } void drawLines() { // Section with rectangles for (int i = 0; i < width; i++){ rect(i, y_coordinate, x_width, y_height); rect(width-i, i, x_width, y_height+15); } for (int j = 0; j < height; j++) { rect(x_coordinate + 80, j, x_width, y_height); } // Section with horizontal lines/rectangles int numTotal = 10; for (int rowNum = 0; rowNum < numTotal; rowNum++) { for (int d_width = 0; d_width < numTotal*6; d_width+=5) { rect(3*width/4 + d_width, y_coordinate + 50, 0.5, y_height + 140); rect(width/4 + d_width, y_coordinate + 120, 1, y_height+30); rect(width/2 + d_width, y_coordinate + 320, 1.5, y_height+75); } } // Section with vertical lines/rectangles for (int colNum = 0; colNum < numTotal; colNum++) { for (int d_height = 0; d_height < numTotal*4; d_height+=3) { rect(3*width/4-50, y_coordinate + 30 + d_height, x_width + 100, 0.5); rect(width/8, y_coordinate + 300 + d_height, x_width + 70, 0.3); } } } // Blinking function that worked accidentally void blink(){ for(int i = 0; i < width; i++) { stroke(random(255), 100); line(random(0, width), height/8, i, height/8); } } void draw() { background(255); drawLines(); redNoise(); blink(); }