project 1

this is my project

sketch

The most interesting part of this project was finding ways to creatively layer shapes to make new ones.

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

function draw() {
    background(195, 216, 212); //LIGHT MINT
    noStroke(); //apply to all bellow 
    fill(70, 45, 45); //DARK BROWN 
        rect(35, 50, 130, 130); //background hair 
    fill(100, 169, 150); //DARK MINT 
        ellipse(100, 200, 170, 150)//shirt
    fill(200, 162, 146); //MEDIUM FACE
        triangle(60, 125, 140, 125, 100, 175); //neck
        ellipse(50, 93, 45, 45); //ear left
        ellipse(150, 93, 45, 45); //right ear
    fill(225, 196, 183); //LIGHT FACE 
        ellipse(100, 90, 100, 120);//face
    fill(195, 216, 212); //forhead cover (hide top of head poking out of bangs)
        ellipse(100, 50, 100, 50)
    fill(130, 90, 70); //MEDIUM BROWN  
        ellipse(70, 64, 85, 55); //left hair Bang
        ellipse(130, 64, 85, 55); //right hair Bang
        ellipse(100, 130, 30, 5); //mouth
    fill(200, 162, 146); //MEDIUM FACE 
        ellipse(75, 106, 25, 25); //left eye
        ellipse(125, 106, 25, 25); //right eye
    fill(230, 130, 130); //PINK
        ellipse(100, 115, 15, 10); //nose?
    fill(195, 216, 212); //LIGHT MINT
        ellipse(75, 103, 20, 20); //left eye
        ellipse(125, 103, 20, 20); //right eye
    fill(70, 45, 45); //DARK BROWN
        ellipse(75, 102, 13, 13); //left eye
        ellipse(125, 102, 13, 13); //right eye
    //fill(225, 196, 183); //LIGHT FACE
        //rect(55, 92, 90, 7); //brow 
}

Project 01-Face

this is my project

sketch
//Aarnav Patel
//Section D

function setup() {
    createCanvas(500, 500);
    background(220);
}
var pos = (500 / 7 / 2);

function draw() {
	var randomR = random(1, 256);
	var randomG = random(1, 256);
	var randomB = random(1, 256);
	if (mouseIsPressed) {
	    background(randomR, randomG, randomB);
	}
	//body
	fill(255);
	ellipse(width / 2, height, width / 1.5, height);
	//face
	noStroke();
	fill(221, 161, 119);
	ellipse((width / 2), (height / 2), (width / 3),  (width / 2));


	//hair
	fill(0);
	ellipse((width / 2), ((height / 2) - (width / 3 / 2)), (width / 3), (width / 4));
	rect((width / 2) - ((width / 3 / 2)) - 10, ((height / 2) - 50), 20, 50);
	rect((width / 2) + ((width / 3 / 2)) - 10, ((height / 2) - 50), 20, 50)
	triangle((width / 2) - ((width / 3 / 2)) - 10, ((height / 2) - 50), (width / 2) - ((width / 3) / 2), ((height / 2) - (width / 3 / 2)), (width / 2) + ((width / 3 / 2)) + 10, ((height / 2) - 50));
	triangle((width / 2) - ((width / 3 / 2)) - 10, ((height / 2) - 50), (width / 2) + ((width / 3) / 2), ((height / 2) - (width / 3 / 2)), (width / 2) + ((width / 3 / 2)) + 10, ((height / 2) - 50));

	//eyes
	ellipse((width / 2) - ((width / 3) / 4), (height / 2), 10);
	ellipse((width / 2) + ((width / 3) / 4), (height / 2), 10);

	//nose
	fill(170, 130, 100);
	ellipse((width / 2), (height / 2) + 50, 50);
	fill(221, 161, 119);
	ellipse((width / 2), (height / 2) + 40, 50);

	//smile
	fill(0);
	rect((width / 2) - ((width / 10) / 2), (height / 2) + 100, (width / 10), 3);


 
}

Project 01: Self Portrait

self portrait

sketch

The most challenging part of this project was figuring out which new components go on which coordinates (this part took quite a lot of trial and error).

