Dynamic Drawing – Meditating Stick Figure

For my project I drew a stick figure that is mediating. There are shapes that come off from the hand. The color, opacity, number of sides, and size of the shape are all dependent on the position of the mouse. The face of the stick figure is also dependent on the mouse.

sketch
//Nakshatra Menon
//Section C 


function setup() {
    createCanvas(450, 600);
    background("white");

}

var size = 30;
var sides1 = 3;
var leftHandX = 84
var leftHandY = 300 
var rightHandX = 401
var rightHandY = 320
var color1 = 255
var color2 = 255
var color3 = 255
var color4 = 255 
var face = 1



function draw() {
    background("black");
    stroke("white");
    strokeWeight(1);
    // carpet 
    color4 = (mouseX)/4
    fill(color4);
    ellipse(232, 430, 438, 176); 

    // stick figure drawings
    noFill(); 
    beginShape();       // left arm
        vertex(233, 244);
        vertex(157, 317);
        vertex(105, 303);
    endShape();
    beginShape();      // right arm 
        vertex(233, 244);
        vertex(315, 324);
        vertex(380, 321);
    endShape(); 
    beginShape();     // body and left leg 
        vertex(235, 214);
        vertex(237, 395);
        vertex(130, 315);
        vertex(194, 374);
        vertex(254, 417);
    endShape(); 
    beginShape();      // right leg 
        vertex(237, 395);
        vertex(354, 326);
        vertex(291, 370);
        vertex(240, 402);
    endShape();     
    beginShape();       
        vertex(232, 408);
        vertex(216, 415);
    endShape();
    ellipse(232, 152, 122, 116); // head
    ellipse(leftHandX, leftHandY, 39, 6) // left hand
    ellipse(rightHandX, rightHandY, 39, 6); //right hand 
    ellipse(201, 415, 24, 6) // left foot
    ellipse(269, 417, 24, 6); //right foot 

    // face if mouse is on left 
    if(face == 1){    
        beginShape();      // right eye 
        curveVertex(177, 140);
        curveVertex(177, 140);
        curveVertex(195, 152);
        curveVertex(214, 145);
        curveVertex(214, 145);
    endShape();
    beginShape();      // right eye 
        curveVertex(243, 147);
        curveVertex(243, 147);
        curveVertex(260, 158);
        curveVertex(279, 152);
        curveVertex(279, 152);
    endShape();
    beginShape();      // smile
        curveVertex(226, 185);
        curveVertex(226, 185);
        curveVertex(246, 188);
        curveVertex(255, 180);
        curveVertex(255, 180);
    endShape();} 

    // face if mouse is on right 
    if(face == 2){   
    fill("white");
    stroke("grey");
    strokeWeight(7);
    ellipse(195, 152, 25, 50);
    ellipse(260, 158, 25, 50);
    strokeWeight(1);
    line(216, 200, 243, 200);
    }

    // face changes w/ mouse 
    if(mouseX <= 240){
        face = 1
    }

    if(mouseX >= 240){
        face = 2
    }


    // sides increase as mouse goes right, size 15-25
    if(mouseX >= 120) {
        sides1 = (mouseX/30)/2
        size = constrain((2*(mouseY/mouseX)*30), 5, 25)
    }

    // if the mouseX is on the left then the shapes are a tri
    if(mouseX < 120) {
        sides1 = 3
        size = 5
    }

    // the color changes based on the position of the mouse 
    color1 = mouseX
    color2=  mouseY
    color3 = (mouseX/mouseY)*2


    //draw shape right   
    fill(color1, color2, color3, mouseY-76);
    polygon(rightHandX-29, rightHandY-71, size , sides1);
    fill(color2, color3, color1, mouseY-113);
    polygon(rightHandX+30, rightHandY-67, size, sides1);
    fill(color3, color1, color2, mouseX-126);
    polygon(rightHandX-51, rightHandY-160, size, sides1);
    fill(color1/2, color2/2, color3/2, mouseY-145);
    polygon(rightHandX+20, rightHandY-201, size, sides1);
    fill(color2/2, color3/2, color1/2, mouseY-187);
    polygon(rightHandX-69, rightHandY-243, size, sides1);
    fill(color3/2, color1/2, color2/2, mouseX-126);
    polygon(leftHandX+54, rightHandY-266, size, sides1);
    line(rightHandX, rightHandY, 320, 214 - (mouseY/3))
    line(rightHandX, rightHandY, 354, 99-(mouseY/3))
    line(rightHandX, rightHandY, 396, 28 -(mouseY/3))
    line(rightHandX, rightHandY, 430, 54-(mouseY-3))
    line(rightHandX, rightHandY, 430, 200-(mouseY-3))

    // draw shape left 
    fill(color1/3, color2/3, color3/3, mouseY-166);
    polygon(leftHandX-3, leftHandY-28, size, sides1);
    fill(color1/3, color2/3, color2/3,mouseY-183);
    polygon(leftHandX-89, leftHandY-97, size, sides1);
    fill(color3/3, color2/2, color1/4, mouseY-114);
    polygon(leftHandX-11, leftHandY-108, size, sides1);
    fill(color3, color1, color2, mouseY-123);
    polygon(leftHandX-63, leftHandY-140, size, sides1);
    fill(color3, color2, color1, mouseX-153);
    polygon(leftHandX-71, leftHandY-223, size, sides1);
    fill(color2, color1, color2, mouseY-123);
    polygon(leftHandX-1, leftHandY-254, size, sides1);
    line(leftHandX, leftHandY, 8, 214 - (mouseY/3))
    line(leftHandX, leftHandY, 8, 99-(mouseY/3))
    line(leftHandX, leftHandY, 68, 28 -(mouseY/3))
    line(leftHandX, leftHandY, 177, 54-(mouseY-3))
    line(leftHandX, leftHandY, 169, 200-(mouseY-3))

// opposite direction  
    // sides increase as mouse goes right 
    if(mouseX <= 400) {
        sides1 = ((width-mouseX)/30)/2
        size = constrain((3*(mouseY)/mouseX), 5, 25)
    }

    // if the mouseX is on the left then the shapes are a tri
    if(mouseX > 400) {
        sides1 = 3
        size = 5
    }
    // draw shape right 
    fill(color3, color3, color1, mouseX-50);
    polygon(rightHandX+3, rightHandY-30, size, sides1);
    fill(color3, color2, color2, mouseY-25);
    polygon(rightHandX+8, rightHandY-79, size, sides1);
    fill(color3, color2, color2, mouseY-46);
    polygon(rightHandX+3, rightHandY-128, size, sides1);
    fill(color1, color1, color2, mouseX-16);
    polygon(rightHandX+12, rightHandY-136, size, sides1);
    fill(color2, color3, color2, mouseY-19);
    polygon(rightHandX-21, rightHandY-201, size, sides1);
    fill(color1, color1, color2, mouseY-32);
    polygon(rightHandX-21, rightHandY-274, size, sides1);

    // draw shape left  
    fill(color1, color2, color3/4, mouseX-240);
    polygon(leftHandX+46, leftHandY-56, size, sides1);
    fill(color3, color1/5, color2, mouseY-32);
    polygon(leftHandX+5, leftHandY-63, size, sides1);
    fill(color3, color2, color1, mouseY-45);
    polygon(leftHandX-40, leftHandY-59, size, sides1);
    fill(color3, color2/3, color2/2, mouseX-98);
    polygon(leftHandX+38, leftHandY-173, size, sides1);
    fill(color3/2, color1, color2/2, mouseY-134);
    polygon(leftHandX-8, leftHandY-170, size, sides1);
    fill(color3, color1/3, color1/2, mouseX-77);
    polygon(leftHandX-63, leftHandY-209, size, sides1);    
}


