Project 02

This is my variable face project

this is my project

sketch
// Natalie Koch; Section A

function setup() {
    createCanvas(480, 640);
    background(0);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    background(132,200,180);
    fill(0)
    ellipse(240,310,420,410) //back of hair
    fill(255,208,172)
    ellipse(90,350,50,70) //left ear
    ellipse(390,350,50,70) //right ear
    rect(175,400,125,200) //neck
    ellipse(width/2,height/2,300,350) //head
    fill(197,220,222) 
    rect(90,250,125,100) //left glasses lens
    rect(265,250,125,100) //right glasses lens
    fill(255,208,172) 
    rect(205,345,70,30) //nose
    fill(0)
    line(215,275,265,275) //glasses bridge
    line(190,420,290,420) //mouth
    rect(90,200,300,50) //bangs
    ellipse(240,175,275,100) //bangs
    fill(255)
    rect(140,260,65,20) //glasses light flare
    rect(315,260,65,20) //glasses light flare
    fill(81,89,66)
    ellipse(240,639,500,150) //shirt

if (mouseIsPressed) {
    background (180,39,8)
    fill(0)
    ellipse(240,310,420,410) //back of hair
    fill(255,208,172)
    ellipse(90,350,50,70) //left ear
    ellipse(390,350,50,70) //right ear
    rect(175,400,125,200) //neck
    ellipse(width/2,height/2,300,350) //head
    fill(33,13,5)
    ellipse(width/2,430,140,50) //mouth
    fill(255)
    rect(190,405,100,20) //teeth
    fill(0)
    rect(90,200,300,50) //bangs
    ellipse(240,175,275,100) //bangs
    fill(81,89,66)
    ellipse(240,639,500,150) //shirt
    fill(255)
    ellipse(155,300,70,60) //eye base
    ellipse(330,300,70,60) //eye base
    fill(0)
    ellipse(160,295,40,40) //pupil
    ellipse(325,295,40,40) //pupil
    fill(197,220,222)
    rect(90,320,125,100) //left glasses lens
    rect(265,320,125,100) //right glasses lens
    line(80,300,90,370) //left earpiece
    line(390,370,400,300) //right earpiece
    fill(255,208,172)
    rect(205,345,70,30) //nose
    fill(255)
    rect(140,330,65,20) //glasses light flare
    rect(315,330,65,20) //glasses light flare
    ellipse(170,290,20,20) //eye light flare
    ellipse(340,290,20,20) //eye light flare
    fill(70,43,15)
    ellipse(150,200,80,40) //eyebrows color
    ellipse(325,200,80,40) //eyebrows color
    fill(0)
    ellipse(150,210,70,30) //eyebrows cover
    ellipse(325,210,70,30) //eyebrows cover (i don't know how to code arcs!)
}
}

Project 01

This is my project

sketch
//Natalie Koch; Section A

function setup() {
    createCanvas(200, 300);
    background(0);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    background(72,85,101);
    fill(167,153,86)
    ellipse(width/2,170,180,230)
    fill(231,213,165)
    rect(80,150,40,150)
    ellipse(width/2,height/2,125,150);
    triangle(100,150,92,180,108,180)
    fill(174,149,186)
    ellipse(100,299,199,100)
    fill(255)
    ellipse(70,150,28,28)
    ellipse(130,150,28,28)
    fill(122,136,170)
    ellipse(70,150,15,15)
    ellipse(130,150,15,15)
    fill(0)
    ellipse(70,150,8,8)
    ellipse(130,150,8,8)
    fill(255)
    ellipse(72,148,5,5)
    ellipse(132,148,5,5)
    fill(201,147,157)
    ellipse(100,200,40,10)
    fill(0)
    line(55,130,75,127)
    line(125,127,145,130)
    line(80,199,120,199)
}

Looking Outwards-01

A creative computing project that I really admire are the Immersive Van Gogh Exhibits that have been in multiple cities. I love these immersive art installations because everyone there gets put into the art, surrounded by it, while also being told a narritive story with the works. These exhibites were designed by Massimiliano Siccardi in France, who has worked towards making projects like these for the past thirty years. To my knowledge, these installations were made by scanning Van Gogh’s paintings and using animation to then project them onto the walls. I think the creators would have been inspired by animatated works, but the invention in and of itself is fairly revolutionary. This opens up opportunities for immersive exhibits to be made for other artists as well, like people have already started doing with Monet’s works now. The purpose of these is to bring art to audiences everywhere in a new and exciting way, and it has been wildly successful.
https://www.immersivevangogh.com