// Kathy Lee, Section D function setup() { createCanvas(500, 500); background(230); text(“My Self Portrait”, 10, 15); } function draw() { //my hair fill(0); ellipse(250, 245, 200, 270); fill(0); rect(152, 220, 75, 200); fill(0); rect(273, 220, 75, 200); //face fill(223, 172, 107); ellipse(275-25, 275-25, 150, 225); //neck fill(223, 172, 107); rect(200+12.5, 300, 75, 125); fill(223, 172, 107); ellipse() //my rectangular shirt noStroke() fill(255); rect(100, 400, 300, 300, 50); //front hair that flows down past the shirt fill(0); rect(151, 375, 62, 100); fill(0); rect(287, 375, 62, 100); //eyes fill(0); ellipse(223, 220, 30, 20); // left eye (full pupil) fill(0); ellipse(277, 220, 30, 20); // right eye (full pupil) fill(223, 172, 107); ellipse(223, 225, 30, 20); // left eye skin tone fill(223, 172, 107); ellipse(277, 225, 30, 20); // right eye skin tone //nose fill(208, 161, 101); triangle(250, 250, 230, 280, 270, 280); //mouth fill(203, 117, 100); ellipse(250, 300, 50, 25); // pink lip color fill(223, 172, 107); ellipse(250, 290, 50, 20); // skin tone to highlight smiling mouth //ears fill(223, 172, 107); ellipse(180, 250, 40, 50); // left ear fill(15, 126, 47); ellipse(170, 275, 15, 15); // earring fill(223, 172, 107); ellipse(320, 250, 40, 50); // right ear fill(15, 126, 47); ellipse(330, 275, 15, 15); // earring //eyebrows fill(208, 161, 101); rect(210,190, 30, 7); // left eyebrow // I wanted to make the eyebrows with lines and change the strokeweight but then all the shapes get outlined? // Not sure exactly what’s going on so I will stick to rectangles for now fill(208, 161, 101); rect(260, 190, 30, 7); // right eyebrow }
// Kathy Lee, Section D

function setup() {
    createCanvas(500, 500);
    background(230);
    text("My Self Portrait", 10, 15);
}

function draw() {
    //my hair
    fill(0);
    ellipse(250, 245, 200, 270);
    fill(0);
    rect(152, 220, 75, 200);
    fill(0);
    rect(273, 220, 75, 200);
    
    //face
    fill(223, 172, 107);
    ellipse(275-25, 275-25, 150, 225);
    
    //neck
    fill(223, 172, 107);
    rect(200+12.5, 300, 75, 125);
    fill(223, 172, 107);
    ellipse()

    //my rectangular shirt
    noStroke()
    fill(255);
    rect(100, 400, 300, 300, 50);

    //front hair that flows down past the shirt
    fill(0);
    rect(151, 375, 62, 100);
    fill(0);
    rect(287, 375, 62, 100);

    //eyes
    fill(0);
    ellipse(223, 220, 30, 20); // left eye (full pupil)
    fill(0);
    ellipse(277, 220, 30, 20); // right eye (full pupil)
    fill(223, 172, 107);
    ellipse(223, 225, 30, 20); // left eye skin tone
    fill(223, 172, 107);
    ellipse(277, 225, 30, 20); // right eye skin tone 

    //nose
    fill(208, 161, 101);
    triangle(250, 250, 230, 280, 270, 280);

    //mouth
    fill(203, 117, 100);
    ellipse(250, 300, 50, 25); // pink lip color
    fill(223, 172, 107);
    ellipse(250, 290, 50, 20); // skin tone to highlight smiling mouth

    //ears
    fill(223, 172, 107);
    ellipse(180, 250, 40, 50); // left ear
    fill(15, 126, 47);
    ellipse(170, 275, 15, 15); // earring
    fill(223, 172, 107);
    ellipse(320, 250, 40, 50); // right ear
    fill(15, 126, 47);
    ellipse(330, 275, 15, 15); // earring


    //eyebrows
    fill(208, 161, 101);
    rect(210,190, 30, 7); // left eyebrow
    // I wanted to make the eyebrows with lines and change the strokeweight but then all the shapes get outlined? 
    // Not sure exactly what's going on so I will stick to rectangles for now
    fill(208, 161, 101);
    rect(260, 190, 30, 7); // right eyebrow

}

LO: My Inspiration

One “creative technologies” project that really stands out to me is the Gravity Harps installation. The piece was commissioned by Icelandic musician Björk’s Biophilia tour, who wanted custom instruments for her studio album, requesting the help of Robot Music inventor Andy Cavatorta (who partnered with Pattern Studios for the electronics of the piece). The collaborative project involved mechanics, sound engineers, designers, and musicians and took one year to complete. The piece involves 11 harp strings attached to mechanical pendulums that use python code to formulate specific melodies that are played in succession of each swinging harp.

