I was inspired by album art by the band Surfaces. I liked the way their album art had soft pastel colors and the depth it always presented. I started with the background mountains, trees, and roads first. It took me a while to make all the trees because I had to layer triangles, and the car took a lot of time to accurately have all the car parts move with respect to mouseX. If you click, the headlights thickness will increase, and the color of the sun will change. If you move mouseX, the car will move. If you move mouseY, the clouds will move, the background sky color will change, and the sun size will change.
sketch
var sunangle = 0
var suncolorR = 242
var suncolorG = 244
var suncolorB = 190
var headlighttop = 370
var headlightbottom = 395
var star1angle = 0
var star2angle = 0
var star3angle = 0
var star4angle = 0
var sundiameter = 150
function setup() {
createCanvas(600, 450);
background(14, 40, 91);}
function draw() {
if (mouseY < (height * 0.50)) {
background(15, 40, 91);
} else if (mouseY > (height * 0.5)) {
background(240, 210, 209);
}
push();
translate(300, 225); rotate(radians(sunangle)); fill(suncolorR, suncolorG, suncolorB);
noStroke();
circle(50, 150, sundiameter + (mouseY/3)); pop();
sunangle = sunangle + 2.5;
fill(255); stroke(255);
point(mouseY - 140, 55); point(mouseY - 185, 50);
point(mouseY - 220, 52)
point(mouseY - 260, 54);
point(mouseY - 290, 55);
point(mouseY - 138, 60);
beginShape();
curveVertex(mouseY - 140, 55); curveVertex(mouseY - 140, 55);
curveVertex(mouseY - 185, 50);
curveVertex(mouseY - 220, 52);
curveVertex(mouseY - 260, 54);
curveVertex(mouseY - 290, 55);
curveVertex(mouseY - 138, 60);
curveVertex(mouseY - 138, 60);
endShape();
point(mouseY, 91); point(mouseY - 10, 93);
point(mouseY -20, 98);
point(mouseY - 60, 105);
point(mouseY - 70, 115);
point(mouseY + 30, 125);
point(mouseY + 60, 125);
point(mouseY + 170, 120);
point(mouseY + 155, 110);
point(mouseY + 130, 85);
point(mouseY + 90, 90);
beginShape();
curveVertex(mouseY, 91); curveVertex(mouseY, 91);
curveVertex(mouseY - 10, 93);
curveVertex(mouseY -20, 98);
curveVertex(mouseY - 60, 105);
curveVertex(mouseY - 70, 115);
curveVertex(mouseY + 30, 125);
curveVertex(mouseY + 60, 125);
curveVertex(mouseY + 170, 120);
curveVertex(mouseY + 155, 110);
curveVertex(mouseY + 130, 85);
curveVertex(mouseY + 90, 90);
curveVertex(mouseY + 90, 90);
endShape();
fill(250, 180, 175);
stroke(250, 180, 175);
strokeWeight(5);
point(0, 255);
point(0, 385);
point(30, 230);
point(150, 210);
point(195, 190);
point(215, 200);
point(260, 215);
point(290, 220);
point(310, 215);
point(380, 175);
point(420, 190);
point(460, 145);
point(510, 185);
point(540, 165);
point(580, 155);
point(600, 160);
point(600, 375);
beginShape();
curveVertex(0, 385);
curveVertex(0, 385);
curveVertex(0, 255);
curveVertex(30, 230);
curveVertex(150, 210);
curveVertex(195, 190);
curveVertex(215, 200);
curveVertex(260, 215);
curveVertex(290, 220);
curveVertex(310, 215);
curveVertex(380, 175);
curveVertex(420, 190);
curveVertex(460, 145);
curveVertex(510, 185);
curveVertex(540, 165);
curveVertex(580, 155);
curveVertex(600, 160);
curveVertex(600, 375);
curveVertex(600, 375);
endShape();
fill(230, 195, 210);
stroke(230, 195, 210);
point(0, 170);
point(0, 370);
point(10, 155);
point(25, 145);
point(55, 130);
point(80, 140);
point(105, 180);
point(140, 200);
point(170, 205);
point(210, 225);
point(250, 225);
point(250, 370);
beginShape();
curveVertex(0, 370);
curveVertex(0, 370);
curveVertex(0, 170);
curveVertex(10, 155);
curveVertex(25, 145);
curveVertex(55, 130);
curveVertex(80, 140);
curveVertex(105, 180);
curveVertex(140, 200);
curveVertex(170, 205);
curveVertex(210, 225);
curveVertex(250, 225);
curveVertex(250, 370);
curveVertex(250, 370);
endShape();
fill(200, 180, 222);
stroke(200, 180, 222);
point(250, 390);
point(250, 265);
point(280, 260);
point(300, 270);
point(310, 280);
point(320, 290);
point(340, 287);
point(350, 285);
point(370, 270);
point(390, 267);
point(410, 280);
point(430, 300);
point(440, 298);
point(450, 295);
point(460, 285);
point(490, 270);
point(500, 260);
point(515, 265);
point(525, 275);
point(535, 280);
point(565, 276);
point(585, 270);
point(600, 260);
beginShape();
curveVertex(250, 390);
curveVertex(250, 390);
curveVertex(250, 265);
curveVertex(280, 260);
curveVertex(300, 270);
curveVertex(310, 280);
curveVertex(320, 290);
curveVertex(340, 287);
curveVertex(350, 285);
curveVertex(370, 270);
curveVertex(390, 267);
curveVertex(410, 280);
curveVertex(430, 300);
curveVertex(440, 298);
curveVertex(450, 295);
curveVertex(460, 285);
curveVertex(490, 270);
curveVertex(500, 260);
curveVertex(515, 265);
curveVertex(525, 275);
curveVertex(535, 280);
curveVertex(565, 276);
curveVertex(585, 270);
curveVertex(600, 260);
curveVertex(600, 390);
curveVertex(600, 390);
endShape();
fill(176, 231, 228); stroke(176, 231, 228);
triangle(0, 250, 70, 390, 0, 390); triangle(0, 200, 35, 260, 0, 260);
triangle(0, 230, 50, 300, 0, 300);
triangle(0, 260, 60, 340, 0, 340);
triangle(75, 250, 110, 180, 145, 250);
triangle(60, 300, 110, 220, 160, 300);
triangle(45, 350, 110, 260, 175, 350);
triangle(30, 390, 110, 300, 190, 390);
triangle(225, 195, 260, 170, 295, 195);
triangle(222, 205, 260, 180, 298, 205);
triangle(219, 215, 260, 190, 301, 215);
triangle(216, 225, 260, 200, 304, 225);
triangle(213, 235, 260, 210, 307, 235);
triangle(210, 245, 260, 220, 310, 245);
triangle(207, 255, 260, 230, 313, 255);
triangle(204, 265, 260, 240, 316, 265);
triangle(201, 275, 260, 250, 319, 275);
triangle(198, 285, 260, 260, 322, 285);
triangle(195, 295, 260, 270, 325, 295);
triangle(192, 305, 260, 280, 328, 305);
triangle(180, 315, 260, 290, 331, 315);
triangle(177, 325, 260, 300, 334, 325);
triangle(150, 390, 260, 260, 361, 390);
triangle(320, 305, 340, 200, 360, 305);
triangle(340, 200, 320, 270, 363, 270);
triangle(363, 300, 390, 255, 410, 300);
triangle(358, 320, 387, 275, 415, 320);
triangle(420, 310, 440, 270, 460, 310);
triangle(490, 240, 480, 300, 500, 300);
triangle(550, 160, 560, 145, 570, 160);
triangle(545, 170, 560, 155, 575, 170);
triangle(540, 180, 560, 165, 580, 180);
triangle(535, 190, 560, 175, 585, 190);
triangle(530, 200, 560, 185, 590, 200);
triangle(525, 210, 560, 195, 595, 210);
triangle(520, 220, 560, 205, 600, 220);
triangle(515, 230, 560, 215, 605, 230);
triangle(510, 240, 560, 225, 610, 240);
triangle(505, 250, 560, 235, 615, 250);
triangle(500, 260, 560, 245, 620, 260);
triangle(495, 270, 560, 255, 625, 270);
triangle(490, 280, 560, 265, 630, 280);
triangle(485, 290, 560, 275, 635, 290);
triangle(480, 300, 560, 285, 640, 300);
triangle(475, 310, 560, 295, 645, 310);
triangle(470, 320, 560, 305, 650, 320);
fill(156, 208, 204);
stroke(156, 208, 204);
triangle(40, 200, 60, 160, 80, 200);
triangle(35, 220, 60, 180, 85, 220);
triangle(30, 240, 60, 200, 90, 240);
triangle(25, 260, 60, 220, 95, 260);
triangle(20, 280, 60, 240, 100, 280);
triangle(15, 300, 60, 260, 105, 300);
triangle(10, 320, 60, 280, 110, 320);
triangle(5, 340, 60, 300, 115, 340);
triangle(0, 360, 60, 320, 120, 360);
triangle(-5, 380, 60, 240, 125, 380);
triangle(-7.5, 390, 60, 250, 127.5, 390);
triangle(150, 320, 170, 260, 190, 320);
triangle(145, 360, 170, 300, 195, 360);
triangle(138, 390, 170, 330, 203, 390);
triangle(280, 245, 300, 225, 320, 245);
triangle(270, 260, 300, 235, 330, 260);
triangle(260, 275, 300, 245, 340, 275);
triangle(250, 290, 300, 255, 350, 290);
triangle(240, 305, 300, 265, 360, 305);
triangle(230, 320, 300, 275, 370, 320);
triangle(220, 335, 300, 285, 380, 335);
triangle(210, 350, 300, 295, 390, 350);
triangle(200, 365, 300, 315, 400, 365);
triangle(190, 380, 300, 325, 410, 380);
triangle(195, 390, 300, 330, 415, 390);
triangle(400, 320, 420, 300, 440, 320);
triangle(395, 340, 420, 310, 445, 340);
triangle(390, 360, 420, 320, 450, 360);
triangle(385, 380, 420, 330, 455, 380);
triangle(380, 390, 420, 340, 460, 390);
triangle(460, 260, 480, 240, 500, 260);
triangle(450, 285, 480, 245, 510, 285);
triangle(440, 310, 480, 250, 520, 310);
triangle(430, 335, 480, 255, 530, 335);
triangle(420, 360, 480, 260, 540, 360);
triangle(410, 385, 480, 265, 550, 385);
triangle(405, 390, 480, 270, 555, 390);
triangle(600, 240, 570, 280, 600, 280);
triangle(600, 245, 550, 320, 600, 320);
triangle(600, 250, 530, 360, 600, 360);
triangle(600, 255, 510, 390, 600, 390);
fill(131, 180, 177);
stroke(131, 180, 177);
triangle(200, 230, 190, 260, 210, 260);
triangle(200, 240, 185, 270, 215, 270);
triangle(200, 250, 175, 290, 225, 290);
triangle(200, 260, 170, 310, 230, 310);
triangle(200, 270, 165, 330, 235, 330);
triangle(200, 280, 160, 350, 240, 350);
triangle(200, 290, 155, 370, 245, 370);
triangle(200, 300, 150, 390, 250, 390);
triangle(60, 300, 90, 270, 120, 300);
triangle(50, 320, 90, 275, 130, 320);
triangle(40, 340, 90, 280, 140, 340);
triangle(30, 360, 90, 285, 150, 360);
triangle(20, 380, 90, 290, 160, 380);
triangle(10, 390, 90, 295, 170, 390);
triangle(370, 335, 390, 300, 410, 335);
triangle(360, 380, 390, 305, 420, 380);
triangle(350, 390, 390, 310, 430, 390);
triangle(515, 280, 535, 240, 555, 280);
triangle(510, 300, 535, 245, 560, 300);
triangle(505, 320, 535, 250, 565, 320);
triangle(500, 340, 535, 255, 570, 340);
triangle(495, 360, 535, 260, 575, 360);
triangle(490, 390, 535, 265, 580, 390);
strokeWeight(2);
fill(144, 148, 165);
noStroke();
rect(0, 390, 600, 60);
stroke(242, 244, 190);
line(0, 415, 600, 415);
line(0, 420, 600, 420);
fill(226, 204, 128);
stroke(226, 204, 128);
triangle(mouseX + 100, 381, mouseX + 225, headlighttop, mouseX + 225, headlightbottom);
fill(239, 184, 145);
stroke(239, 184, 145);
rect(mouseX, 340, 100, 53); triangle(mouseX, 340, mouseX - 3.5, 393, mouseX, 393);
rect(mouseX + 100, 370, 15, 23);
triangle(mouseX + 100, 340, mouseX + 115, 370, mouseX + 100, 370);
stroke(255);
fill(255);
quad(mouseX, 340, mouseX + 5, 335, mouseX + 95, 335, mouseX + 100, 340);
stroke(170);
fill(170);
rect(mouseX + 5, 346, 30, 10);
rect(mouseX + 43, 346, 26, 10);
quad(mouseX + 76, 346, mouseX + 97, 346, mouseX + 102, 356, mouseX + 76, 356);
stroke(200, 175, 145);
line(mouseX + 39, 343, mouseX + 39, 393);
line(mouseX + 72.5, 343, mouseX + 72.5, 393);
stroke(255);
line(mouseX + 65, 372, mouseX + 70, 372); line(mouseX + 75.5, 372, mouseX + 80.5, 372);
fill(100);
stroke(100);
circle(mouseX + 15, 393, 25);
circle(mouseX + 95, 393, 25);
fill(200);
stroke(200);
circle(mouseX + 15, 393, 11);
circle(mouseX + 95, 393, 11);
fill(100);
stroke(100);
point(mouseX + 116, 368);
point(mouseX + 121, 370);
point(mouseX + 121, 393);
point(mouseX + 116, 393);
beginShape();
curveVertex(mouseX + 116, 368);
curveVertex(mouseX + 116, 368);
curveVertex(mouseX + 121, 370);
curveVertex(mouseX + 121, 393);
curveVertex(mouseX + 116, 393);
curveVertex(mouseX + 116, 393);
endShape();
fill(200);
stroke(200);
rect(mouseX - 5, 385, 6, 3);
}
function mouseClicked() {
suncolorR = suncolorR + 6; suncolorG = suncolorG - 9; suncolorB = suncolorB - 9; headlighttop = headlighttop - 2.5 headlightbottom = headlightbottom + 2.5 }