const TRAIL_MAX_COUNT = 30;
const TRAIL_MAX_RADIUS = 120;
const PARTICLE_MAX_COUNT = 70;
const PARTICLE_PULL_FORCE = 0.0015;
const PARTICLE_INITIAL_SPEED = 0.15;
const PARTICLE_SPEED_VARIANCE = 15;
const PARTICLE_SPAWN_ANGLE = 25;
const PARTICLE_LIFE = 60;
const PARTICLE_MIN_AIR_DRAG = 0.9;
const PARTICLE_MAX_AIR_DRAG = 0.95;
theShader = new p5.Shader(this.renderer, vertShader, fragShader);
myFont = loadFont("Roboto-Black.ttf");
let canvas = createCanvas(
min(windowWidth, windowHeight),
min(windowWidth, windowHeight),
canvas.canvas.oncontextmenu = () => false;
shaderTexture = createGraphics(width, height, WEBGL);
shaderTexture.noStroke();
translate(-width / 2, -height / 2);
if (transitionTimer == 0) {
timeSteps = lerp(timeSteps, 1, lerpAmount);
trail.radius = lerp(trail.radius, TRAIL_MAX_RADIUS, lerpAmount);
timeSteps = lerp(timeSteps, 4, lerpAmount);
trail.radius = lerp(trail.radius, TRAIL_MAX_RADIUS * 0.5, lerpAmount);
trail.hue = lerp(trail.hue, globalHue, lerpAmount * 0.5);
sketchTimer += timeSteps;
Left-click to switch colors
Hold middle-click to make it disappear
Right-click to toggle shader`,
function mousePressed() {
if (mouseButton == LEFT) {
} else if (mouseButton == RIGHT) {