Project-03-Dynamic Drawing

I wanted to experiment with triangles; when the first run came out okay, I gave it the company of 4 little ones. With the mouse pointer rolling around the screen, the motion is butterfly like.

I would have preferred the colors inside the triangles.

james-dynamicdrawing

//James Katungyi
//Section A 0900
//jkatungy@andrew.cmu.edu
//Assignment-Project-03

//butterfly1
var Wide = 300;
var Space = (310 - Wide);//fix space between triangles
var High = 4*Wide/5;
//butterfly 2,3,4,5
var Wide2 = 120;
var Space2 = (130 - Wide2); //fix space between triangles
var High2 = 4*Wide2/5;

function setup() {
  createCanvas(640, 480);
  background(0);
}

function draw() {
//map canvas background color to mouse X position
    var colR = map(mouseX,0,width,0,255);
    var colG = map(mouseX,0,width,0,0);
    var colB = map(mouseX,0,width,255,0);
    background (colR,colB,colG);
//map triangle base to mouse X & Y position on canvas
//when mouse X is in left half, triangle width reduces
	if (mouseX<=320){
	Wide = map(mouseX,10,320,30,150);
    Wide2 = map(mouseX,10,320,20,60);
    } 
//when mouse X is in right half, triangle width increases
    if ((mouseX>320) & (mouseX<640)){	
	Wide = map(mouseX,320,620,150,300);
    Wide2 = map(mouseX,320,620,60,120);
    }
//when mouse Y is in top half, triangle height reduces
    if (mouseY<=240){
	High = map(mouseY,0,240,20,120);
    High2 = map(mouseY,0,240,10,48);
    } 
//when mouse Y is in bottom half, triangle height increases
    if ((mouseY>240) & (mouseY<480)){	
	High = map(mouseY,240,480,120,240);
    High2 = map(mouseY,240,480,48,96);
    }
//butterfly 1 - center
    push();
    translate(width/2,height/2); //locate origin of triangle canvas at center of original canvas
    triangle(-Wide/2,-High/2,Wide/2,-High/2,0,High/2);//middle triangle
    triangle(-Wide/2-Space,-High/2,-Space-Wide,High/2,-Space,High/2);//left triangle
    triangle(Wide/2+Space,-High/2,Space+Wide,High/2,Space,High/2); //right triangle
    pop();
//butterfly 2 - top left
    push();
    translate(width/4,60); //relocate canvas origin to top left
    triangle(-Wide2/2,-High2/2,Wide2/2,-High2/2,0,High2/2);//middle triangle
    triangle(-Wide2/2-Space2,-High2/2,-Space2-Wide2,High2/2,-Space2,High2/2);//left triangle
    triangle(Wide2/2+Space2,-High2/2,Space2+Wide2,High2/2,Space2,High2/2); //right triangle
    pop();
//butterfly 3 - top right
push();
    translate(width - width/4,60); //relocate canvas origin to top right
    triangle(-Wide2/2,-High2/2,Wide2/2,-High2/2,0,High2/2);//middle triangle
    triangle(-Wide2/2-Space2,-High2/2,-Space2-Wide2,High2/2,-Space2,High2/2);//left triangle
    triangle(Wide2/2+Space2,-High2/2,Space2+Wide2,High2/2,Space2,High2/2); //right triangle
    pop();
//butterfly 4 - bottom left
    push();
    translate(width/4,420); //relocate canvas origin to bottom left
    triangle(-Wide2/2,-High2/2,Wide2/2,-High2/2,0,High2/2);//middle triangle
    triangle(-Wide2/2-Space2,-High2/2,-Space2-Wide2,High2/2,-Space2,High2/2);//left triangle
    triangle(Wide2/2+Space2,-High2/2,Space2+Wide2,High2/2,Space2,High2/2); //right triangle
    pop();
//butterfly 5 - bottom right
push();
    translate(width - width/4, 420); //relocate canvas origin to top bottom right
    triangle(-Wide2/2,-High2/2,Wide2/2,-High2/2,0,High2/2);//middle triangle
    triangle(-Wide2/2-Space2,-High2/2,-Space2-Wide2,High2/2,-Space2,High2/2);//left triangle
    triangle(Wide2/2+Space2,-High2/2,Space2+Wide2,High2/2,Space2,High2/2); //right triangle
    pop();
}