What I especially appreciate about this piece is how natural the integration with technology and music was undertaken. It’s always a risk to “overcompute” a creative practice within these types of projects, which undermine the beauty of arts based performances. However, the project reimagines how a traditional instrument can be computed in a way that makes one still appreciate the creative elements in its practice – e.g rhythm, timing, notes, etc. In context of the musician’s tour biophilia (which refers to humans’ tendency to seek connection with nature), the piece makes use of “natural” elements like physics and motion to create music. This project suggests ways to compute more instruments, possibly creating a machine based orchestra.

Source #1: Inventing Björk’s Gravity Harp, The New Yorker
Andrew Marantz

https://www.pattenstudio.com/works/gravity-harps/

L0 My Inspiration

An interactive project involving a creative bent that I find inspirational is Cooking Mama, specifically the version played on the Nintendo DS.

I admire Cooking Mama because it is an interactive game in which the player must skillfully time and perform tasks to Mama’s standards. The game is challenging, entertaining, and even vaguely informative of cooking skills.
Cooking Mama was developed by Office Create and published by Taito, Majesco Entertainment, and 505 Games. There isn’t much detail about the software, but this game was pretty groundbreaking because of the new touch screen technology on the Nintendo DS.

While there are many known sequels to the game, there are no publicly known prior works in which the developers could have been inspired by (other than different Nintendo DS games). Cooking Mama was a great success that many sequels were created, each having a different theme or challenges.

Project 1: My Self Portrait

