I began this project by playing around with loops to experiment with different forms. However, I later realized the loops could be used to create interesting environments with “perspective lines.” I decided to run with this and create an empty room with a door at the end. The color changing with the position of the mouse give a sense of dimension and personalization.
string art etfunction setup() {
createCanvas(400, 300);
background(0);
}
function draw() {
spacing = 20;
red = mouseX;
blue = mouseY;
for (var a = 0; a <= 600; a += spacing) {
// sloped plane
stroke(255);
strokeWeight(0.5);
line(0, a, a, 200);
// vertical grid
stroke(red, 0, 200);
line(a, mouseX, a, a);
}
for (var a = width/3; a <= width; a += spacing/2) {
//bg diagonals
stroke(red, 255, blue);
line(a, 0, 2*a, 200);
line(2*a, 200, a, 200); //2 sets of lines converge at horizon
}
//door
stroke(red, 255, blue);
strokeWeight(1);
fill(0);
rect(width/2, height-200, 50, 100);
//doorknob
circle(width/2+40, height-150, 5);
}