daphnel-Project 05-Wallpaper

bg

//Daphne Lee
//15-104::1 (9:30am) Section D
//daphnel@andrew.cmu.edu
//Project-05-Background

var spaceX = 60; //controlled distances of circles
var spaceY = 60;//controlled distances of circles
var circleSize=90;
var cirX = 35;
var cirY = 35;

function setup() {
    createCanvas(480, 480);
    background(250, 230, 230);
    var trans = randomGaussian(25,100);
    var widthMore= 50
    var heightMore = 100;

    for (var y = 0; y < 9; y++) {
        for (var x = 0; x < 9; x++) {
            var cy = cirY + y * spaceY;
            var cx = cirX + x * spaceX;
            fill(255, 230, 179, trans);
            stroke(255);
            strokeWeight(5);
            //circles;
            ellipse(cx-circleSize/2, cy-circleSize/2, circleSize, circleSize);
        }
    }
    //added to width and height to make lines stretch more across canvas;
    for(var x = 0; x <= width+widthMore; x+=30){
      for(var y = 0; y <= height+heightMore; y+=50){
      strokeWeight(0.5);
      stroke(255);
      //different increments make the criss cross patterns for the lines;
      var xIncrement = 50;
      var yIncrement1= 20;
      var yIncrement2= 50;
      //line pattern in background;
      line(x-xIncrement,y-yIncrement1,x + xIncrement, y-yIncrement2);
      line(x+xIncrement, y+yIncrement2, x- xIncrement, y+yIncrement1);
    }
  } noLoop();
}

I started off wanting a circle based design. I tried to understand the idea of using loops in more depth so I combined the circles and lines to create a more aesthetic look. At the beginning, my main focus was just to get circles aligned side by side by each other throughout the entire canvas. After experimenting with the function, I realized that having them overlap looked pretty good. The way the loop of lines turned out was coincidental and I liked the way they turned out. I wanted to make the circle designs the main focus so I increased the stroke intensity for the circles and decreased it for the lines. Overall, I think this project was relatively more simple and I think it would be a cute design for a summer dress or skirt!

cduong-assignment05-wallpaper

sketch

function setup() {
    createCanvas(475, 450);
    background(244, 174, 163);

    noLoop();
}

function draw() {

   //White Vertical Lines
   for (var lx = 10; lx <= 470; lx += 45) {
     stroke(255)
     strokeWeight(3);
     line(lx, 0, lx, 480);
  }
  //White Vertical Lines

  //White Circles (Odd Horizontal Lines)
  for(var ssx = 0; ssx < 480; ssx += 90){
    for(var ssy = 0; ssy < 550; ssy += 180){
  stroke(255);
  strokeWeight(2);
  fill(244, 174, 163);
  ellipse(ssx+55, ssy+40, 50, 50);
  }
}
  //White Circles (Odd Horizontal Lines)

  //White Circles (Even Horizontal Lines)
  for(var ssx = 0; ssx < 480; ssx += 90){
    for(var ssy = 0; ssy < 550; ssy += 180){
      stroke(255);
      strokeWeight(2);
      fill(244, 174, 163);
      ellipse(ssx+10, ssy+130, 50, 50);
    }
}
  //White Circles (Even Horizontal Lines)

  //Onion Character (Odd Horizontal Lines)
  for(var onionx = 0; onionx < 450; onionx += 180){
    for(var oniony = 0; oniony <550; oniony += 180){
      fill(255);
      noStroke();
      ellipse(onionx+55, oniony+50, 30, 30);

    for(var leafx = 0; leafx < 540; leafx += 180){
      for(var leafy = 0; leafy < 540; leafy += 180){
        fill(170, 235, 176);
        ellipse(leafx+65, leafy+35, 20, 10);
        ellipse(leafx+45, leafy+35, 20, 10);
        }
      }
    }
  }
  //Onion Character (Odd Horizontal Lines)

  //Lone Sprout (Odd Horizontal Lines)
  for(var sproutx = 0; sproutx < 540; sproutx += 90){
    for(var sprouty = 0; sprouty < 360; sprouty += 180){
  fill(170, 235, 176);
  ellipse(sproutx, sprouty+105, 20, 10);
  ellipse(sproutx+20, sprouty+105, 20, 10);
  }
}
  //Lone Sprout (Odd Horizontal Lines)


}