James Katungyi-Looking Outwards-03

Artist: Madeline Gannon, MADLAB.CC

Title: Reverberating across the divide

Year: 2016

‘Reverberating across the divide’ follows a 3 step process – 3D scanning, 3D modeling and 3D printing – to generate complex artifacts. 3D scanning captures and reproduces a real life model in the virtual space. 3D modeling then shapes the artifact around the model, all in virtual space. 3D printing generates the physical artifact. I was impressed by the logical sequence that yields a made-to-measure artifact in such an organic way akin to how nature works.

The algorithms are not shown. Nevertheless I imagine the modeling unit (an octopus was used in the attached video) as a mouse location whose movement is directed by the designers hand but also constrained by the virtual model’s proportions.

The organic flowing movement that is captured – frozen in time – in the printed artifact reflects MADLAB’s successful and seemless interaction between the physical and virtual worlds (MADLAB.CC, 2016).

collar1-front

collar2-front

collar3-frontcropped

 

References:

MADLAB.CC. (2016). Reverberating across the divide. Retrieved 9 13, 2016, from MADLAB.CC: http://www.madlab.cc/reverberating-across-the-divide/

 

JamesKatungyi-Project02-VariableFaces

jameskatungyi-project02-variablefaces

//James Katungyi
//Section A (Tuesdays 9:00)
//jkatungy@andrew.cmu.edu
//Project-02-Variable-Faces

var hairWidth = 240;
var hairHeight = 240;
var LEheight = 20;
var LEwidth = 60;
var REheight = 20;
var REwidth = 60;
var NoseWidth = 30;
var EyeBrowStartY = 305;
 
function setup() {
    createCanvas(480, 640);
    background(135);

}

function draw() {
    //hair
    fill(0);
    ellipse(width/2, 260, hairWidth, hairHeight);
    //face
    fill(175, 135, 0);
    stroke(110);
    strokeWeight(1);
    ellipse(width/2, height/2, 240, 320);
    //more hair
    fill(0);
    noStroke();
    ellipse(width/2, 200, 180, 90);
    //lashes
    stroke(0);
    strokeWeight(4);
    line(270, EyeBrowStartY, 330, 290); //Right brow
    line(210, EyeBrowStartY, 150, 290); //Left brow
    //eyes
    fill(222);
    ellipse(300, height/2, REwidth, REheight); //Right Eye
    ellipse(180, height/2, LEwidth, LEheight); //Left Eye
    fill(45);
    ellipse(300, height/2, 10); //Right pupil
    ellipse(180, height/2, 10); //Left pupil
    //nose
    stroke(240, 150, 0);
    strokeWeight(1);
    fill(200, 135, 0);
    ellipse(width/2, 350, NoseWidth, 60); //bridge
    ellipse(225, 372, 15); //right nostril
    ellipse(255, 372, 15); //left nostril
    //mouth
    stroke(0);
    strokeWeight(1);
    noFill(200, 135, 0);
    curveVertex(195, 400);
    curveVertex(210, 408);
    curveVertex(240, 415);
    curveVertex(270, 408);
    curveVertex(285, 400);
    endShape();
}
 
function mousePressed() {
    // when the user clicks, these variables are reassigned
    // to random values within specified ranges. For example,
    // 'faceWidth' gets a random value between 75 and 150.
    hairWidth = random(240, 360);
    hairHeight = random(240, 360);
    LEheight = random(10, 30);
    LEwidth = random(30, 60);
    REheight = random(10, 30);
    REwidth = random(30, 60);
    NoseWidth = random(20, 40);
    EyeBrowStartY = random(275, 305);
}

A sketch helped. The outcome was close… I had to tamper down initial ambitions.

variablefacedraft

JamesKatungyi-LookingOutwards-02

Printing Porcelain In 3d By Nervous Systems By Nervous System – 01 June 2016

