Raindrops on Roses

by Lauren Russell

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

function draw() {
  background(36,7,56);
  noFill()
  strokeWeight(3)
  stroke(237,171,5);
  beginShape() //big pentagon gold 
  vertex(200,40)
  vertex(340,160)
  vertex(260,280)
  vertex(140,280)
  vertex(60,160)
  endShape(CLOSE)
  
beginShape()
  stroke(237,5,5);
  strokeWeight(2)
  vertex(-20,260)
  vertex(60,180)
  vertex(140,260)
  vertex(100,320)
  vertex(20,320)
  endShape(CLOSE)
  
beginShape()
  stroke(255,0,174);
  strokeWeight(5)
  vertex(160,320)
  vertex(200,360)
  vertex(180,400)
  vertex(140,400)
  vertex(120,360)
  endShape(CLOSE)
  
 beginShape()
  stroke(0,179,255);
  strokeWeight(3)
  vertex(310,160)
  vertex(380,220)
  vertex(340,280)
  vertex(280,280)
  vertex(240,220)
  endShape(CLOSE)
  
beginShape()
  stroke(15,184,40);
  strokeWeight(1);
  vertex(340,260)
  vertex(400,320)
  vertex(360,380)
  vertex(320,380)
  vertex(280,320)
  endShape(CLOSE)
  
  
  fill(173,24,10);
    stroke(237,171,5)
  strokeWeight(2)
triangle(160,160,180,80,220,160)
triangle(220,80,180,160,240,160)
   fill(204,31,14);
triangle(140, 160, 140,60,220,160)
triangle(180,160,260,60,260,160)
  
  fill(20,150,43)
triangle(120,120,140,160,200,160)//green
triangle(280,120,260,160,200,160)//dark green
  
  fill(11,117,30);
   triangle(200,220,220,200,200,260) //leaf 1 dark green
  triangle(180,240,200,260,200,300)//leaf 2 dark green
 
  fill(61,30,9);
  line(200,199,206,200) //thorn black
  line(200,301,206,300) //thorn black
  line(200,339,194,340) //thorn black
  line(200,180,194,181) //thorn black
  fill(41,21,7);
    strokeWeight(6)
  line(200,160,200,360) //dark green 

  fill(21,166,189); 
  strokeWeight(1)
  stroke(255,255,255);
  beginShape() //raindrop blue
vertex(240,20)
curveVertex(243,37)
vertex(240,40)
vertex(237,37)
  endShape(CLOSE);
  
  fill(61,175,217);
  translate(-40,5) 
   beginShape()//raindrop light blue
vertex(240,20)
curveVertex(243,37)
vertex(240,40)
vertex(237,37)
  endShape(CLOSE);
  
  fill(12,67,112);
   translate(-60,-10) 
   beginShape() //raindrop dark blue
vertex(240,20)
curveVertex(243,37)
vertex(240,40)
vertex(237,37)
  endShape(CLOSE);

  fill(45,124,189);
   translate(20,20) 
   beginShape() //raindrop medium blue 
vertex(240,20)
curveVertex(243,37)
vertex(240,40)
vertex(237,37)
  endShape(CLOSE);
  }


				
			

Date of Production: February 21st, 2024

Medium: coded in p5.js, a Javascript library

Artist Statement:
I was inspired to create this album cover for the song “Favourite Things” in p5.js after hearing Pentatonix’s version of it. The most memorable lyrics of the song, “raindrops on roses and whiskers on kittens,” became my foundation and reference for my artwork.
My first challenge was deciding how I would approach coding a flower. I began by drawing a rough star-shaped sketch, thinking that I could use the beginShape() function for the entire rose head. However, I realized soon after that splitting the rose up into individual triangles would be more feasible. When coding, I arranged the petals so that the bigger ones in the front would partially cover those in the back, imitating the layers of a real rose.
Because the flower is the focal point of the piece, I wanted it to stand out against the dark purple background. I inserted RGB values into a stroke() function, and placed it before the code for the red triangles, so that the colour gold would outline the flower petals.
I chose to use pentagons for the album cover’s background as a tribute to Pentatonix. Creating the pentagon shape involved plotting its points onto a sheet of grid paper first, and then once again using the beginShape() function to bring it to life. I made each pentagon a different colour to allude to the different strengths of each singer in the group. The pentagons in my piece overlap with each other and with the rose itself, symbolizing how each individual and their musical talents contribute to the group as a whole.
My colour palette was inspired by the slightly creepy and mysterious vibes of Pentatonix’s music video, as well as the various musical elements and moods invoked by the song. Certain sections sound more cheerful, which is why I used the fill() function to implement vibrant colours like pink and blue. I also coded raindrops and suspended them in midair, as if capturing a distinct moment in time with a camera and freezing it.

LAUREN RUSSELL is an English & Professional Writing student passionate about literature and creative writing. She loves to write poems and short stories in her free time and explore different modes of expression. When she isn’t writing, she’s relaxing with some music or piano playing.