I wanted to incorporate something I’ve been using in my past assignments, which is this white circle with a sprout coming out of the top of its head because I really enjoy drawing that character. I also wanted to make a repetitive pattern in the background so I was playing around with different patterns for a while until I realized that maybe I should keep it consistent with the circluar head of the character and make a background with circles and lines.

enwandu-Looking Outwards-05

Sanctuary by Akin Adekile (2016)

Sanctuary;  3D Computer Graphics

Akin Adekile is a 3D modeler, texture artist and designer. He graduated from the Gnomon School of Visual Arts in Los Angeles where he specialized in hard surface and environmental modeling for film. I find the project particularly interesting because he essentially remade a painting he had previously done, using 3D modeling tools. The ability to jump between 2D, and 3D representation, in order to understand 3D dimensional space is something I can relate too, as a student of architecture. Something I consider essential, and something I admire greatly.

Adekile used a range of tools: Maya, 3Ds max, Speedtree and Substance Painter – to create this visually stunning image. By recreating his own work in 3D and producing a 2D render, Adekile could both transfer, and refine some of his artistic sensibilities. Looking at both the original painting and the 3D computation, there is a commendable level of precision, with them each evoking similar, but eerily different emotions.

Sanctuary; original painting

ablackbu-Project-05-Wallpaper

sketch

function setup() {
    createCanvas(400, 348);
    background(188,221,217);
    strokeWeight(0);
    var tw = 66.67; //space bettween cirbles horizontally (60)
    var th = 58; //Space between circles vertically (60 * 0.87)
    var row = 7; //number of circles in each row

    fill(234,94,83);

    //make a hexagonal grid 
    for (var y = 0; y < 7; y++) {
        for (var x = 0; x < row; x++) {
            var py = y * th;
            var px = x * tw;
            
            if(y % 2 != 0){ //for even rows
                row=6; //only make 6
                px=px+33.335; //offset row
            }else{
                row=7;
            }

            ellipse(px, py, 50, 70); // make ellipse for body
            ellipse(px+33.335,py,40,20); //make ellipse for arms
            ellipse(px,py-40,20,20); //make ellipse for head

        }
    }
    
    
    //blue circles
    fill(188,221,217);
    ellipse(width/2,height/2,150,150);
    
    ellipse(width/4,height/4,80,80);
    ellipse(width/8,height/8,40,40);
    ellipse(0,0,20,20);
    
    ellipse(3*width/4,3*height/4,80,80);
    ellipse(7*width/8,7*height/8,40,40);
    ellipse(0,height,20,20);

    ellipse(3*width/4,height/4,80,80);
    ellipse(7*width/8,height/8,40,40);
    ellipse(width,0,20,20);

    ellipse(width/4,3*height/4,80,80);
    ellipse(width/8,7*height/8,40,40);
    ellipse(width,height,20,20);

    noLoop();
}

wallpaper patterned

This project especially go the creative energy flowing. I used 2 for loops to make a hexagonal grid that I then filled with multiple shapes to create an interesting geometric pattern.

I found these colors a little bit by chance and I think they really work well together. I could really see this tiled onto a bathroom wall.

hyt-Project-05: Wallpaper Drawing

hyt-05-project

// helen tsui
// 15-104 section d
// hyt@andrew.cmu.edu
// project-03-dynamic-drawing


//var x1; // wave left coordinate;
//var x2 = 30; // wave right coordinate

var angleL = -160;
var angleR = -20;
var span = 40;
var wx; // waveX;
var wy; // waveY;
var r = 245; 
var g = 245;
var b = 230;


function setup() {
  createCanvas(400, 400);
  angleMode(DEGREES);
  background(24, 42, 81);
}

