I’m not sure if my chosen project will fit exactly into the brief, but I’ve found its recency and its potential to be quite relevant. Cornell recently (4 days ago, to be exact) published an article on the world’s first 3D printed home. An industrial-sized 3D printer is used to pour layers of concrete in toothpaste-like rows. Each row builds upon one another to result in a fully inhabitable two-story home. Apart from the sparing of human labour, this hybrid manufacturing process produces minimal waste, and creates more resilient buildings. The project combines 3D printing technology with more conventional framing methods for the most sound structures. The introduction of this hybrid approach creates great potential for “mass-customized” architectural projects, where advanced fabrication methods strategically combine different materials. These emergent methods will hopefully be able to be scaled up to mixed-use developments and serve as a viable solution to housing shortages.
Author: Anna
Project 03 – Dynamic Drawing
- move the mouse up and down to see changes in color
- move the mouse left and right to change spacing between the squares
let angle = 0;
var size = 100
function setup() {
createCanvas(700, 500);
background(220);
text("p5.js vers 0.9.0 test.", 10, 15);
}
function draw() {
background(50);
//circle in the center
push();
translate(width/2,height/2);
rotate(angle);
fill(mouseX,43,172);
stroke('black');
strokeWeight(5);
rectMode(CENTER);
square(0,0,300);
pop();
//inner ring of circles
for(let a=0; a<radians(360); a+=radians(30)){
push();
translate(width/2,height/2);
rotate(a);
translate(0,size);
rotate(angle);
rectMode(CENTER);
blendMode(MULTIPLY);
fill(mouseY,43,100);
square(0,0,200);
pop();
}
//outer row of circles
for(let a=0; a<radians(360); a+=radians(30)){
push();
translate(width/2,height/2);
rotate(a);
translate(0,size+100);
rotate(angle);
rectMode(CENTER);
blendMode(MULTIPLY);
fill(mouseY,43,172);
square(0,0,200);
pop();
}
//makes it so that the squares don't disappear when mouseX goes to 700
size = max(mouseX/2, 100);
angle += radians(1);
}
LO 2 – Generative Art
For a while, I assumed that for works to be classified under the genre of ‘generative art’, they had to hold a certain level of complexity. I used to picture them as works that completely stray away from all pre-established artistic styles. Manolo Gamboa Naon makes me think otherwise. Through experimentation with basic geometric shapes, his work bridges the world of digital and analog art. In manipulating the most bare artistic elements, Manolo explores the divides between organic and artificial. The fluidity of his works are achieved by approaching the digital surface as a plastic space. Even though this field of generative art may be new to many, historical influences (such as Kandinsky) in his work furthers a sense of relatability. For me, the rhythm and beauty of his works are derived from simple manipulations of color and composition. Even through minor shifts of pattern and placement of shape, Manolo achieves a great range of emotion.
While it may take me a while to understand the specifics of his algorithm, Manolo translates techniques like Decalcomania–a blotting process where paints create a mirror image–into code. Through–presumably–random layering of color, his program creates gradient-like surfaces that each fade into one another. Thus, these digital tools enable him to create levels of fluidity that cannot be achieved with any other analog techniques.
Project 2 – Variable Faces (Dog)
Click through for color and other variable changes
var rightearX = 360;
var rightearY = 240;
var leftearX = 120
var leftearY = 240
var pupilH = 29
var eyebrow = 211
var nose = 120
var tongue = 43
var r = 80
var g= 35
var b= 80
var red = 255
var green = 255
var blue = 255
var beardR = 213
var beardG = 227
var beardB = 244
function setup() {
createCanvas(500, 500);
}
function draw() {
background("white");
noStroke();
//facebase
fill(red,green,blue);
rect(144,150,214,198,50);
//facehood-dark color
fill(r,g,b);
rect(144,150,214,162,50);
//faceeyes
fill(red,green,blue);
rect(176,192,66,111,33);
rect(259,192,66,111,33);
//nose
fill(red,green,blue);
ellipse(249,337,nose,113);
//tongue
fill("red");
rect(229,311,41,tongue,20);
//beard
fill(beardR,beardG,beardB);
quad(195,341,216,363,263,316,242,294);
quad(239,316,260,294,307,341,286,363);
//white eyes
fill("white");
ellipse(209,247,37,41);
ellipse(293,247,37,41);
//darkest color
fill(r,g,b);
//ears
triangle(299,139,383,156,rightearX,rightearY);
triangle(200,139,116,151,leftearX,leftearY);
//pupil
ellipse(208,252,24,pupilH);
ellipse(293,252,24,pupilH);
//eyebrows
rect(189,eyebrow,40,9,5);
rect(274,eyebrow,40,9,5);
//snout
ellipse(250,304,60,34);
}
function mousePressed() {
rightearX = random(350, 390);
rightearY = random(240, 340);
leftearX = random(110,150);
leftearY = random(240,340);
pupilH = random(20,38);
eyebrow = random(200,224);
nose = random(120,150);
tongue = random(43,80);
r = random (0,100);
g = random(0,100);
b = random (0,100);
red = random (100,255);
green = random (100,255);
blue = random (100,255);
beardR = random (200,255);
beardG = random (200,255);
beardB = random (200,255);
}