let colors = ['#b9b5b4', '#48618a', '#ffffff'];
let squareX = 200, squareY = 200, squareSize = 400;
squareBottomRight = createVector(squareX + squareSize, squareY + squareSize);
rect(0, 0, width, height);
if (frameCount % 2 === 0) {
let x = squareX + random(squareSize);
let y = squareY + random(squareSize);
rain.push(new Drip(x, y, random(1, 4)));
for (let i = rain.length - 1; i >= 0; i--) {
if (d.death < 1 || d.y > squareBottomRight.y) {
constructor(rad, acc, finalSize) {
this.finalSize = finalSize;
this.pos = createVector(0, 0);
this.downSpeed = createVector(0, 0.9);
this.downAcc = createVector(0, 0.005 + this.acc / 900);
if (this.dist <= this.finalSize) {
this.pos = createVector(cos(this.rad) * this.dist, sin(this.rad) * this.dist);
this.downSpeed.add(this.downAcc);
this.pos.add(this.downSpeed);
constructor(x, y, extent) {
this.dripColor = color(random(colors));
this.noiseStart = random(400000);
for (let i = this.noiseStart; i < this.noiseStart + TWO_PI; i += 0.09) {
this.splat.push(new Pointer(i, acc, extent));
for (let pointer of this.splat) {
fill(this.dripColor, 200);
translate(this.x, this.y);
for (let p of this.splat) {
if (this.x + px >= squareX && this.x + px <= squareBottomRight.x && this.y + py >= squareY && this.y + py <= squareBottomRight.y) {