// a wallpaper of small fishes swimming down the ocean
function draw() {

    for(var wy = 0; wy < 30; wy ++) { // wave y coordinate increment
            
            for (var wx = 0; wx <= 10; wx++) { // wave x coordinate increment
            
            if (wy % 2 == 0) {
                noFill();
                strokeWeight(1.8);
                stroke(r, g, b);
                arc(15 + wx * span, 25 + wy * 30, 40, 40, angleL, angleR); // first wave
                strokeWeight(1.5);
                stroke(r, g, b - 30);
                arc(18 + wx * span, 30 + wy * 30, 40, 30, angleL + 15, angleR - 10); 
                strokeWeight(1);
                stroke(r, g, b - 60);
                arc(4 + wx * span, 35 + wy * 30, 40, 30, angleL + 5, angleR - 20); 
                strokeWeight(0.8);
                stroke(r, g, b - 90);
                arc(20 + wx * span, 42 + wy * 30, 40, 30, angleL - 5, angleR - 0); 
            }

            if (wy % 2 == 1) {
                noFill();
                strokeWeight(1.8);
                arc(30 + wx * span, 25 + wy * 30, 40, 40, angleL, angleR); // first wave
                strokeWeight(1.5);
                arc(33 + wx * span, 30 + wy * 30, 40, 30, angleL + 15, angleR - 10); 
                strokeWeight(1);
                arc(19 + wx * span, 35 + wy * 30, 40, 30, angleL + 5, angleR - 20); 
                strokeWeight(0.8);
                arc(35 + wx * span, 40 + wy * 30, 40, 30, angleL - 5, angleR); 
            }
        }
        }
    noLoop();
    }




For this project, I started out searching through the wallpaper links provided by the instructions, and i became intrigued by one of the Japanese wave-like prints (which is often used for clothing and paper prints). Inspired by that, I sketched some images down, hoping to create a similar pattern with a bit more dimensionality. For the end result, the most challenging parts were the wave movements created by crossing arc functions, as well as the gradient color choices which took me a while to figure out.

aboyle-Project-05-Wallpaper

aboyle wallpaper

function setup() {
    createCanvas(400, 400);
    noLoop();
}

function draw() {
    background(191, 220, 249);
//creates light lines in the background
    for(x=10; x<width+50; x+=100){
      strokeWeight(4);
      stroke(238,245,247)
      line(x,0,x,400)
      strokeWeight(2);
      stroke(222,245,252);
      line(x+50,0,x+50,400)
    }
//jellyfish tentacles
    noFill();
    oneTentacles();
    twoTentacles();
    threeTentacles();
    fourTentacles();
//jellyfish bodies
    strokeWeight(0);
    jellyfishOne();
    jellyfishTwo();
    jellyfishThree();
    jellyfishFour();
  }

//orange jellyfish
function jellyfishOne(){
    for (var x=10; x<width+50; x+=100){
      for(var y=25; y<height+50; y+=100){
      //body
      fill(236, 190, 130);
      ellipse(x,y,15);
      triangle(x,y,x-2,y-10,x+12,y-2)
      //highlight
      fill(247, 222, 188);
      ellipse(x-1,y-1,7)
    }
  }
}

//purple jellyfish
function jellyfishTwo(){
  for (var x=15; x<width+50; x+=100){
    for(var y=50; y<height+50; y+=100){
      //body
      fill(182, 137, 212);
      ellipse(x,y,20);
      triangle(x,y,x,y+15,x+15,y+4);
      //highlight
      fill(216, 182, 239);
      ellipse(x, y-4, 9);
    }
  }
}

//large lavender jellyfish
function jellyfishThree(){
  for (var x=65; x<width+50; x+=100){
    for(var y=40; y<height+50; y+=100){
      //body
      fill(212,137,209);
      ellipse(x,y,30);
      triangle(x,y,x-20,y+5,x-12,y-18)
      //highlight
      fill(236,191,235);
      ellipse(x-1,y-6,13);
    }
  }
}

//pink jellyfish
function jellyfishFour(){
  for (var x=-10; x<width+50; x+=100){
    for(var y=-20; y<height+50; y+=100){
      //body
      fill(242, 146, 178);
      ellipse(x,y,25);
      triangle(x,y,x-18,y+3,x-5,y+17)
      //highlight
      fill(250,199,216);
      ellipse(x-3,y-3,11)
    }
  }
}

//orange tentacles
function oneTentacles(){
  for (var x=10; x<width+50; x+=100){
    for(var y=25; y<height+50; y+=100){
      stroke(159,87,24);
      curve(x-85,y+20,x,y,x+5,y-25,x-85,y-20);
      curve(x-90,y+20,x-3,y,x-1,y-25,x-90,y-20);
      curve(x-95,y+20,x-6,y,x-7,y-25,x-95,y-20);
}
}
}

