// **************************
// *        PRELOAD         *
// **************************

function preload() {

}

// **************************
// *          SETUP         *
// **************************

function setup() {
  createCanvas(windowWidth, windowHeight);
};

function windowResized() {
  resizeCanvas(windowWidth, windowHeight);
}

// **************************
// *          DRAW          *
// **************************

function draw() {
    background(0);
    let t = millis();
    let s = constrain(width, 0, 1000) / 1000;
    let o = 18;
    let count = 120;
    stroke(255);
    noFill();
    strokeWeight(1.6 * s);
    rectMode(CENTER);
    translate(width / 2, height / 2);
    rotate(PI / 4);
    for (var i = count; i > 0; i--) {
      let delay = sin(noise(i * 0.005 + t * 0.000009) * PI) * 0.5;
      let n = noise(i * 110 + t * 0.0001) * 0.01;
      let angle = n + PI * noise(n + t * 0.0005 + delay - i * 0.03);
      rotate(angle);
      rect(0, 0, s * o * i, s * o * i);
      rotate(-angle);
    }
}