For the first iteration, I used two for loops to call the void face() function I created and duplicate a face across the screen in a grid. Additionally, I made it so the faces would constantly change color.
int a = 0; int b = 50; int c = 200; void setup() { size(600, 600); colorMode(HSB,255); } void draw() { background(100,150,200); pushMatrix(); for(int i=0; i<width*4; i+=100){ for(int j=0; j<height*4; j+= 100){ face(i,j); } } popMatrix(); } void face(int _x, int _y) { fill(a,b,c); a++; b++; c++; if (a==255) { a=0; } if (b==255) { b=50; } if (c==255) { c=200; } circle(_x-30,_y-80,15); circle(_x+30,_y-80,15); arc(_x,_y-50,80,80,0, PI); }
For the second iteration I just change the for loops to a simple if() statement which mapped the faces to the movement of the mouse.
int a = 0; int b = 50; int c = 200; void setup() { size(600, 600); background(0); colorMode(HSB,255); } void draw() { pushMatrix(); if(mousePressed){ face(mouseX,mouseY); } else if (keyPressed) background(0); popMatrix(); } void face(int _x, int _y) { fill(a,b,c); a++; b++; c++; if (a==255) { a=0; } if (b==255) { b=50; } if (c==255) { c=200; } circle(_x-30,_y-80,15); circle(_x+30,_y-80,15); arc(_x,_y-50,80,80,0, PI); }
For the third iteration, I went back to a for loop and randomized the positions of the faces so they would flash around the screen randomly.
int a = 0; int b = 50; int c = 200; void setup() { size(600, 600); colorMode(HSB,255); } void draw() { background(0); pushMatrix(); for(int i=0; i<100; i++){ rotate(random(0,PI)); face(random(0,width), random(0,height)); } popMatrix(); } void face(float _x, float _y) { fill(a,b,c); a++; b++; c++; if (a==255) { a=0; } if (b==255) { b=50; } if (c==255) { c=200; } circle(_x-30,_y-80,15); circle(_x+30,_y-80,15); arc(_x,_y-50,80,80,0, PI); }
1.
I think that the first iteration was somewhere in between static and dynamic-passive since the only thing changing on the screen was the color of the faces. The second interaction was dynamic-interactive since it involved the user using the mouse to draw. The final iteration was dynamic-passive since the user wasn’t changing anything about the art, it was just a bunch of faces scrolling around the screen. I think that I could use Arduino to maybe include a controller. I could use the movement of a joystick to have the faces swarm around a cursor, for example.
2.
I think that the joystick would be very helpful in this case, since it essentially functions as a mouse but is easier to use for drawing. In addition, maybe something like a sound sensor would be cool to use in addition to a joystick or mouse so that the faces are only drawn when the user speaks into the sensor.
3.
Something that’s been in the back of my mind since the midterm group research project was a way to translate spoken language automatically. While my research didn’t exactly take me there, I did find a processing article on sound that piqued my interest and gave me some ideas for other projects. First, I learned that processing has multiple oscillators for creating all the essential waveforms used in synthesizers. Second, I learned that processing also has effects such as high pass and low pass filters, reverb, and delay, which are all extremely important in sound design. Using these aspects, I could possibly make my own music production system using processing and Arduino. In processing, I could create all the necessary sound design aspects, and using Arduino I could create a midi controller to play the sounds synthesized in processing.