["#145C9E", "#0E2166", "#7692FF", "#058ED9", "#ABD2FA"],
["#027733", "#FCFAFA", "#8ED081", "#355834", "#B4D2BA"],
["#157A6E", "#FCB0B3", "#F93943", "#B0DB43", "#53DD6C"],
["#FBD1D3", "#F198AF", "#EBB2D6", "#9F81CD", "#766DC1"],
["#E88D67", "#A3CAD5", "#E0EEF1", "#E8CCBF", "#76B0C0"]
createCanvas(windowWidth, windowHeight);
colorTheme = random(colorThemes);
function mouseClicked() {
colorTheme = random(colorThemes);
translate(width / 2, height / 2);
for (let rad = 0; rad < TWO_PI; rad += map(mouseX, 0, width, 0.02, 0.1)) {
weight = map(rad, 0, QUARTER_PI, 0, 1);
} else if (rad > TWO_PI - QUARTER_PI) {
weight = map(rad, TWO_PI - QUARTER_PI, TWO_PI, 1, 0);
let n1 = map(noise(f * 0.001 + rad), 0, 1, -2, 2) * weight;
let n2 = map(noise((1000 + f) * 0.001 + rad), 0, 1, -2, 2) * weight;
[sin(f * 0.04 - 5 + n1) * 25, 100],
[cos(f * 0.04 - 2.5 + n2) * 50, 200],
[sin(f * 0.04 + n1) * 75, 300],
for (let x = 0; x < pnts.length; x++) {
curveVertex(pnts[x][0], pnts[x][1]);
fill(colorTheme[i % colorTheme.length]);