let pallete = ["#DADCDA", "#DE200C", "#3A6DA8", "#A8BACC", "#0A1D4E", "#CD4645", "#C0AEB5", "#838CA9"];
colorMode(HSB, 360, 100, 100, 100);
graphics = createGraphics(width, height);
graphics.colorMode(HSB, 360, 100, 100, 100);
drawNoiseBackground(100000, graphics);
let n = int(random(pallete.length));
for (let i = 0; i < num; i++) {
movers.push(new Mover(x, y));
for (let mover of movers) {
for (let i = movers.length - 1; i > 0; i--) {
for (let i = movers.length; i < num; i++) {
movers.push(new Mover(x, y));
this.pos = createVector(_x, _y);
this.noiseScaleZ = random(100, 200);
this.vel = createVector(0, 0);
this.count = int(random(1, 10));
this.c = pallete[int(random(pallete.length))];
let n = noise(this.pos.x / this.noiseScaleX, this.pos.y / this.noiseScaleY);
let angle = map(n, 0, 1, 0, 360);
this.vel = createVector(cos(angle), sin(angle));
this.pos.x = constrain(this.pos.x, offset, width - offset);
this.pos.y = constrain(this.pos.y, offset, height - offset);
this.life -= random(random(random(random()))) / 10;
this.life = constrain(this.life, 0, 1);
strokeWeight(map(this.life, 0, 1, 0, 5));
point(this.pos.x, this.pos.y);
function drawNoiseBackground(_n, _graphics) {
let c = color(0, 0, 0, 0.2);
for (let i = 0; i < _n; i++) {
let x = random(1) * width;
let y = random(1) * height;
_graphics.ellipse(x, y, w, h);