LO: My Inspiration

There is this generative artist and software developer Lulu xXX who created this work of art called “Take me to the moon”. I don’t know how long it took them to make it but they design intimate and feminine artwork focusing on using 3D modeling and CGI. They build their own tools using custom/open-sourced code. They focus on beauty and iconography, which uses these visual images and symbols and helps us study the interpretation of them. Further, they use “optical flow analysis” to capture motion in their art and start generating this pixel aesthetic. I think this type of computational art is super important in understanding how activism and aesthetics and technology work together. Especially in modern times, its further important to look at how we can express women and cultures in a way that’s expressive and beautiful.

https://makersplace.com/luluxxx/feed/

Project – 02

//Katie Makarska
//Section C

var eyeWidth = 20;
var eyeHeight = 20
var faceWidth = 100;
var faceHeight = 150;
var smileWidth = 80;
var smileHeight = 40;

function setup() {
createCanvas(300, 300);
bgColor = color( random(255), random(255), random(255));
}

function draw() {
background(bgColor);
//eyes
ellipse(width / 2, height / 2, faceWidth, faceHeight);
var eyeLX = width / 2 – faceWidth * 0.25;
var eyeRX = width / 2 + faceWidth * 0.25;
ellipse(eyeLX, height / 2, eyeWidth, eyeHeight);
ellipse(eyeRX, height / 2, eyeWidth, eyeHeight);
//smile
var smile1 = width/2 – faceWidth *0.01;
var smile2 = width/2 + faceHeight *0.25;
arc(smile1, smile2, smileWidth, smileHeight, 0, PI);

//random colors
r = random(50, 255);
g = random(100,200);
b = random(100, 200);

}

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.
faceWidth = random(90, 150);
faceHeight = random(100, 200);
eyeWidth = random(10, 30);
eyeHeight = random(10, 30);
smileWidth = random(50, 80);
smileHeight = random(20, 40);
//random face color
fill(r, g, b);
//random background color
bgColor = color( random(255), random(255), random(255));

}

Blog – 02

I am most inspired by Frieder Nake’s generative artwork. I admire the sharpness of his work the most because it makes for a very neat finished product that one could admire for hours. Although he mostly uses straight lines and geometric shapes, he also uses layering often to create more dimension in his artwork. Additionally, I enjoy his use of varying colors and stroke weights because when different colors and stroke weights are layered together it introduces a completely new color to the artwork depending on the values of each. Nake uses an algorithmic approach to his computer art, with perhaps some randomness weaved in as well. He identifies as a mathematician, which most likely translates to his work in the form of arithmetic algorithms which he could have imbedded into if-statements, or written by themselves. I suppose Nake used if-statements to determine where to draw the next shape, or where to switch the colors, which might have depended on the position of the shape/color on the page.

By: Katie Makarska

no title 1967 Frieder Nake born 1938 Presented by Tate Members 2013 http://www.tate.org.uk/art/work/P80817

Project 2

project 2

sketch

var eyeSize = 20;
var faceWidth = 300;
var faceHeight = 250;
var counter = 1;
var hatH = faceHeight/1.5;
var bodyR = 90;
var bodyG = 100;
var bodyB = 90;
var eyeY = 3;
var eyeX = 1;
var faceR = 90;
var faceG = 100;
var faceB = 90;
var hatR = 140;
var normFaceR = 255;
var normFaceG = 220;

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