Nervous studio uses generative design inspired by natural phenomena and digital fabrication to make unique art, jewelry and housewares (nervous system inc, 2016).
The process of fabricating a two layered porcelain cup whose outer layer is an organic cellular composition akin to ‘frozen foam of bubbles’ is described on the studio website. The cup is 3D printed with a method called Porcelite using Stereolithography (SLA) which differs from the more common extrusion based or powder 3D ceramic printing. In addition to intricacy and aesthetic appeal, the double skin with air spaces insulates from hot liquids contained in the cup.
The source algorithms are not described on the website. Nevertheless, the allusion to frozen foam of bubbles suggests random ellipses constrained both by minimum and maximum size and spacing.
The suggested algorithm reflects the ethos of Nervous System design studios’ two artistic founders. Generative design captures organic patterns in a way that is impossible using any other means. I always thought of art as incompatible with the rigidity of mathematical formulae. This project dispels that misconception.

Bibliography

nervous system inc. (2016). about us. Retrieved 9 8, 2016, from nervous system: http://n-e-r-v-o-u-s.com/about_us.php

nervous system inc. (2016). printing porcelain in 3D. Retrieved 9 8, 2016, from nervous system: http://n-e-r-v-o-u-s.com/blog/?p=7341

3D-printing porcelite on a Form 2 from Nervous System on Vimeo.

3cups-750x422

imgp1452-750x563

James-01-face

My face in ellipses. Even with 20 ellipses, I never came close. At the very least, there is a hint of a smile!


James_SelfPortrait

function setup() {
    createCanvas(200, 175);
    background(135);

}

function draw() {

    //hair
    fill(0);
    ellipse(100, 80, 115, 130);
    //neck
    fill(175, 135, 0);
    stroke(110);
    rect(70, 145, 60, 40);
    //face
    fill(175, 135, 0);
    noSmooth();
    stroke(110);
    strokeWeight(1);
    ellipse(100, 100, 100, 130);
    //lashes
    fill(0);
    noStroke();
    ellipse(75, 91, 25, 10);
    ellipse(125, 91, 25, 10);
    //more hair
    fill(0);
    noStroke();
    ellipse(100, 40, 75, 52)
    //eyes
    fill(222);
    ellipse(75, 93, 25, 10);
    ellipse(125, 93, 25, 10);
    fill(45);
    ellipse(75, 92, 9, 9);
    ellipse(125, 92, 9, 9);
    //nose
    fill(0)
    ellipse(95, 121, 10, 10);
    ellipse(105, 121, 10, 10);
    ellipse(100, 122, 15, 15)
    fill(200, 135, 0);
    noStroke();
    ellipse(100, 110, 10, 30);
    ellipse(100, 121, 15, 15);
    fill(200, 135, 0);
    noStroke();
    ellipse(94, 120, 10, 10);
    ellipse(106, 120, 10, 10);
    //mouth
    fill(0);
    noStroke();
    ellipse(100, 138, 30, 6);
    fill(175, 135, 0);
    noStroke();
    ellipse(100, 135, 30, 9);
    //ears
    fill(175, 135, 0);
    noStroke();
    ellipse(50, 100, 15, 30);
    ellipse(150, 100, 15, 30);



	

}

JamesKatungyi-LookingOutwards-1

The hortum machina is a dynamic geodesic space frame driven by plant reaction to external stimuli. Plant trays at the core of the frame move outwards when the driving system detects plant need for light. The tray movement displaces the space frame’s center of gravity causing the frame to roll.

The hortum machina explores an organic engine for dynamism in the mostly static field of buildings structures. It portends a future of dynamic building elements.

The use of multiple sensors to measure the electrophysiological state of the plants and thereby trigger movement of the plant trays is impressive.

In its current state, however, it is still an unwieldy and unsafe prototype with no conceivable direct application.

The project makers based their creation on Buckminster Fuller’s 1968 publication ‘Operating Manual for Spaceship Earth’ about sustainable use and care of the earth’s finite resources; going further to explore interaction between people and nature.