function setup() {
smooth();
createCanvas(1400, 1000);
background(232, 232, 228);
}
function draw() {
// BG
noStroke();
let w = random(175, 1200);
let l = random(150, 850);
let r = random(200);
let blue = [135, 206, 250];
let yellow = [255, 219, 88];
let red = [255, 64, 64];
let cols = [blue, yellow, red]
fill(random(cols));
circle(w, l, r);
// eye whites
x = 825
fill(255);
rect(200, 250, 150, 200);
rect(200+x, 250, 150, 200);
bezier(200, 450, 200, 600, 350, 600, 350, 450);
bezier(200+x, 450, 200+x, 600, 350+x, 600, 350+x, 450);
// eyes
noFill();
stroke (0);
strokeWeight (10);
line(200, 250, 200, 450);
line(350, 250, 350, 450);
bezier(200, 250, 200, 100, 350, 100, 350, 250);
bezier(200, 450, 200, 600, 350, 600, 350, 450);
line(200+x, 250, 200+x, 450);
line(350+x, 250, 350+x, 450);
bezier(200+x, 250, 200+x, 100, 350+x, 100, 350+x, 250);
bezier(200+x, 450, 200+x, 600, 350+x, 600, 350+x, 450);
// eye colors
stroke(0);
fill(242, 246, 197);
bezier(185, 575, 200, 525, 350, 525, 365, 575);
bezier(185+x, 575, 200+x, 525, 350+x, 525, 365+x, 575);
// pupil
fill(0);
ellipse(240, 325, 80, 110);
ellipse(240, 410, 80, 110);
ellipse(310+x, 325, 80, 110);
ellipse(310+x, 410, 80, 110);
// eyelid colors
noStroke();
fill(242, 246, 197);
rect(195, 250, 160, 40);
rect(195+x, 250, 160, 40);
stroke(0);
bezier(195, 250, 195, 100, 355, 100, 355, 250);
bezier(195+x, 250, 195+x, 100, 355+x, 100, 355+x, 250);
// eyelids
stroke(0);
line(195, 290, 355, 290);
line(195, 250, 195, 290);
line(355, 250, 355, 290);
noFill();
line(195+x, 290, 355+x, 290);
line(195+x, 250, 195+x, 290);
line(355+x, 250, 355+x, 290);
// eyebrows
fill(0);
rect(125, 130, 300, 80, 40, 40, 40, 40);
rect(125+x, 130, 300, 80, 40, 40, 40, 40);
// nose
fill(242, 246, 197);
bezier(700, 525, 850, 505, 850, 630, 700, 610);
// lip colors
fill(255, 64, 64);
noStroke();
bezier(275, 700, 150, 700, 150, 850, 275, 850);
bezier(275+x, 700, 400+x, 700, 400+x, 850, 275+x, 850);
rect(275, 700, 825, 150);
// mouth
stroke(0);
line(275, 700, 275+x, 700);
line(275, 775, 275+x, 775);
line(275, 850, 275+x, 850);
noFill();
bezier(275, 700, 150, 700, 150, 850, 275, 850);
bezier(275+x, 700, 400+x, 700, 400+x, 850, 275+x, 850);
}
Author: sean!
LO-01 (my inspiration)
Urban Imprints by STUDIO INI was an interactive piece that aimed to fight the preconception of rigid urban ‘walls’ that restrict human expression and individuality. The piece was created through a system of pulleys and flexible custom shaped wooden mesh surface that responded to human movement. When movement was detected towards the surface, it would retract and move away from the person, in effect, acting as a living organism celebrating human interaction instead of restricting it. The use of a custom piece of code is not confirmed, but I assume some sort of program must have been created in order for this level of interaction to take place. This work enables a new way for designers to consider interactive elements as part of a feasible options and could be used in new and innovative ways.
http://www.nassia-inglessis.com/works-recent#/urban-imprint-1/