function draw() {
    strokeWeight(1);
    stroke(0);
    background(20,160,190);
    if(counter >= 1 & counter < 2){
    //body
    fill(bodyR,bodyG,bodyB);
    circle(width/2,height-50,500);
}
    //face
    fill(normFaceR, normFaceG, 177);
    ellipse(width / 2, height / 2, faceWidth,  faceHeight);
    var eyeLX = width / 2 - faceWidth * 0.3;
    var eyeRX = width / 2 + faceWidth * 0.3;
    strokeWeight(3);
    fill(250,250,250);
    //eye
    ellipse(eyeLX, height / 2-10, eyeSize*2, eyeSize-5);
    ellipse(eyeRX, height / 2-10, eyeSize*2, eyeSize-5);
    fill(70,30,20);
    circle(eyeLX, height / 2-10, eyeSize/2, eyeSize/3);
    circle(eyeRX, height / 2-10, eyeSize/2, eyeSize/3);

   
//cowboy 
    if (counter >= 1 & counter < 2){
        noStroke();
        fill(hatR,75,0);
        rect(width/2-60,height/2-faceHeight/2-hatH,120,hatH)
        ellipse(width/2,height/2-faceHeight/2,faceWidth-50,40);
       //facial hair
        strokeWeight(5);
        stroke(140,110,100);
        noFill();
        curve( width/2-faceWidth/2 + 30, height/2 -100,
        width/2-faceWidth/2 + 50, height/2 -50,
        width/2-faceWidth/2 + 80, height/2 -50,
        width/2-faceWidth/2 + 110, height/2 -30);
        curve( width/2+faceWidth/2 + 30, height/2 -100,
        width/2+faceWidth/2 - 50, height/2 -50,
        width/2+faceWidth/2 - 80, height/2 -50,
        width/2+faceWidth/2 - 110, height/2 -30);
        stroke(200,20,30);
        fill(200,20,30);
        //mouth
        curve(width/2-faceWidth/2 + 110,height/2-70
        ,width/2-50,height/2+30
        ,width/2+50,height/2+30,
        width/2+faceWidth/2 ,height/2-30);
        //arms
        fill(20);
        stroke(10);
        strokeWeight(5);
        curve(width/2 - 150, height/2+100,
        width/2-200,height/2+150,
        width/2-100,height-20,
        width/2-40, height-50);
        curve(width/2 + 150, height/2+100,
        width/2+200,height/2+150,
        width/2+100,height-20,
        width/2+40, height-50);

    }

//alien
     if (counter >= 2 & counter < 3){
        strokeWeight(8);
        stroke(50,210,150);
        line(width/2,height/2-faceHeight/2, width/2, faceHeight/10+30);
        fill(mouseX,mouseY,mouseX);
        ellipse(width/2, faceHeight/10+30, faceWidth/5, faceHeight/3);
        fill(faceR,faceG,faceB);
        ellipse(width / 2, height / 2, faceWidth,  faceHeight);
        //eye
        fill(0,50,10);
        noStroke();
        ellipse(eyeLX+30, height / 2-10, eyeSize*eyeX, eyeSize*eyeY);
        ellipse(eyeRX-30, height / 2-10, eyeSize*eyeY, eyeSize*eyeX);
        fill(0);
        ellipse(eyeLX+30, height / 2-10, eyeSize*eyeX-5, eyeSize*eyeY-5);
        ellipse(eyeRX-30, height / 2-10, eyeSize*eyeY-10, eyeSize*eyeX-10);
        //body
        stroke(0);
        strokeWeight(1);
        fill(0,faceG-80,faceB+50);
        triangle(150,height/2+150,width-150,height/2+150,width/2,height-20);
        //arms
        fill(0,200,0);
        stroke(0,200,0);
        strokeWeight(1);
        curve(width/2 - 60, height/2+100,
        width/2-200,height/2+150,
        width/2-30,height-80,
        width/2-40, height-50);
        line(width/2-30,height-80,width/2-50,height-60);
        curve(width/2 + 60, height/2+100,
        width/2+200,height/2+150,
        width/2+30,height-80,
        width/2+40, height-50);
        line(width/2+30,height-80,width/2+50,height-60);
        //mouth
        fill(20,200,200);
        strokeWeight(2);
        stroke(30,100,500);
        rect(width/2-faceWidth/6,height/2+faceHeight/6,faceWidth/3,faceHeight/20);

   }

   //crazy

    if(counter < 1){
        background(200,50,50);
        fill(200,50,90);
        ellipse(width / 2, height / 2, faceWidth+random(20,50),  faceHeight+random(20,50));
        fill(255);
        //body
        stroke(0);
        strokeWeight(1);
        fill(0,faceG-80,faceB+50);

        //

        fill(255);

       //eye
        ellipse(width / 2, height / 2, faceWidth,  faceHeight);
        ellipse(eyeLX+30, height / 2-10, random(30,50),random(40,80));
        ellipse(eyeRX-30, height / 2-10, random(30,50),random(20,80));
        fill(random(10,80),random(100,255),random(150,255));
        ellipse(eyeLX+30, height / 2-10, random(30,50)-10,random(40,80)-10);
        fill(random(150,255),random(10,80),random(150,205));
        ellipse(eyeRX-30, height / 2-10, random(30,50)-10,random(20,80)-10);
        fill(random(30));
        ellipse(eyeLX+30, height / 2-10, 10,10);
        ellipse(eyeRX-30, height / 2-10, 10,10);
        //brows
        line(width/2-80,height/2-random(60,100),width/2-random(20,40),height/2-20);
        line(width/2-80,height/2-random(60,100),width/2-random(20,40),height/2-20);
        line(width/2+80,height/2-random(60,100),width/2+random(20,40),height/2-20);
        line(width/2+80,height/2-random(60,90),width/2+random(10,50),height/2-20);
        //nose
        fill(random(100,255),50,50);
        ellipse(width/2-10,height/2+30,10,20);
        ellipse(width/2+10,height/2+30,10,20);
        //mouth
        curve(width/2-faceWidth/2 + random(90,120),height/2+100
        ,width/2-50,height/2+random(60,80)
        ,width/2+50,height/2+random(60,70),
        width/2+faceWidth/2 ,height/2+random(90,120));
        //body
        fill(20,20,20);
        triangle(width/2,height/2+130, random(50,100),random(height-50,height),width-random(50,100),random(height-50,height));
        //arms
        curve(width/2 - 150, height/2-100,
        width/2-random(190,210),height/2-150,
        width/2-100,height-30,
        width/2-40, height-50);
        curve(width/2 + 150, height/2-100,
        width/2+200,height/2-150,
        width/2+random(90,110),height-30,
        width/2+40, height-50);
    }

}
 
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.
    faceWidth = random(300, 400);
    faceHeight = random(190,270);
    eyeSize = random(15, 30);
    counter = random(0,3);
    bodyR = random(100,110);
    bodyG = random(100,160);
    bodyB = random(30,150);
    faceR = random(20,80);
    faceG = random(100,250);
    faceB = random(100,110);
    eyeY = random(1,6);
    eyeX = random(0.5,2);
    hatR = random(100,255);
    normFaceR = random(210,255);
    normFaceG = random(190,220);
}