sketch
function setup() {
    createCanvas(500, 500);
    background(255,138,120);
}
function draw() {
    let borpX = 225;
    let borpY = 170;
    //behind head hair
    noStroke();
    fill(40, 26, 34);
    beginShape();
    vertex(300,195);
    vertex(303,200);
    vertex(305,210);
    vertex(302,240);
    vertex(280,245);
    vertex(270,220);
    stroke(80, 40, 54);
    endShape();
    strokeWeight(1)
    arc(borpX-10,borpY+40,30,50,8.5,4.5);
    arc(borpX+63,borpY+50,40,60,6,8,OPEN);
    arc(borpX+45,borpY+40,75,60,5.7,6.6,OPEN);
    arc(borpX+55,borpY+55,40,60,6.1,8,OPEN);
    arc(borpX+45,borpY+62,40,60,6.2,8,OPEN);
    arc(borpX-5,borpY+53,30,50,7.6,3.7);
    arc(borpX+1,borpY+60,30,50,7.6,3);
    arc(borpX+4,borpY+60,30,50,7.6,3);
    push();
    rotate(0.1);
    arc(borpX+40,borpY+40,30,50,7.6,3);
    pop();


    //cranium and fillings
    angleMode(RADIANS);
    fill(255,233,199);
    noStroke();
    ellipse(246.8,500/2.195-12,71.5,55.8);
    stroke(0);
    arc(249,500/3+8.5,92,90,2.5,7.05,OPEN);
    noStroke();
    ellipse(221,500/2.45,20,30);
    ellipse(282,500/2-42,10,10);
    stroke(0);

    noStroke();
    fill(222, 0, 111);
    ellipse(262,270,100,20);
    triangle(160,500,260,260,388,500);
    stroke(0);
    arc(262,270,100,20,3.2,6.2);
    fill(255,233,199);

    //neck
    noStroke();
    fill(255,233,199);
    beginShape();
    curveVertex(240,245);
    curveVertex(240,245);
    curveVertex(239,258);
    curveVertex(240,268);
    curveVertex(285,266);
    curveVertex(281,250);
    curveVertex(280,223);
    curveVertex(280,223);
    endShape();
    noFill();
    stroke(0);
    arc(230,245,20,50,5.5,8);
    arc(290,225,20,80,7.8,10);
    fill(255,233,199);

    //clothes
    fill(222, 0, 111);

    beginShape();
    vertex(240,258);
    vertex(225,255);
    vertex(205,257);
    vertex(190,280);
    vertex(180,350);
    vertex(150,470);
    vertex(162,500);
    vertex(180,520);
    endShape(OPEN);

    beginShape();
    vertex(200,400);
    vertex(240,256);
    vertex(250,268);
    vertex(260,258);
    vertex(300,255);
    vertex(320,257);
    vertex(350,285);
    vertex(365,350);
    vertex(400,440);
    vertex(398,500);
    vertex(360,530);
    endShape(OPEN);

    

    curve(245,264,240,268,197,270,200,220);
    curve(245,264,240,268,183,340,200,220);
    curve(220,390,208,420,160,460,130,420);
    curve(260,265,255,268,335,270,330,220);
    curve(260,265,255,268,365,350,330,220);
    curve(220,370,200,400,365,440,330,220);
    fill(255,233,199);
    beginShape();
    vertex(239,255);
    vertex(235,278);
    vertex(275,256);
    endShape(OPEN);
    line(200,400,240,500);

    //chin segments
    fill(255,233,199);
    beginShape();
    curveVertex(215,231);
    curveVertex(215,231);
    curveVertex(228,243);
    curveVertex(250,244);
    curveVertex(280,223);
    curveVertex(280,223);
    endShape(OPEN);
    //arc(246.2,500/2.195-10,69.5,55.8,6.5,9,OPEN);
    push();
    translate(215, 216.43);
    rotate(-0.2);
    arc(3,0,15,42,8,4.45,OPEN);
    pop();
    //ear
    push();
    translate(284,500/2-32);
    rotate(0.3);
    arc(0,-5,13,26,4.1,8.1,OPEN);
    arc(1,-5,7,15,8,4.6,OPEN);
    pop();
    arc(284.9,500/2-35,4,8,4,7,OPEN);
    //eye1
    let lefteyex = 262;
    let lefteyey = 198;
    noStroke();
    fill(255);
    ellipse(lefteyex,lefteyey+1,20,16);
    fill(240);
    arc(lefteyex,lefteyey-2,20,10,3.2,6.3);
    fill(33,6,4);
    noStroke();
    ellipse(lefteyex+4,lefteyey,10,14)
    fill(255,164,128);
    ellipse(lefteyex+4,lefteyey+4,6,5);
    fill(0);
    ellipse(lefteyex+4,lefteyey,5,8);
    fill(255);
    ellipse(lefteyex+2,lefteyey-2,3,6);
    stroke(0);
    noFill();
    ellipse(lefteyex+4,lefteyey,9,13);
    arc(lefteyex,lefteyey-2,20,10,3.2,6.3);
    //eye2
    let righteyex = 222;
    let righteyey = 198;
    noStroke();
    fill(255);
    ellipse(righteyex,righteyey+1,20,16);
    fill(240);
    arc(righteyex,righteyey-2,20,10,3.2,6.3);
    fill(33,6,4);
    noStroke();
    ellipse(righteyex+4,righteyey,10,14)
    fill(255,164,128);
    ellipse(righteyex+4,righteyey+4,6,5);
    fill(0);
    ellipse(righteyex+4,righteyey,5,8);
    fill(255);
    ellipse(righteyex+2,righteyey-2,3,6);
    stroke(0);
    noFill();
    ellipse(righteyex+4,righteyey,9,13);
    arc(righteyex,righteyey-2,20,10,3.2,6.3);
    //mouth
    stroke(0);
    curve(228, 225, 233, 230, 240, 230, 245, 225);
    //nose
    fill(255, 195, 184);
    noStroke();
    triangle(240,215,232,215,235,218);
    stroke(0);
    noFill();
    arc(226,208,18,20,6.1,7.1);
    arc(240,213,15,10,8.8,9.2);
    //eyebrows
    let leftbrowx = 210;
    let leftbrowy = 185;
    let rightbrowx = 273;
    let rightbrowy = 185;
    noStroke();
    fill(26, 2, 20);
    beginShape();
    curveVertex(leftbrowx,leftbrowy+3);
    curveVertex(leftbrowx+7,leftbrowy+2);
    curveVertex(leftbrowx+18,leftbrowy+4);
    curveVertex(leftbrowx+25,leftbrowy+3);
    curveVertex(leftbrowx+20,leftbrowy-1);
    curveVertex(leftbrowx+7,leftbrowy-1);
    endShape(CLOSE);

    beginShape();
    curveVertex(rightbrowx,rightbrowy+3);
    curveVertex(rightbrowx-7,rightbrowy+2);
    curveVertex(rightbrowx-18,rightbrowy+4);
    curveVertex(rightbrowx-25,rightbrowy+3);
    curveVertex(rightbrowx-20,rightbrowy-1);
    curveVertex(rightbrowx-7,rightbrowy-1);
    endShape(CLOSE);
    //hair
    fill(40, 26, 34);

    beginShape();
    vertex(200,175);
    vertex(220,140);
    vertex(228,127);
    vertex(290,139);
    vertex(295,160);
    vertex(295,190);
    vertex(285,190);
    vertex(235,162);
    vertex(225,170);
    endShape();

    
    stroke(80, 40, 54);
    strokeWeight(1)
    arc(borpX-15,borpY+10,20,50,8,3.5);
    noStroke();
    rect(borpX-16,borpY+5,5,5);
    stroke(80, 40, 54);

    beginShape();
    curveVertex(borpX-20,borpY-2);
    curveVertex(borpX-20,borpY-2);
    curveVertex(borpX-28,borpY+2);
    curveVertex(borpX-47,borpY-9);
    curveVertex(borpX-28,borpY-7);
    curveVertex(borpX-15,borpY-10);
    curveVertex(borpX-15,borpY-10);
    endShape();

    beginShape();
    curveVertex(borpX-8,borpY);
    curveVertex(borpX-8,borpY);
    curveVertex(borpX-12,borpY+8);
    curveVertex(borpX-25,borpY+10);
    curveVertex(borpX-40,borpY);
    curveVertex(borpX-30,borpY+3);
    curveVertex(borpX-20,borpY-2);
    curveVertex(borpX-20,borpY-2);
    endShape();

    beginShape();
    curveVertex(borpX+10,borpY-8);
    curveVertex(borpX+10,borpY-8);
    curveVertex(borpX-1,borpY+2);
    curveVertex(borpX-5,borpY+8);
    curveVertex(borpX-15,borpY+14);
    curveVertex(borpX-27,borpY+15);
    curveVertex(borpX-16,borpY+8);
    curveVertex(borpX-8,borpY);
    curveVertex(borpX-8,borpY);
    endShape();

    

    beginShape();
    curveVertex(borpX-15,borpY-10);
    curveVertex(borpX-15,borpY-10);
    curveVertex(borpX-28,borpY-7);
    curveVertex(borpX-50,borpY-12);
    curveVertex(borpX-35,borpY-16);
    curveVertex(borpX-15,borpY-35);
    curveVertex(borpX,borpY-30);
    curveVertex(borpX,borpY-30);
    endShape();

    beginShape();
    curveVertex(borpX,borpY-30);
    curveVertex(borpX,borpY-30);
    curveVertex(borpX-15,borpY-35);
    curveVertex(borpX-24,borpY-50);
    curveVertex(borpX-15,borpY-40);
    curveVertex(borpX,borpY-40);
    curveVertex(borpX,borpY-40);
    endShape();

    beginShape();

    endShape();

    arc(borpX+36,borpY+5,90,90,5.3,6.9,OPEN);
    arc(borpX+28,borpY-5,90,90,4,5.8,OPEN);

    beginShape();
    curveVertex(borpX+55,borpY+28);
    curveVertex(borpX+55,borpY+28);
    curveVertex(borpX+64,borpY+33);
    curveVertex(borpX+65,borpY+45);
    curveVertex(borpX+72,borpY+35);
    curveVertex(borpX+75,borpY+28);
    curveVertex(borpX+75,borpY+28);
    endShape();

    //sideburn
    push();
    rotate(-0.2);
    arc(borpX+10,borpY+88,10,30,8,5.5,CLOSE);

    //sideswoop
    pop();
    push();
    rotate(-1.4);
    arc(borpX-365,borpY+145,15,30,7.8,4.8,CLOSE);
    rotate(-0.1);
    arc(borpX-390,borpY+130,15,30,7.8,4.8,CLOSE);
    arc(borpX-385,borpY+125,15,30,7.8,4.8,CLOSE);
    pop();

    beginShape();
    curveVertex(borpX+10,borpY-8);
    curveVertex(borpX+10,borpY-8);
    curveVertex(borpX+20,borpY-2);
    curveVertex(borpX+28,borpY+6);
    curveVertex(borpX+40,borpY+14);
    curveVertex(borpX+65,borpY+25);
    curveVertex(borpX+48,borpY+10);
    curveVertex(borpX+40,borpY);
    curveVertex(borpX+35,borpY-8);
    curveVertex(borpX+35,borpY-8);
    endShape();

   // stroke(255);
   // strokeWeight(4);
   // point(235,268);
   // point(240,245);
   // point(287,264);
   // point(280,223);

    

    noLoop();
}