//purple tentacles
function twoTentacles(){
  for (var x=15; x<width+50; x+=100){
    for(var y=50; y<height+50; y+=100){
      stroke(102, 51, 102);
      curve(x-95,y-20,x,y,x+20,y+40,x-95,y+50);
      curve(x-100,y-20,x-5,y,x+14,y+40,x-100,y+50);
      curve(x-105,y-20,x-9,y,x+8,y+40,x-105,y+50);
}
}
}

//large lavender tentacles
function threeTentacles(){
  for (var x=65; x<width+50; x+=100){
    for(var y=40; y<height+50; y+=100){
      stroke(129,73,128);
      bezier(x-15,y-70,x+30,y-60,x-95,y-10,x,y)
      bezier(x-10,y-75,x+35,y-60,x-85,y-15,x+5,y)
      bezier(x-5,y-80,x+40,y-60,x-75,y-20,x+10,y)
    }
}
}

//pink tentacles
function fourTentacles(){
  for (var x=90; x<width+50; x+=100){
    for(var y=-20; y<height+50; y+=100){
      stroke(134,67,89);
      bezier(x,y,x-60,y+20,x+30,y+50,x-12,y+80)
      bezier(x+6,y,x-55,y+20,x+35,y+50,x-7,y+80)
      bezier(x+10,y,x-50,y+20,x+40,y+50,x-2,y+80)
}
}
}

For some reason, when I thought of wallpaper my mind immediately went to jellyfish. I sketched out a grid and mapped four different jellyfish onto it, seen below.

While the bodies of the jellyfish end up in roughly the same position, I changed the position of the tentacles while I was coding. Although I could’ve put the code for the tentacles under the jellyfish body functions, it helped me mentally to organize them separately.

In the end, I had less space than I thought I would so I couldn’t include any shells for decoration. I tried to pick colors that were light and cartoony; I was going for a “child’s bathroom” kind of vibe. I also added some light lines in the background to make it more visually interesting. Overall, I’m pretty happy with how it turned out!

cduong-Looking Outward 05