Blog 02

For this blog, I decided to study the work of Michael Hansmeyer. Specifically, “Subdivided Columns – A New Order (2010)”. For me, the mixture of generative art and architectural forms have always interested me. Generative art and modeling’s ability to create unthinkable forms like the columns he created has been something I’ve explored on my own as an architecture student. I’ve experimented with creating unusual structures and forms that promote different feelings which I can connect with in his project, even if evoking different feelings with the columns was not a primary goal of his. I suppose that to create these bizarre forms, CAD softwares like GrassHopper. While it appears as if a column is put into modeling softwares and randomized, there is actually intentionality behind his results. Based on articles analyzing the project, the purpose of the exploration is to push imagination and create forms that inspires and activates further investigation into specific potentials of the forms with more intentionality, and with that, create these “subclasses” that create more variations of the column with certain constraints and desires.The artist’s artistic choices appears in the project in the forms of very complex geometries and symmetries. 

https://www.michael-hansmeyer.com/subdivided-columns

Looking Outwards 02: Generative Art

Link: http://sansumbrella.com/works/2011/drawing-water/
David Wicks
Drawing Water
Spring 2011

I think the project “Drawing Water” by David Wicks is a very impressive and amazing work.

1. Regarding the project, what do you admire about it, and why do you admire these aspects of it?

Firstly, on the aspects of aesthetics, the works are very visually impressive and pleasing. The images have so many details–The strokes are so delicate and look like the strokes of pencils. The combination of colors, shades and the background is very comfortable as well–blue and white, or blue and black. They present the pattern of the flow of water nicely. What’s more, what makes it admirable is that the visual representations are dynamic. That is to say, the patterns or colors can change according to the amount of rainfall.

2. What do you know (or what do you suppose) about the algorithm that generated the work?

The algorithm that the artist used is related to water resources (“the amount of rainfall”, “where waterfalls” and “where it is consumed within the United States”). The further the rainfall, the darker or whiter the color.


3. In what ways are the creator’s artistic sensibilities manifest in their algorithm?

The paths are created based on real-life data of waterfalls, but the creator also adds his imagination when trying to show the pattern of the flow of water. That is to say, David Wicks turns the data of rainfalls into visual representations–by showing the flowing patterns of water and showing the number of rainfalls through those beautiful lines.