// needed to draw polygon, got code from https://p5js.org/examples/form-regular-polygon.html
function polygon(x, y, radius, npoints) {
    let angle = TWO_PI / npoints;
    beginShape();
    for (let a = 0; a < TWO_PI; a += angle) {
    let sx = x + cos(a) * radius;
    let sy = y + sin(a) * radius;
    vertex(sx, sy);
    }
    endShape(CLOSE);
}










 

Computational Fabrication

One of the projects that I admire that involves computational fabrication is 3D printed prosthetics. Specifically, there is a project where veterinarians from ZooTampa and the director of 3D clinical applications at USF came up with the idea of 3D printing a prosthetic for a bird who had to get its beak removed. The prosthetic ended up saving the bird’s life.  First, they used CT scans to make sure that the prosthetic fit properly, then the scans were used to develop and print a guide. This helped the doctors perform the surgery and make sure that when the original beak was removed, the prosthetic would be able to accurately take its place. The team used something called BioMed White resin (which is relatively new material), to make the beak. This method can not only be used for animals, but eventually for humans and other species. With this type of technology and ability, we would be able to save countless lives of both animals and humans.

https://www.3dnatives.com/en/3d-printed-prosthetic-beak-saves-birds-life-200420224/#!

Picture of the bird saved by prosthetic.

Project – 02

I started by trying to make the original face a more cartoonish version of my self-portrait from the first week. After that, I started to play around with different variables and changes that I could make with the drawing. My favorite part of the project is being able to color in the background when the user presses a key.

sketch
//Nakshatra Menon 
//Section C 

var centerOfFaceX = 278;
var centerOfFaceY = 377;
var faceHeight = 470
var faceWidth = 374
var centerOfEyeLX  = 220; 
var centerOfEyeY = 347;
var centerOfEyeRX = 408;
var eyeWidth = 92;
var eyeHeight = 62; 
var hair = 1;
var mouth = 1;
var value1 = 130;
var value2 = 15;
function setup() {
    createCanvas(480, 640);
    background(0);
}