I was looking at George Nijiland’s works (http://www.triple-d.nl/52723/portfolio) and noticed that they were just all so beautiful. The one that really captured my eye was his most recent project, Project: Varne Buiten. This is a project that is a design for an “outside residence” on the edge of Heiloo. The goal of the project it to create a neighborhood for the young and the old and consists of 15 luxury apartments per building. I am unsure if this apartment even exists because it looks so real in the rendering and I haven’t been able to find it on google maps but I found a website selling a housing unit in the building. (https://www.funda.nl/nieuwbouw/heiloo/project-49219271-varne-buiten-fase-5-appartementen/).

What I like about this project is the fact that George Nijiland is designing buildings and instead of only drawing plans, sections, elevations, etc. he creates renderings that make the house just look absolutely breathtaking and real and it really makes the viewer imagine what it would be like if they were at the building. I only recently learned about architectural rendering and I find it really fun and amazing, so George Nijiland’s projects really captured my attention because of just how amazingly real his renderings look.

George Nijiland uses programs like 3dsMax, Vray, and Photoshop with plugins like Forestpack pro, Multiscatter, floor generator, mightytiles, HDRI, etc. When creating his architecture he has to think of the constraints that his building must have while designing, which really holds him back from designing too far ahead. Such constraints include the architectural market in Holland, which is considerably bad so George Nijiland has a difficult time finding projects sometimes and finding people who would want the types of projects that he makes. He also thinks more about what he wants to communicate through his drawings and renders rather than focusing on his render technique.

George Nijiland used to work on office furniture manufactures and design and photography, which are skills that he uses in his current work, architectural renderings. He really likes designing the interiors of his houses, which you can see in his renders because he really focuses on the detail of the house both inside and out, even allowing the audience to see little bits of furniture when they’re just looking at the exterior of the house to make the house look like it’s already being lived in in the renders. He also gets a lot of inspiration from websites like pinterest, architectural books, facebook, magazines, photography, etc. which you can somewhat see in his works because his work does have a sort of aesthetic look to it that just makes you want to look at it forever.

Title of Work: Project Varne Buiten
Created by: George Nijiland
Date: June 2017

Sources
http://www.triple-d.nl/52723/portfolio
https://www.behance.net/Triple-D
http://www.nieuwbouw-varnebuiten.nl/
https://krk.nl/wonen/nieuwbouw/varne-buiten-fase-5-appartementen-heiloo
http://www.3darchitettura.com/george-nijland/

sunmink-Project-05-Wallpaper

sketch

//SunMin Kim 
//Section E
//sunmink@andrew.cmu.edu
//project-05

function setup() {
    createCanvas(480, 480);
    background(222, 141, 148);
    var tw = 50;  
    var th = 50;  
    var y = 100; 
    var x = 100; 

    noStroke(); 

    for (var y = 0; y < 8; y++) {
        for (var x = 0; x < 8 ; x++) {
            var posy = y + y * 1.3 *th + 15; 
            var posx = x + x * 1.1 *tw;  

            //ice cream top 
            fill(240, 230, 180);
            ellipse(posx + 50, posy + 9, 18, 19); 

            //sprinkles 1 on ice cream 
            fill(226, 161, 73);
            rect(posx + 54, posy + 4, 3, 2); 

            //sprinkles 2 on ice cream 
            fill(210, 61, 59);
            rect(posx + 48, posy + 4, 3, 2); 

            //sprinkles 3 on ice cream 
            fill(56, 83, 168);
            rect(posx + 52, posy, 3, 2); 


            //ice cream cone 
            fill(158, 65, 65);
            triangle(posx + 60, posy + 10, posx +40, posy + 10, (tw*sqrt(3)/2) + posx -10 , posy+th);
        }
    }
    noLoop();
}

function draw() { 
}




        






            
    

After finishing assignments using for() loops, I was excited to create patterns instead of inputting individual functions. Thus for the wallpaper, I wanted to take benefits of for() loop and create a creative wallpaper I want to purchase. I first created the ice-cream cone and followed by ice-cream and sprinkles on it.

Throughout this project, I struggled the most when coming up with triangle coordinates. I feel good with the outcome that I successfully used triangles for this wallpaper which was the most challenging part during the project.

rkondrup-project-05-wallpaper

sketch

//ryu kondrup
//rkondrup@andrew.cmu.edu
//section d
//project-05-wallpaper

//rectangle width is 120 pixels
var rectHalf = 60;

function setup() {
    createCanvas(480, 480);
    background(155, 213, 198);
}
function draw() {

    //horizontal odd-numbered rows
    for (x = 0; x < 10; x ++ ) {
        for (y = 0; y < 10; y ++) {
            shrimp(x*2*rectHalf, y*4*rectHalf);
        }

    }
    //horizontal even-numbered rows
    for (x = 0; x < 10; x ++ ) {
        for (y = 0; y < 10; y ++) {
            shrimp(x*2*rectHalf-rectHalf, y*4*rectHalf+2*rectHalf);
        }
    }
noLoop();
}

function shrimp(x, y) {
    push();
    translate(x, y);
    darkestRed = color(200, 64, 62);
    darkRed = color(251, 104, 102);
    medRed = color(251, 134, 132);
    white = color(255, 252, 215);
    lightBlue = color(213, 233, 198);
    blue = color(155, 213, 198);

/*    //temporary box
    fill(blue);
    rect(0, 0, 2*rectHalf, 2*rectHalf);
    */

    //background water blue
    strokeWeight(4);
    fill(blue);
    noStroke();
    //left arc
    fill(medRed);
    stroke(white);
    arc(rectHalf, rectHalf,
        2*rectHalf, 2*rectHalf,
        PI/2, 3*PI/2);
    //triangle head
    fill(darkRed)
    triangle(rectHalf, 0,
             2*rectHalf, 0,
             rectHalf, rectHalf);
    //small arc inside
    fill(blue);
    arc(rectHalf, rectHalf+20,
        40, 40,
        PI/2, 3*PI/2);
    //eye
stroke(white);
    fill(darkestRed);
    ellipse(23 + rectHalf, 15, 15);
    //tail polygon
    stroke(white)
    fill(darkRed);
    beginShape();
        vertex(rectHalf, rectHalf + 40);
        vertex(2*rectHalf, rectHalf);
        vertex(2*rectHalf, 2*rectHalf);
        vertex(rectHalf, 2*rectHalf);
    endShape(CLOSE); //still broken
    pop();
}

For this design I wanted to create something simple with mellow colors. In making this, I created a single tile and repeated it in staggered rows. I considered overlapping the tiles but visually the overlaps did not seem comfortable so I left them in a snug edge-to-edge arrangement.

creyes1-Project-05-Wallpaper

creyes1 Project-05

//Christopher Reyes
//Section D
//creyes1@andrew.cmu.edu
//Project-05 (Wallpaper)

var paleyellow = [255, 252, 125];
var clovergreen = [127, 201, 108];
var lightBlue = [232, 242, 247];
var gray = [122, 122, 122];

var circleSize1 = 6;
var circleSize2 = 10;
var petalWidth = 19;
var petalHeight = 46;
var angle = 0;

var spacingx = 80;
var spacingy = 60;
var offset = 30;


function setup() {
    createCanvas(480, 480);
    background(256);
    angleMode(DEGREES);
    noStroke();

    //Light blue circles between main elements
    for (var x = 1; x <=7; x++) {
            for (var y = 1; y <= 9; y++) {
                fill(lightBlue);
                ellipse(x*spacingx-(70), y*spacingy-(60), 20);
            }
    }

    //Draws alternating clovers and flowers down several columns
    for (var x = 1; x <= 7; x++) {
        if (x%2 === 0) {
            for (var y = 1; y <= 8; y++) {
                if (y%2 === 0) {
                    drawFlower(x*spacingx -offset, y*spacingy -offset, .4);
                } else {
                    drawClover(x*spacingx -offset, y*spacingy -offset, .4);
                }
            }
        } else {
            for (var y = 1; y <= 8; y++) {
                if (y%2 === 0) {
                    drawClover(x*spacingx -offset, y*spacingy -offset, .4);
                } else {
                    drawFlower(x*spacingx -offset, y*spacingy -offset, .4);
                }
            }
        }
    }

    noLoop();

}

//Draws a flower at designated coordinates and at selected scale
function drawFlower(x, y, SCALE) {

    //Gray center circle
    fill(122);
    ellipse(x, y, circleSize2 * SCALE);

    //Draws 8 yellow petals rotated around a center point
    for(var i = 0; i < 8; i++) {
        fill(paleyellow);
        push();
        translate(x, y);
        rotate(angle);
        ellipse(0, -35 * SCALE, petalWidth * SCALE, petalHeight * SCALE);
        fill(122);

        //Draws accent circles at top and bottom of flower
        if (i === 0 || i === 4) {
            fill(gray);
            ellipse(0, (-30-petalHeight) * SCALE, circleSize1 * SCALE);
            ellipse(0, (-20-petalHeight) * SCALE, circleSize2 * SCALE);
        }

        //Small gray circles between petals (8)
        pop();
        push();
        translate(x, y);
        rotate(angle+22.5);
        fill(gray);
        ellipse(0, -45 * SCALE, circleSize1 * SCALE);
        pop();

        angle += 45;
    }

}

function drawClover(x, y, SCALE) {
    fill(clovergreen);

    //Middle Leaf
    beginShape();
        vertex(x, y+(38.5*SCALE));

        bezierVertex(x, y+(38.5*SCALE),
                     x+(38*SCALE), y-(52.5*SCALE),
                     x+(27*SCALE), y-(59.5*SCALE));

        bezierVertex(x+(16*SCALE), y-(66.5*SCALE),
                     x, y-(38.5*SCALE),
                     x, y-(38.5*SCALE));

        bezierVertex(x, y-(38.5*SCALE),
                     x-(16*SCALE), y-(66.5*SCALE),
                     x-(27*SCALE), y-(59.5*SCALE));

        bezierVertex(x-(27*SCALE), y-(59.5*SCALE),
                     x-(38*SCALE), y-(52.5*SCALE),
                     x, y+(38.5*SCALE));
    endShape();

    //Middle-Right Leaf
    beginShape();
        vertex(x+(5.4*SCALE), y+(38.5*SCALE));

        bezierVertex(x+(5.4*SCALE), y+(38.5*SCALE),
                     x+(70*SCALE), y+(3.5*SCALE),
                     x+(67*SCALE), y-(5.5*SCALE));

        bezierVertex(x+(65*SCALE), y-(15.5*SCALE),
                     x+(42*SCALE), y-(7.5*SCALE),
                     x+(42*SCALE), y-(7.5*SCALE));

        bezierVertex(x+(42*SCALE), y-(7.5*SCALE),
                     x+(47*SCALE), y-(31.5*SCALE),
                     x+(37*SCALE), y-(33.5*SCALE));

        bezierVertex(x+(28*SCALE), y-(34.5*SCALE),
                     x+(5.4*SCALE), y+(38.5*SCALE),
                     x+(5.4*SCALE), y+(38.5*SCALE));
        endShape();

    //Middle-Left Leaf
    beginShape();
        vertex(x-(5.4*SCALE), y+(38.5*SCALE));

        bezierVertex(x-(5.4*SCALE), y+(38.5*SCALE),
                     x-(70*SCALE), y+(3.5*SCALE),
                     x-(67*SCALE), y-(5.5*SCALE));

        bezierVertex(x-(65*SCALE), y-(15.5*SCALE),
                     x-(42*SCALE), y-(7.5*SCALE),
                     x-(42*SCALE), y-(7.5*SCALE));

        bezierVertex(x-(42*SCALE), y-(7.5*SCALE),
                     x-(47*SCALE), y-(31.5*SCALE),
                     x-(37*SCALE), y-(33.5*SCALE));

        bezierVertex(x-(28*SCALE), y-(34.5*SCALE),
                     x-(5.4*SCALE), y+(38.5*SCALE),
                     x-(5.4*SCALE), y+(38.5*SCALE));
    endShape();

    //Far-Right Leaf
    beginShape();
        vertex(x+(15*SCALE), y+(38.5*SCALE));

        bezierVertex(x+(15*SCALE), y+(38.5*SCALE),
                     x+(75*SCALE), y+(37.5*SCALE),
                     x+(77*SCALE), y+(32.5*SCALE));

        bezierVertex(x+(79*SCALE), y+(27.5*SCALE),
                     x+(60*SCALE), y+(26.5*SCALE),
                     x+(60*SCALE), y+(26.5*SCALE));

        bezierVertex(x+(60*SCALE), y+(26.5*SCALE),
                     x+(74*SCALE), y+(15.5*SCALE),
                     x+(69*SCALE), y+(12.5*SCALE));

        bezierVertex(x+(63*SCALE), y+(9.5*SCALE),
                     x+(15*SCALE), y+(38.5*SCALE),
                     x+(15*SCALE), y+(38.5*SCALE));
    endShape();

    //Far-Left Leaf
    beginShape();
        vertex(x-(15*SCALE), y+(38.5*SCALE));

        bezierVertex(x-(15*SCALE), y+(38.5*SCALE),
                     x-(75*SCALE), y+(37.5*SCALE),
                     x-(77*SCALE), y+(32.5*SCALE));

        bezierVertex(x-(79*SCALE), y+(27.5*SCALE),
                     x-(60*SCALE), y+(26.5*SCALE),
                     x-(60*SCALE), y+(26.5*SCALE));

        bezierVertex(x-(60*SCALE), y+(26.5*SCALE),
                     x-(74*SCALE), y+(15.5*SCALE),
                     x-(69*SCALE), y+(12.5*SCALE));

        bezierVertex(x-(63*SCALE), y+(9.5*SCALE),
                     x-(15*SCALE), y+(38.5*SCALE),
                     x-(15*SCALE), y+(38.5*SCALE));
    endShape();

    //Gray ellipsoidal accents
    fill(gray);
    ellipse(x+(23*SCALE), y+(38.5*SCALE), 40 * SCALE, 12 * SCALE);
    ellipse(x-(23*SCALE), y+(38.5*SCALE), 40 * SCALE, 12 * SCALE);

    ellipse(x, y+(50.5*SCALE), circleSize2 * SCALE);
    ellipse(x, y+(61.5*SCALE), circleSize1 * SCALE);

    ellipse(x, y-(53.5*SCALE), circleSize2 * SCALE);
    ellipse(x, y-(64.5*SCALE), circleSize1 * SCALE);
}

I definitely enjoyed putting this project together and playing around with different elements, which forced me to figure out how to draw more complex forms using p5.js. Before trying to code this right away, I made different possible mockups in Adobe Illustrator, then translated it into Javascript. As for the final result, I’m happy with how it came out – my initial sketches had even more accent dots than the final, but it wound up looking too busy and were therefore removed.