LO 3: Computational Fabrication

I am looking at a concept model created by Zaha Hadid architects of a building
I think parametric modeling in architectural digital fabrication can create amazing building and structural designs. In the example of the model, I am intrigued by the way the shape moves and contorts as it moves up the building. It would be challenging to hand draw this model and with dFab tools, it is also easy to adjust the algorithm behind it to easily create new shapes. In architecture, the grasshopper software or similar software can be used to develop an algorithm that draws shapes and points in relation to each other so the inputs for each element when changed can easily change the entire model. In this model, the designer plays around with lines and curves and through their creative abilities, they created a design that curves in and out from the center axis of the building.

Project 02: Variable Face

Variable Face
var faceWidth = 200
var faceHeight = 300
var faceColor = 255
var eyeSize = 40
var eyeL = 20
var eyeR = 20
var r = 0
var g = 0
var b = 0
var mouth = 1

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

function draw() {
    background(180);

    //head
    fill(r,g,b);
    ellipse(width/2,height/2,faceWidth, faceHeight);  

    //eyeballs
    fill(255);
    ellipse(eyeL,height/2,50,30);     //left
    ellipse(eyeR,height/2,50,30);     //right

    //pupil ellipse
    fill(111, 78, 55);
    ellipse(eyeL,height/2,20,20);     //left
    ellipse(eyeR,height/2,20,20);     //right

    //nose
    fill(255);
    stroke(0,0,0);
    strokeWeight(1);
    if(eyeL<=width/2-faceWidth/4 & eyeR<=width/2+faceWidth/4){
        triangle(width/2, height/2, width/2, height/2+faceHeight/5, width/2-faceWidth/4, height/2+faceHeight/8); //left
    }else if(eyeL>=width/2-faceWidth/4 & eyeR>=width/2+faceWidth/4){
        triangle(width/2, height/2, width/2, height/2+faceHeight/5, width/2+faceWidth/4, height/2+faceHeight/8); //right
    }else{
        triangle(width/2, height/2, width/2+faceWidth/8, height/2+faceHeight/5, width/2-faceWidth/8, height/2+faceHeight/5); //mid
    }

    //mouth
    if(mouth == 1){
        fill(0);
        arc(width/2,height/2+faceHeight/4,70,50,0,PI,CHORD);    //happy
        noFill();
        strokeWeight(3);
        arc(eyeL,height/2-30,70,40,PI,2*PI);
        arc(eyeR,height/2-30,70,40,PI,2*PI);
        strokeWeight(1);
    }else if(mouth == 2){
        fill(225,0,0);
        arc(width/2,height/2+faceHeight/3,70,50,PI,2*PI,CHORD); //mad
        stroke(255,0,0);
        strokeWeight(5);
        line(eyeL-25,height/2-40,eyeL+25,height/2-20);
        line(eyeR+25,height/2-40,eyeR-25,height/2-20);
        stroke(0);
        strokeWeight(1);                                        //resets stroke
    }else if(mouth==3){
        fill(0);
        ellipse(width/2,height/2+faceHeight/3,30,30);           //scared
        strokeWeight(3);
        line(eyeL-25,height/2-20,eyeL+25,height/2-40);
        line(eyeR+25,height/2-20,eyeR-25,height/2-40);
        strokeWeight(1);
    }
}

function mousePressed(){
    faceWidth = random(180,300);
    faceHeight = random(200,340);
    faceColor = random(0,255);
    eyeL = random(width/2-faceWidth/2+25,width/2-25);
    eyeR = random(width/2+25,width/2+faceWidth/2-25);
    r = random(0,255);
    g = random(0,255);
    b = random(0,255);
    mouth = int(random(1,4));
}



//don't mind the stuff down here 

    //mouth
    //line(200,290,280,290);

    //pupil with points      
    //stroke(111, 78, 55);        
    //strokeWeight(20);
    //point(190,190);             
    //point(280,190);

    //sunglasses and frame
//    stroke(255,0,0);
//    strokeWeight(3);
//    line(320,220,350,190);      
//    fill(180,240,0);
//    rect(130,200,90,50);        
//    fill(50,158,200);
//    rect(230,200,90,50); 



    //background ellipses
    //fill(255,230,0);
    //ellipse(250,200,500,600);
    //fill(196,80,71);
    //ellipse(250,200,400,500);
    //fill(147,248,234);
    //ellipse(250,200,330,430);
    //fill(135,73,146);
    //ellipse(250,200,270,370);
    //fill(0,0,0);
    //ellipse(250,200,230,330); 

LO 02: Generative Art

I am inspired by the work Flow Field Coloring by Juhani Halkomaki (from openprocessing.org). I think this project is really beautiful in the way it represents abstract art, shapes, and colors. This work is an interactive dynamic image of moving curved lines on the canvas that transform as the
mouse is moved across the screen. I am able to interact with this piece to create my own piece of art within an already defined system. The way the colors slowly transition and the lines move across the page is mesmerizing. The algorithm within this project, I would assume, incorporates code for the initial generated swirling shape and randomizes how each line flows between the defined points. The algorithm tracks the mouse and moves the lines and creates new colors. The creator incorporates their artistic vision in the piece in two ways where one is the interactive movement of the user’s mouse across the canvas, creating a harmony of different colors, and the other is when the image is static and shows the resulting abstract art that has resulted from the user.

Link to artwork

LO: My Inspiration

The video game Valorant inspires me. Unlike other first-person shooting games, Valorant has artistic visual graphics instead of realistic graphics, beautiful maps inspired by cities around the world, as well as character and game lore. Even though it sounds like just another video game, I think that the amount of effort the creators put into the graphic artistry and backstories of elements in the game really helps the users connect with the content and characters. 

Valorant was developed by the company Riot Games, and designed by Trevor Romleski and Salvatore Garozzo. The game took 6 years to create and was officially launched in June 2020. Valorant is developed using Unreal Engine 4 but I am unsure if they used custom software and scripts. 

Valorant was inspired by other tactical shooter games such as Counter-Strike which is a game with very similar shooting/buying mechanics, and Overwatch with similar agent abilities. The art style is inspired by an illustrative visual design style which is a balance between realism and cel-shaded animation. 

In the growing world of gaming, Valorant has a future in competitive esports, as well as an introduction to stylistic video games. In the two years, it has been out, it has an increasing player base and multiple international tournaments. This game also plants a seed in the development of illustrative shooting games. 

Link

Project 1: My Self Portrait

sketch-01-self portrait
function setup() {
    createCanvas(500,500);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    background(168,255,125)
    fill(255,230,0)
    ellipse(250,200,500,600)
    fill(196,80,71)
    ellipse(250,200,400,500)
    fill(147,248,234)
    ellipse(250,200,330,430)
    fill(135,73,146)
    ellipse(250,200,270,370)
    fill(0,0,0)
    ellipse(250,200,230,330)     //ellipse(150,150,30,80)
    fill(255,163,204)
    ellipse(250,200,200,300);   //head
    fill(255,255,255);
    ellipse(190,190,50,30);     //eyeball
    ellipse(280,190,50,30);
    stroke(255,0,0);
    strokeWeight(3);
    line(320,220,350,190);      //frame
    fill(180,240,0);
    rect(130,200,90,50);        //sunglasses
    fill(50,158,200);
    rect(230,200,90,50);        
    stroke(111, 78, 55);        
    strokeWeight(20);
    point(190,190);             //pupil
    point(280,190);
    fill(95,29,158);
    stroke(0,0,0);
    strokeWeight(1);
    triangle(230,220,170,240,230,260);  //nose
    line(200,290,280,290)
    noLoop()
}