function draw() {
        if(// when the mouse is pressed --> realistic face 
        mouseIsPressed==true){
        background(0)
        noStroke();
        fill(60, 20, 54);                //purple1 
        beginShape();
            vertex(207, 139);
            vertex(323, 130);
            vertex(344, 450);
            vertex(323, 523);
            vertex(280, 605);
            vertex(186, 576);
            vertex(126, 521);
            vertex(104, 469);
            vertex(89, 367);
        endShape(CLOSE);
        fill(76, 28, 90);                //purple2
        beginShape();
            vertex(323, 130);
            vertex(312, 370);
            vertex(287, 329);
            vertex(281, 336);
            vertex(292, 356);
            vertex(298, 348);
            vertex(346, 461);
            vertex(323, 531);
            vertex(280, 605);
            vertex(133, 504);
            vertex(104, 310);
            vertex(126, 377);
            vertex(133, 356);
            vertex(152, 351);
            vertex(205, 365);
            vertex(188, 328);
            vertex(189, 309);
            vertex(165, 292);
            vertex(172, 255);
            vertex(204, 212);
            vertex(204, 183);
            vertex(226, 146);
            vertex(276, 146);
        endShape(CLOSE);
        fill(126, 53, 79);                 //purple3
        beginShape();
            vertex(325, 131);
            vertex(226, 162);
            vertex(187, 280);
            vertex(207, 287);
            vertex(202, 326);
            vertex(226, 375);
            vertex(159, 366);
            vertex(131, 414);
            vertex(195, 482);
            vertex(197, 493);
            vertex(178, 506);
            vertex(207, 533);
            vertex(226, 529);
            vertex(212, 483);
            vertex(234, 484);
            vertex(255, 471);
            vertex(276, 477);
            vertex(269, 444);
            vertex(288, 415);
            vertex(305, 407);
            vertex(305, 429);
            vertex(283, 424);
            vertex(279, 445);
            vertex(302, 449);
            vertex(315, 441);
            vertex(336, 459);
            vertex(325, 471);
            vertex(288, 476);
            vertex(297, 490);
            vertex(284, 496);
            vertex(306, 547);
            vertex(254, 559);
            vertex(266, 591);
            vertex(299, 620);
            vertex(356, 611);
            vertex(425, 458);
            vertex(304, 318);
            vertex(309, 369);
            vertex(291, 379);
            vertex(278, 319);
            vertex(303, 319);
        endShape(CLOSE);

        fill(78, 34, 6);                     //brown1
        beginShape();
            vertex(150, 315);
            vertex(147, 296);
            vertex(203, 285);
            vertex(278, 303);
            vertex(274, 312);
            vertex(194, 309);
            vertex(165, 319);
            vertex(150, 315);
        endShape(CLOSE);
        beginShape();
            vertex(358, 349);
            vertex(374, 302);
            vertex(444, 274);
            vertex(444, 331);
            vertex(440, 342);
            vertex(450, 366);
            vertex(448, 444);
            vertex(427, 476);
            vertex(417, 525);
            vertex(380, 573);
            vertex(221, 490); 
            vertex(253, 498);
            vertex(389, 489); 
        endShape(CLOSE);
        beginShape();
            vertex(138, 538);
            vertex(181, 573);
            vertex(284, 606); 
            vertex(296, 618);
            vertex(312, 618);
            vertex(343, 742); 
            vertex(115, 742); 
        endShape(CLOSE); 
        fill(130, 69, 20);                        //brown2
        beginShape();
            vertex(207, 285);
            vertex(222, 285);
            vertex(292, 303);
            vertex(303, 315);
            vertex(257, 315); 
            vertex(255, 323);
            vertex(280, 337);
            vertex(276, 343);
            vertex(249, 323);
            vertex(227, 323);
            vertex(222, 306);
            vertex(276, 312);
            vertex(278, 303);
        endShape(CLOSE)
        beginShape();
            vertex(245, 326);
            vertex(284, 351);
            vertex(284, 358);
            vertex(262, 341);
            vertex(240, 330);
        endShape(CLOSE);
        beginShape();
            vertex(236, 337);
            vertex(248, 337);
            vertex(264, 349);
            vertex(262, 352);
            vertex(235, 352);
            vertex(239, 346);
        endShape(CLOSE);
        beginShape();
            vertex(222, 360);
            vertex(264, 355);
            vertex(284, 360);
            vertex(278, 369);
            vertex(249, 377);
            vertex(242, 364);
        endShape(CLOSE);
        beginShape();
            vertex(373-30, 365-50);
            vertex(415-30, 319-50);
            vertex(473-30, 332-50);
            vertex(470-30, 337-50);
            vertex(438-30, 339-50);
            vertex(408-30, 353-50);
            vertex(460-30, 345-50);
            vertex(474-30, 356-50);
            vertex(461-30, 374-50);
        endShape(CLOSE);
        triangle(386-30, 374-50, 388-30, 400-50, 411-30, 372-50);
        beginShape();
            vertex(421-30, 373-50);
            vertex(440-30, 373-50);
            vertex(447-30, 379-50);
            vertex(421-30, 378-50);
        endShape(CLOSE);
        beginShape();
            vertex(422-30, 384-50);
            vertex(421-30, 392-50);
            vertex(424-30, 400-50);
            vertex(412-30, 406-50);
            vertex(413-30, 414-50);
            vertex(404-30, 416-50);
            vertex(399-30, 408-50);
            vertex(392-30, 406-50);
            vertex(404-30, 541-50);
            vertex(420-30, 539-50);
            vertex(403-30, 562-50);
            vertex(392-30, 548-50);
            vertex(356-30, 552-50);
            vertex(361-30, 559-50);
            vertex(351-30, 561-50);
            vertex(344-30, 568-50);
            vertex(312-30, 565-50);
            vertex(312-30, 573-50);
            vertex(324-30, 576-50);
            vertex(342-30, 596-50);
            vertex(355-30, 600-50);
            vertex(356-30, 660-50);
            vertex(321-30, 666-50);
            vertex(327-30, 670-50);
            vertex(384-30, 664-50);
            vertex(402-30, 643-50);
            vertex(421-30, 578-50);
            vertex(440-30, 558-50);
            vertex(452-30, 526-50);
            vertex(473-30, 489-50);
            vertex(478-30, 416-50);
            vertex(442-30, 400-50);
            vertex(447-30, 390-50);
            vertex(439-30, 384-50); 
        endShape(CLOSE);

        fill(183, 95, 53);        //orange1 
        beginShape();
            vertex(237-30, 324-50);
            vertex(259-30, 225-50);
            vertex(352-30, 189-50);
            vertex(461-30, 259-50);
            vertex(473-30, 289-50);
            vertex(473-30, 327-50);
            vertex(404-30, 349-50);
            vertex(392-30, 359-50);
            vertex(422-30, 359-50);
            vertex(460-30, 349-50);
            vertex(460-30, 369-50);
            vertex(386-30, 380-50);
            vertex(401-30, 422-50);
            vertex(429-30, 417-50);
            vertex(420-30, 410-50);
            vertex(440-30, 406-50);
            vertex(444-30, 415-50);
            vertex(461-30, 413-50);
            vertex(470-30, 424-50);
            vertex(470-30, 485-50);
            vertex(452-30, 513-50);
            vertex(430-30, 506-50);
            vertex(427-30, 523-50);
            vertex(404-30, 547-50);
            vertex(351-30, 552-50);
            vertex(337-30, 544-50);
            vertex(345-30, 529-50);
            vertex(362-30, 526-50);
            vertex(375-30, 513-50);
            vertex(351-30, 493-50);
            vertex(348-30, 469-50);
            vertex(354-30, 456-50);
            vertex(356-30, 435-50);
            vertex(347-30, 414-50);
            vertex(322-30, 353-50);
        endShape(CLOSE);
        beginShape();
            vertex(339-30, 572-50);
            vertex(389-30, 563-50);
            vertex(391-30, 570-50);
            vertex(376-30, 591-50);
            vertex(359-30, 595-50);
            vertex(341-30, 583-50);
        endShape(CLOSE);
        beginShape(); 
            vertex(299-30, 625-50);
            vertex(351-30, 613-50);
            vertex(377-30, 595-50);
            vertex(408-30, 556-50);
            vertex(416-30, 551-50);
            vertex(408-30, 617-50);
            vertex(399-30, 645-50);
            vertex(351-30, 661-50);
            vertex(306-30, 643-50);
        endShape(CLOSE);
        beginShape();
            vertex(197-30, 425-50);
            vertex(299-30, 425-50);
            vertex(314-30, 437-50);
            vertex(288-30, 504-50);
            vertex(254-30, 521-50);
            vertex(215-30, 502-50);
            vertex(200-30, 469-50);
        endShape(CLOSE);
        quad(259-30, 362-50, 275-30, 366-50, 275-30, 369-50, 259-30, 369-50);
        fill(227, 122, 43);
        beginShape();
            vertex(284-30, 218-50);
            vertex(328-30, 205-50);
            vertex(361-30, 201-50);
            vertex(462-30, 265-50);
            vertex(470-30, 326-50);
            vertex(392-30, 350-50);
            vertex(374-30, 396-50);
            vertex(392-30, 505-50);
            vertex(374-30, 509-50);
            vertex(358-30, 496-50); 
            vertex(351-30, 480-50);
            vertex(361-30, 468-50);
            vertex(361-30, 436-50);
            vertex(352-30, 418-50);
            vertex(335-30, 354-50);
            vertex(252-30, 319-50);
            vertex(264-30, 258-50);
        endShape(CLOSE);
        beginShape();
            vertex(375-30, 399-50);
            vertex(384-30, 399-50);
            vertex(394-30, 418-50);
            vertex(411-30, 426-50);
            vertex(456-30, 419-50);
            vertex(465-30, 431-50);
            vertex(463-30, 486-50);
            vertex(442-30, 503-50);
            vertex(416-30, 496-50);
            vertex(419-30, 517-50);
            vertex(406-30, 544-50);
            vertex(355-30, 551-50);
            vertex(342-30, 540-50);
            vertex(355-30, 532-50);
            vertex(361-30, 546-50);
            vertex(369-30, 523-50);
            vertex(407-30, 504-50);
            vertex(372-30, 409-50);
        endShape(CLOSE);
        circle(252-30, 472-50, 81);
        beginShape()
            vertex(401-30, 565-50);
            vertex(411-30, 565-50);
            vertex(404-30, 583-50);
            vertex(406-30, 623-50);
            vertex(390-30, 649-50);
            vertex(335-30,649-50);
            vertex(321-30, 628-50);
            vertex(370-30, 617-50);
            vertex(385-30, 602-50);
            vertex(384-30, 592-50);
        endShape(CLOSE);
        beginShape()
            vertex(422-30, 364-50);
            vertex(435-30, 358-50);
            vertex(437-30, 349-50);
            vertex(455-30, 349-50);
            vertex(461-30, 359-50);
            vertex(446-30, 369-50);
        endShape(CLOSE); 
        triangle(351-30, 581-50, 374-30, 565-50, 384-30, 576-50);
        fill(251, 151, 55);                   //Orange2
        beginShape();
            vertex(306-30, 220-50);
            vertex(364-30, 215-50);
            vertex(443-30, 253-50);
            vertex(463-30, 284-50);
            vertex(466-30, 322-50);
            vertex(406-30, 342-50);
            vertex(377-30, 359-50);
            vertex(374-30, 388-50);
            vertex(373-30, 417-50);
            vertex(399-30, 483-50);
            vertex(392-30, 500-50);
            vertex(382-30, 507-50);
            vertex(361-30, 488-50);
            vertex(369-30, 467-50);
            vertex(364-30, 427-50);
            vertex(351-30, 396-50);
            vertex(346-30, 354-50);
            vertex(290-30, 319-50);
            vertex(306-30, 297-50);
            vertex(295-30, 264-50);
        endShape(CLOSE);
        beginShape();
            vertex(379-30, 415-50);
            vertex(410-30, 430-50);
            vertex(425-30, 430-50);
            vertex(443-30, 419-50);
            vertex(460-30, 426-50);
            vertex(460-30, 475-50);
            vertex(454-30, 492-50);
            vertex(435-30, 494-50);
            vertex(411-30, 476-50);
            vertex(411-30, 516-50);
            vertex(402-30, 532-50);
            vertex(370-30, 545-50);
            vertex(370-30, 527-50);
            vertex(393-30, 509-50);
            vertex(403-30, 487-50);
        endShape(CLOSE);
        beginShape();
            vertex(331-30, 632-50);
            vertex(382-30, 620-50);
            vertex(392-30, 628-50);
            vertex(386-30, 643-50);
            vertex(356-30, 643-50);
        endShape(CLOSE);
        circle(256-30, 469-50, 60);

        fill(254, 187, 79);            //yellow 
        beginShape();
            vertex(356-30, 373-50);
            vertex(373-30, 379-50);
            vertex(373-30, 414-50);
            vertex(364-30, 414-50);
            vertex(356-30, 396-50);
        endShape(CLOSE);
        beginShape();
            vertex(374-30, 420-50);
            vertex(425-30, 438-50);
            vertex(450-30, 430-50);
            vertex(457-30, 448-50);
            vertex(453-30, 478-50);
            vertex(443-30, 482-50);
            vertex(411-30, 467-50);
            vertex(392-30, 472-50);
        endShape(CLOSE)
        beginShape();
            vertex(373-30, 433-50);
            vertex(399-30, 491-50);
            vertex(392-30, 500-50);
            vertex(375-30, 487-50);
            vertex(377-30, 476-50);
        endShape(CLOSE);
        beginShape(); 
            vertex(272-30, 391-50);
            vertex(287-30, 393-50);
            vertex(287-30, 400-50);
            vertex(270-30, 401-50);
        endShape(CLOSE);
        quad(424-30, 387-50, 440-30, 387-50, 440-30, 398-50, 424-30, 398-50);
        ellipse(392-30, 284-50, 95, 105);

        fill(21, 6, 1);                  //black hair 
        beginShape();
            vertex(70, 144);
            vertex(154, 95);
            vertex(270, 54);
            vertex(370, 100);
            vertex(477, 204);
            vertex(498, 742);
            vertex(291, 742);
            vertex(313, 618);
            vertex(364, 614);
            vertex(372, 593);
            vertex(379, 573);
            vertex(417, 525);
            vertex(427, 476);
            vertex(448, 444);
            vertex(450, 366);
            vertex(440, 342);
            vertex(444, 331);
            vertex(443, 239);
            vertex(437, 212);
            vertex(322, 139);
            vertex(210, 165);
            vertex(193, 200);
            vertex(139, 269);
            vertex(131, 296);
            vertex(151, 338);
            vertex(121, 302);
            vertex(119, 375);
            vertex(108, 331);
            vertex(93, 360);
            vertex(111, 485);
            vertex(126, 521);
            vertex(181, 570);
            vertex(218, 742);
            vertex(0, 742);
            vertex(0, 405);
        endShape(CLOSE);
        fill(40, 20, 16);                    //brown1
        beginShape();
            vertex(251-30, 115-50);
            vertex(314-30, 101-50);
            vertex(361-30, 172-50);
            vertex(355-30, 182-50);
            vertex(327-30, 190-50);
            vertex(290-30, 189-50);
            vertex(310-30, 167-50);
            vertex(252-30, 155-50);
            vertex(285-30, 136-50);
        endShape(CLOSE);
        fill(56, 17, 4);                    //brown2
        beginShape();
            vertex(327-30, 180-50);
            vertex(356-30, 171-50);
            vertex(322-30, 114-50);
            vertex(317-30, 137-50);
            vertex(337-30, 159-50);
            vertex(327-30, 180-50);
        endShape(CLOSE);
    } else { // cartoon face
        if (//press on a key to color in the background
            keyIsPressed == true){
            stroke(mouseY, mouseX, value1);
            strokeWeight(40);
            point(mouseX, mouseY)
        }
        strokeWeight(1);
        // hair
            fill(44, 23, value2);
            noStroke();
            ellipse(244, 680, 630, 1290);
        //face and neck 
            strokeWeight(1);
            fill(235, 171, 127);
            beginShape();
                vertex(135, 511);
                vertex(304, 605);
                vertex(270, 742);
                vertex(179, 742);
            endShape(CLOSE);
            stroke(174, 115, 75);
            strokeWeight(3);
            ellipse(centerOfFaceX, centerOfFaceY, faceWidth, faceHeight); //face 

        //left eye     
            stroke(44, 23, 17);
            strokeWeight(10);
            line(143, 311, 174, 295);
            line(174, 295, 270, 295);
            strokeWeight(2);
            stroke(0);
            fill("black");      // eyeliner 
            triangle(centerOfEyeLX, centerOfEyeY-25, 143, 329, centerOfEyeLX, centerOfEyeY+25);
            fill("white");      //eye
            ellipse(centerOfEyeLX, centerOfEyeY, eyeWidth, eyeHeight);
            fill("black");      // left pupil 
            ellipse(constrain(mouseX, centerOfEyeLX-15, centerOfEyeLX+15), constrain(mouseY, centerOfEyeY-8, centerOfEyeY+8), eyeWidth/4);   
        // right eye 
            stroke(44, 23, 17);
            strokeWeight(10);
            line(365, 295, 441, 295);
            line(441, 295, 450, 303);
            strokeWeight(2);  
            stroke(0);
            fill("black");            // eyeliner 
            triangle(centerOfEyeRX, centerOfEyeY-25, 463, 321, centerOfEyeRX, centerOfEyeY+25); 
            fill("white");            // eye 
            ellipse(centerOfEyeRX, centerOfEyeY, eyeWidth, eyeHeight);    
            fill("black");            //right pupil
            ellipse(constrain(mouseX, centerOfEyeRX-15, centerOfEyeRX+15), constrain(mouseY, centerOfEyeY-8, centerOfEyeY+8), eyeWidth/4);   
        //Hair - bangs 
            if(hair <= 1){
            fill(44, 23, value2);
            stroke(44, 23, value2);
            beginShape();
                curveVertex(327, 124);
                curveVertex(268, 145);
                curveVertex(215,158);
                curveVertex(191, 224);
                curveVertex(127, 292);
                curveVertex(137, 331);
                curveVertex(78, 426);
                curveVertex(99, 191);
            endShape(CLOSE);
            }
            if(hair <=2 & hair>1){
            fill(44, 23, value2);
            stroke(74, 46, value2);
            beginShape();
                vertex(278, 136);
                vertex(390, 155);
                vertex(463, 282);
                vertex(71, 292);
                vertex(175, 150);
            endShape(CLOSE);
            }
            if(hair <=3 & hair>2){
            fill(44, 23, value2);
            stroke(44, 23, value2);
            beginShape();
                curveVertex(327, 124);
                curveVertex(268, 145);
                curveVertex(215,158);
                curveVertex(191, 224);
                curveVertex(127, 292);
                curveVertex(137, 331);
                curveVertex(78, 426);
                curveVertex(99, 191);
            endShape(CLOSE);
            beginShape();
                curveVertex(298, 121);
                curveVertex(298, 121);
                curveVertex(340, 190);
                curveVertex(412, 255);
                curveVertex(455, 308);
                curveVertex(458, 410);
                curveVertex(466, 536);
                curveVertex(486, 325);
                curveVertex(399, 138);
            endShape(CLOSE);
            }
        // mouth  
            if(mouth <=1){
                fill(196, 99, 99); 
                stroke(137, 41, 41);
                strokeWeight(10);
                ellipse(centerOfFaceX+36, centerOfFaceY+133, mouseX/7, mouseY/7);
            }
            if(mouth <=2 & mouth>1){
                if(mouseX2){
                fill(196, 99, 99);
                stroke(137, 41, 41);
                strokeWeight(10);
                triangle(centerOfFaceX+96, centerOfFaceY+123, centerOfFaceX+26, centerOfFaceY+123, centerOfFaceX+61, centerOfFaceY+123+mouseY/9)
            }
        // nose 
            strokeWeight(7);
            stroke(189, 137, 102);
            noFill();
            beginShape();
                vertex(348, 311);
                vertex(337, 352);
                vertex(337, 373);
                vertex(365, 444);
                vertex(342, 467);
                vertex(319, 446);
            endShape();
            if(hair <= 1){//nose ring changes w/ hair (gold)
            strokeWeight(4);
            stroke(255, 215, 0); 
            noFill() 
            beginShape();
                vertex(330, 443);
                vertex(320, 462); 
                vertex(331, 472);
                vertex(334, 460);
            endShape();
            }
            if(hair <=2 & hair>1){// nose ring changes w/ hair (silver)  
            strokeWeight(4);
            stroke(192, 192, 192); 
            noFill(); 
            beginShape();
                vertex(330, 443);
                vertex(320, 462); 
                vertex(331, 472);
                vertex(334, 460);
            endShape();
            }
            if(hair <=3 & hair>2){// nose ring changes w/ hair (stud)
            strokeWeight(7)
            stroke(255, 215, 0)
            point(330, 443)
            }
        }
} 
function mousePressed(){
    //when you click on the mouse the eye size, hair, haircolor, mouth, and background color changes 
    eyeWidth = random(60, 150);
    eyeHeight = random(50, 100);
    hair = random(0, 3);
    mouth = random(0,3); 
    value1 = random(0, 255);
    value2 = random(0, 100);

}

Generative Art

One of the artworks that I admire is “Waves: The Abiotechnogenesis Collection”. The artist, Memo Akten finds his inspiration in nature and for this piece, his inspiration was the ocean. The ocean has existed since the beginning of time. Water is important for survival and life, people used the ocean to travel to new places, and it is where life started. I appreciated that Akten uses nature as his inspiration for computational art because it shows that nature has certain patterns and rules to it and that it follows its own function, even if that pattern can’t be immediately recognizable. When people think of nature, most people think of randomness, organic shapes that don’t follow patterns, and overall chaos, especially when it comes to the ocean. However, in reality, that might not be the case. Akten’s work reflects how nature isn’t just chaos. The artist used machine learning artificial intelligence algorithms to help create this piece. It is where AI predicts the output by given inputs. In this case, the input might have been data about wave patterns and the output would have been the waves in the artwork and the variations.

Memo Akten, Waves: The Abiotechnogenesis Collection (2021)

https://www.memo.tv/works/waves-the-abiotechnogenesis-collection/

Blog – 01

One of the computational projects that inspired me was the animation in Pixar’s Brave. Specifically, the animation of Merida’s hair. Pixar spent three years developing the software, called Taz, that was needed to properly animate her hair. The movie production took four years. Taz made sure the interactions between the strands of hair were accurate and that each coil maintained its bounce and shape. It was also used to give Merida’s hair the realistic volume and movement that curly hair would have. Additionally, they used another software to imitate the way curly hair reacts to light.

Before Merida, animations mainly had straight hair since the technology for curly/wavy hair hadn’t been developed. Both Disney and Pixar have been wanting to animate characters with curly hair. For example, Ariel in “The Little Mermaid” was originally supposed to have wavy hair. Even Tiana in “Princess and the Frog” alludes to having curly hair with small face-framing pieces, however, her hair is tied back for most of the movie so it can’t be properly seen. Growing up with wavy/curly hair and seeing my favorite characters have straight shiny hair, impacted how I saw my hair and as a result made me wish my hair was also straight. With this technology, animators had the ability to create characters with diverse hair, which leads to more representation. We are starting to see this now, with characters in more recent films such as “Encanto”.

Project – 01

This is my project

sketch
function setup() {
    createCanvas(600, 792);
    background(255);
}

function draw() {
    noStroke();
    fill(60, 20, 54);                //purple1 
        beginShape();
            vertex(237.91, 189.02);
            vertex(353.36, 180.34);
            vertex(374.09, 500.85);
            vertex(353.36, 573.62);
            vertex(310.47, 655.23);
            vertex(216.51, 626.64);
            vertex(156.26, 571.49);
            vertex(134.81, 519.4);
            vertex(119.49, 417.79);
        endShape(CLOSE);
    fill(76, 28, 90);                //purple2
        beginShape();
            vertex(353.36, 180.34);
            vertex(342.26, 420.62);
            vertex(317.23, 379.83);
            vertex(311.58, 386.17);
            vertex(322.24, 406.59);
            vertex(328.48, 398.95);
            vertex(376.85, 511.23);
            vertex(353.36, 581.7);
            vertex(310.47, 655.23);
            vertex(163.4, 554.13);
            vertex(134.81, 440.77);
            vertex(156.26, 427.49);
            vertex(163.4, 386.64);
            vertex(182.81, 401.96);
            vertex(235.91, 415.23);
            vertex(218.55, 378.47);
            vertex(219.57, 359.06);
            vertex(195.06, 342.72);
            vertex(202.21, 305.96);
            vertex(234.89, 262.04);
            vertex(234.89, 233.45);
            vertex(256.34, 196.68);
            vertex(306, 196.68);
        endShape(CLOSE);
    fill(126, 53, 79);                 //purple3
        beginShape();
            vertex(355.53, 181.45);
            vertex(256.13, 212.85);
            vertex(217.06, 330.81);
            vertex(237.91, 337.7);
            vertex(232.38, 376.77);
            vertex(256.13, 425.79);
            vertex(189.49, 416.6);
            vertex(161.15, 464.85);
            vertex(225.49, 532.26);
            vertex(227.79, 543.74);
            vertex(208.64, 556.77);
            vertex(237.91, 583.57);
            vertex(256.13, 579.32);
            vertex(242.85, 533.02);
            vertex(264, 534.55);
            vertex(285.23, 521.79);
            vertex(306, 527.66);
            vertex(299.87, 494.72);
            vertex(318.17, 465.62);
            vertex(335.79, 457.96);
            vertex(335.79, 479.4);
            vertex(323.36, 474.64);
            vertex(309.57, 495.57);
            vertex(332.47, 499.57);
            vertex(345.49, 491.4);
            vertex(366.17, 509.53);
            vertex(355.53, 521.79);
            vertex(318.6, 526.72);
            vertex(327.79, 540.34);
            vertex(314.34, 546.81);
            vertex(336.3, 597.53);
            vertex(284.21, 609.11);
            vertex(296.13, 641.79);
            vertex(329.15, 670.38);
            vertex(386.34, 661.19);
            vertex(455.86, 508.05);
            vertex(334.51, 368.6);
            vertex(339.87, 419);
            vertex(321.49, 429.87);
            vertex(308.51, 369.62);
            vertex(333.23, 369.36);
        endShape(CLOSE);

    fill(78, 34, 6);                     //brown1
        beginShape();
            vertex(180.04, 365.83);
            vertex(197.91, 346.81);
            vertex(233.49, 335.4);
            vertex(308.21, 353.79);
            vertex(304.64, 362.3);
            vertex(224.98, 359.4);
            vertex(195.02, 369.62);
            vertex(180.04, 365.83);
        endShape(CLOSE);
        beginShape();
            vertex(388.04, 399.14);
            vertex(404.04, 352.51);
            vertex(474.85, 324.51);
            vertex(474.85, 381.36);
            vertex(470.6, 392.47);
            vertex(480.98, 416.54);
            vertex(478, 494.72);
            vertex(457.83, 526.38);
            vertex(447.23, 575.4);
            vertex(410.24, 623.47);
            vertex(251.36, 540); 
            vertex(283.53, 548.51);
            vertex(419.84, 539.28); 
        endShape(CLOSE);
        beginShape();
            vertex(168.16, 588.76);
            vertex(211.7, 623.47);
            vertex(314.34, 656.48); 
            vertex(326.55, 668.27);
            vertex(342.77, 668.76);
            vertex(373.06, 792); 
            vertex(145.06, 792); 
        endShape(CLOSE); 



    fill(130, 69, 20); 
        beginShape();
            vertex(237.91, 335.4);
            vertex(252.04, 335.4);
            vertex(322.68, 353.45);
            vertex(333.23, 365.83);
            vertex(287.28, 365.79); 
            vertex(285.57, 373.19);
            vertex(310.77, 387.23);
            vertex(306, 393.62);
            vertex(279.11, 373.19);
            vertex(257.15, 373.19);
            vertex(252.04, 356.37);
            vertex(306, 362.09);
            vertex(308.21, 353.79);
        endShape(CLOSE)
        beginShape();
            vertex(275.15, 376.77);
            vertex(314.34, 401.02);
            vertex(314.34, 408.43);
            vertex(292.64, 391.06);
            vertex(270.94, 380.85);
        endShape(CLOSE);
        beginShape();
            vertex(266.17, 387.83);
            vertex(278.51, 387.4);
            vertex(294.51, 399.14);
            vertex(292.64, 402.81);
            vertex(265.74, 402.81);
            vertex(269.4, 396.04);
        endShape(CLOSE);
        beginShape();
            vertex(252.04, 410.98);
            vertex(294.94, 405.36);
            vertex(314.34, 410.98);
            vertex(308.72, 419.35);
            vertex(279.11, 427.73);
            vertex(272.47, 414.04);
        endShape(CLOSE);
        beginShape();
            vertex(373.06, 365.79);
            vertex(415.83, 319.06);
            vertex(473.15, 332.34);
            vertex(470.6, 337.45);
            vertex(438.09, 339.49);
            vertex(408.47, 353.79);
            vertex(460.89, 345.62);
            vertex(474.15, 356.37);
            vertex(461.91, 374.55);
        endShape(CLOSE);
        triangle(386.34, 374.28, 388.63, 400.13, 411.33, 372.22);
        beginShape();
            vertex(421.19, 373.19);
            vertex(440.47, 373.19);
            vertex(447.23, 379.83);
            vertex(421.19, 378.04);
        endShape(CLOSE);
        beginShape();
            vertex(422.85, 384.81);
            vertex(421.19, 392.47);
            vertex(424.89, 400.13);
            vertex(412.38, 406.58);
            vertex(413.4, 414.04);
            vertex(404.04, 416.54);
            vertex(399.62, 408.43);
            vertex(392.47, 406.58);
            vertex(404.04, 541.45);
            vertex(420.81, 539.15);
            vertex(403.19, 562.99);
            vertex(392.98, 548.85);
            vertex(356.72, 552.94);
            vertex(361.32, 559.83);
            vertex(351.28, 561.36);
            vertex(344.21, 568.26);
            vertex(312.81, 565.7);
            vertex(312.81, 573.45);
            vertex(324.81, 576.43);
            vertex(342.77, 596.85);
            vertex(355.53, 600.26);
            vertex(356.72, 660.5);
            vertex(321.49, 666.3);
            vertex(327.79, 670.38);
            vertex(384.3, 664.26);
            vertex(402, 643.83);
            vertex(421.19, 578.32);
            vertex(440.47, 558.72);
            vertex(452.38, 526.38);
            vertex(473.15, 489.96);
            vertex(478, 416.54);
            vertex(442.38, 400.13);
            vertex(447.23, 390.17);
            vertex(439.06, 384.81); 
        endShape(CLOSE);
    fill(183, 95, 53);        //orange 
        beginShape();
            vertex(237.91, 324.51);
            vertex(259.79, 225.45);
            vertex(352.98, 189.02);
            vertex(461.91, 259.49);
            vertex(473.15, 289.45);
            vertex(473.15, 327.91);
            vertex(404.04, 349.19);
            vertex(392.81, 359.4);
            vertex(422.85, 359.4);
            vertex(460.55, 349.19);
            vertex(460.21, 369.36);
            vertex(386.68, 380);
            vertex(401.97, 422.55);
            vertex(429.57, 417.11);
            vertex(420.38, 410.3);
            vertex(440.81, 406.21);
            vertex(444.55, 415.74);
            vertex(461.91, 413.02);
            vertex(470.6, 424.6);
            vertex(470.6, 485.19);
            vertex(452.38, 513.45);
            vertex(430.94, 506.64);
            vertex(427.87, 523.66);
            vertex(404.04, 547.83);
            vertex(351.28, 552.94);
            vertex(337.32, 544.77);
            vertex(345.83, 529.11);
            vertex(362.85, 526.38);
            vertex(375.11, 513.11);
            vertex(351.28, 493.02);
            vertex(348.55, 469.53);
            vertex(354.34, 456.94);
            vertex(356.72, 435.49);
            vertex(347.53, 414.72);
            vertex(322.68, 353.45);
        endShape(CLOSE);
        beginShape();
            vertex(339.87, 572.17);
            vertex(389.4, 563.49);
            vertex(391.28, 570.13);
            vertex(376.13, 591.06);
            vertex(359.79, 595.15);
            vertex(341.57, 583.23);
        endShape(CLOSE);
        beginShape(); 
            vertex(299.87, 625.45);
            vertex(351.28, 613.19);
            vertex(377.15, 595.83);
            vertex(408.47, 556.34);
            vertex(416.64, 551.23);
            vertex(408.81, 617.62);
            vertex(399.96, 645.53);
            vertex(351.28, 661.19);
            vertex(306, 643.49);
        endShape(CLOSE);
        beginShape();
            vertex(197.91, 425.79);
            vertex(299.87, 425.79);
            vertex(314.34, 437.02);
            vertex(288.3, 504.43);
            vertex(254.6, 521.79);
            vertex(215.79, 502.38);
            vertex(200.98, 469.19);
        endShape(CLOSE);
        quad(259.96, 362.09, 275.15, 366.3, 275.15, 369.49, 259.96, 369.49);
    fill(227, 122, 43);
        beginShape();
            vertex(284.21, 218.47);
            vertex(328.13, 205.7);
            vertex(361.32, 201.62);
            vertex(462.94, 265.45);
            vertex(470.6, 326.72);
            vertex(392.47, 350.72);
            vertex(374.6, 396);
            vertex(392.47, 505.96);
            vertex(374.09, 509.53);
            vertex(358.77, 496.77); 
            vertex(351.62, 480.43);
            vertex(361.83, 468.17);
            vertex(361.83, 436.51);
            vertex(352.64, 418.13);
            vertex(335.79, 354.3);
            vertex(252.04, 319.06);
            vertex(264, 258.3);
        endShape(CLOSE);
        beginShape();
            vertex(375.11, 399.14);
            vertex(384.98, 399.14);
            vertex(394.17, 418.81);
            vertex(411.19, 426.98);
            vertex(456.13, 419.15);
            vertex(465.32, 431.4);
            vertex(463.62, 486.21);
            vertex(442.17, 503.91);
            vertex(416.3, 496.77);
            vertex(419.36, 517.19);
            vertex(406.09, 544.09);
            vertex(355.02, 551.23);
            vertex(342.77, 540.68);
            vertex(355.02, 532.51);
            vertex(361.32, 546.47);
            vertex(369.66, 523.66);
            vertex(407.45, 504.6);
            vertex(372.38, 409.62);
        endShape(CLOSE);
        circle(252.34, 472.46, 81.9);
        beginShape()
            vertex(401.66, 565.7);
            vertex(411.36, 565.7);
            vertex(404.04, 583.57);
            vertex(406.26, 623.91);
            vertex(390.94, 649.96);
            vertex(335.28,649.96);
            vertex(321.49, 628);
            vertex(370, 617.79);
            vertex(385.83, 602.47);
            vertex(384.3, 592.26);
        endShape(CLOSE);
        beginShape()
            vertex(422.85, 364);
            vertex(435.62, 358.13);
            vertex(437.91, 349.19);
            vertex(455.79, 349.19);
            vertex(461.91, 359.91);
            vertex(446.85,369.62);
        endShape(CLOSE); 
        triangle(351.28, 581.19, 374.09, 565.7, 384.3, 576.77);
    fill(251, 151, 55);
        beginShape();
            vertex(306, 220);
            vertex(364.38, 215.91);
            vertex(443.53, 253.19);
            vertex(463.45, 284.84);
            vertex(466, 322.64);
            vertex(406.77, 342.55);
            vertex(377.66, 359.4);
            vertex(374.47, 388.51);
            vertex(373.06, 417.79);
            vertex(399.62, 483.83);
            vertex(392.47, 500.85);
            vertex(382.26, 507.66);
            vertex(361.83, 488.6);
            vertex(369.66, 467.15);
            vertex(364.89, 427.32);
            vertex(351.62, 396);
            vertex(346.51, 354.81);
            vertex(290.34, 319.06);
            vertex(306, 297.62);
            vertex(295.45, 264.94);
        endShape(CLOSE);
        beginShape();
            vertex(379.17, 415.48);
            vertex(410.6, 430.38);
            vertex(425.4, 430.38);
            vertex(443.53, 419.91);
            vertex(460.89, 426.81);
            vertex(460.89, 475.32);
            vertex(454.51, 492.17);
            vertex(435.36, 494.21);
            vertex(411.36, 476.09);
            vertex(411.11, 516.68);
            vertex(402.94, 532.77);
            vertex(370.77, 545.28);
            vertex(370.77, 527.15);
            vertex(393.74, 509.79);
            vertex(403.19, 487.06);
        endShape(CLOSE);
        beginShape();
            vertex(331.7, 632.6);
            vertex(382.77, 620.34);
            vertex(392.98, 628.51);
            vertex(386.34, 643.83);
            vertex(356.21, 643.83);
        endShape(CLOSE);
        circle(256.55, 469.11, 60.78);

    fill(254, 187, 79);    //yellow 
        beginShape();
            vertex(356.72, 373.19);
            vertex(373.06, 379.3);
            vertex(373.06, 414.04);
            vertex(364.89, 414.04);
            vertex(356.72, 396);
        endShape(CLOSE);
        beginShape();
            vertex(374.98, 420.62);
            vertex(425.15, 438.55);
            vertex(450.68, 430.38);
            vertex(457.83, 448.77);
            vertex(453.74, 478.38);
            vertex(443.53, 482.47);
            vertex(411.87, 467.15);
            vertex(392.47, 472.97);
        endShape(CLOSE)
        beginShape();
            vertex(373.06, 433.45);
            vertex(399.62, 491.66);
            vertex(392.47, 500.85);
            vertex(375.11, 487.57);
            vertex(377.15, 476.34);
        endShape(CLOSE);
        beginShape(); 
            vertex(272.47, 391.06);
            vertex(287.28, 393.62);
            vertex(287.28, 400);
            vertex(270.94, 401.02);
        endShape(CLOSE);
        quad(424.89, 387.23, 440.47, 387.23, 440.47, 398.21, 424.89, 398.21);
        ellipse(392.47, 284.83, 95.34, 105.14);

    fill(21, 6, 1);                       //black hair 
        beginShape();
            vertex(90.17, 131.15);
            vertex(171.91, 65.79);
            vertex(333.23, 54.55);
            vertex(442.38, 120.94);
            vertex(507.36, 254.21);
            vertex(528, 792);
            vertex(321.49, 792);
            vertex(343.77, 668.76);
            vertex(384.3, 664.26);
            vertex(402, 643.83);
            vertex(409.83, 623.4);
            vertex(447.23, 575.4);
            vertex(457.83, 526.38);
            vertex(478, 494.72);
            vertex(480.98, 416.54);
            vertex(470.6, 392.47);
            vertex(474.85, 381.36);
            vertex(473.15, 289.45);
            vertex(457.83, 262.24);
            vertex(352.98, 189.02);
            vertex(240.81, 215.91);
            vertex(223.96, 280.26);
            vertex(169.57, 319.06);
            vertex(161.32, 346.81);
            vertex(181.74, 388.85);
            vertex(151.79, 352.51);
            vertex(149.4, 425.79);
            vertex(138.15, 381.74);
            vertex(123.29, 410.44);
            vertex(141.34, 535.26);
            vertex(156.26, 571.49);
            vertex(211.7, 620.34);
            vertex(248.47, 792);
            vertex(0, 792);
            vertex(0, 455.91);
        endShape(CLOSE);
    fill(40, 20, 16);                          //brown2
        beginShape();
            vertex(146.85, 147.49);
            vertex(154.86, 80.66);
            vertex(173.75, 65.92);
            vertex(274.94, 58.66);
            vertex(294.51, 85.7);
            vertex(265.32, 77.02);
            vertex(244.13, 93.87);
            vertex(194.68, 119.91);
            vertex(186.68, 114.3);
            vertex(146.85, 147.49);
        endShape(CLOSE);
        beginShape();
            vertex(251.36, 115.83);
            vertex(314.34, 101.02);
            vertex(361.32, 172.51);
            vertex(355.53, 182.21);
            vertex(327.11, 190.67);
            vertex(290.34, 189.02);
            vertex(310.77, 167.91);
            vertex(252.04, 155.66);
            vertex(285.57, 136.77);
        endShape(CLOSE);
    fill(56, 17, 4);
        beginShape();
            vertex(150.94, 147.49);
            vertex(150.94, 95.4);
            vertex(180.04, 62.21);
            vertex(252.04, 56.09);
            vertex(247.45, 73.96);
            vertex(230.09, 64.77);
            vertex(202, 98.47);
            vertex(180.04, 89.79);
        endShape(CLOSE);
        beginShape();
            vertex(327.11, 180.17);
            vertex(356.72, 171.49);
            vertex(322, 114.81);
            vertex(317.91, 137.28);
            vertex(337.31, 159.23);
            vertex(327.11, 180.17);
        endShape(CLOSE);













            



        



}