I found the adjusting of the vertices of the custom shapes to be extremely time consuming and frankly agonizing. Were I to do this again, I would try to take more intuitive approaches.

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()
}

Self Portrait

sketch
function setup() {
    createCanvas(300, 300);
    background(200, 213, 185);
}

function draw() {
    noStroke()
    fill(0);
    rect(75, 55, 150, 220); // hair
    fill(200, 213, 185);
    triangle(130, 30, 25, 150, 1, 1); // define hair background
    triangle(170, 30, 275, 150, 299, 1); 

    fill(200, 162, 200);
    ellipse(150, 320, 200, 160); // shirt

    fill(198, 136, 99); // face base
    ellipse(150, 150, 125, 165);
    ellipse(150, 180, 120, 100);
    rect(130, 200, 40, 50);

    fill(0);
    triangle(180, 60, 80, 130, 90, 80); // define hair bangs
    triangle(120, 60, 220, 130, 210, 80); 

    fill(250, 243,221); // eyes white
    noStroke();
    ellipse(120, 155, 30, 20);
    ellipse(180, 155, 30,20);

    fill(0); // eyeballs
    ellipse(120, 155, 17, 17);
    ellipse(180, 155, 17, 17);

    rect(100, 130, 35, 10); // eyebrows
    rect(160, 130, 35, 10);

    fill(198, 136, 99); // eye smile skin color
    rect(100, 158, 45, 20);
    rect(160, 158, 45,20);

    fill(250, 243,221); // smile
    noStroke();
    ellipse(150, 195, 50, 25);
    fill(198, 136, 99); // smile skin color
    rect(100, 172, 80, 20);

    stroke(0); // glasses
    strokeWeight(2);
    noFill();
    arc(120, 155, 50, 50, 50, 50);
    arc(180, 155, 50, 50, 50, 50);
    }


    //stroke(173,93,93);
    //strokeWeight(4);
    //noFill();
    //arc(150, 195, 50, 50, 50, 40);

    //strokeWeight(3);
    //arc(120, 135, 30, 50, 10, QUARTER_PI);
    //arc(180, 135, 30, 50, 10, QUARTER_PI);

      //  fill(250, 243,221); // eyes
 //   ellipse(120, 142, 30, 20);
  //  ellipse(180, 142, 30,20);
  //  fill(198, 136, 99); // eye smile skin color

    //fill(198, 136, 99); // eye smile skin color
    //ellipse(120, 165, 45, 20);
    //ellipse(180, 165, 45,20);

LO: My Inspiration

My inspiration for this portrait came mostly from the video game and anime art of the 1970s-1990s. Games like Policenauts and shows like Urusei Yatsura have been a consistent source of inspiration for me in my art. (In terms of storyline? Ask me about Ursula K. LeGuin.)


In particular, when it comes to digital art I’ve always been inspired by the pixel-art mastery of the PC 98 games. (yeah yeah I’m a nerd) Shallow romance novella games aside, the PC 98 series has one game which really interested me, the aforementioned Policenauts.

A digital visual novel from 1994, it is probably one of my favorite examples of pixel-art character design out there. This game was developed by Konami and the storyline was written by Hideo Kojima. Kojima had worked on other projects like Snatcher before Policenauts, and this heavily influenced his characters and storyline. Additionally he drew from real life and television to come up with his plot points and other story and design aspects. Despite having never played any of these PC98 games, I’ve watched run throughs and have always been amazed at their quality and how it’s held up over time. The pixel-art graphics rival those employed by contemporary retro callback games, and the character design is full of color and life! (despite only existing in pixelated format) To me the plot isn’t as relevant as the art, so the pixel=art scenes, given the limitations of tech at the time, are really fascinating to me even if I find the dialogue and the plotline boring. Kojima also created a new scripting engine for the story aspects of the game. (the reasons for which are irrelevant but humorous if you look into it)

The game wasn’t as popular as some of his other work, but it got an overhaul in the early 2000s when it transferred to other consoles and had cel animation grafted onto it instead of the pixel-art. I however prefer the pixel-art, as it leaves some of the more shocking colors and gives a rougher quality to the linework.