Skip to content

Square spiral

A square spiral is drawn and re-drawn constantly

function setup() {
  createCanvas(400, 400);
  angleMode(DEGREES)
  seed = random(1000000)
  
}

let seed = 4031

function draw() {
  randomSeed(seed)
  background(random(220,255),random(220,255),random(220,255))
  stroke(random(100),random(100),random(100))
  translate(200, 200)
  let r = frameCount * random(40, 80) - random(6000)
  let l = frameCount * random(60, 200)
  let s = random(1.7, 6)
  let sm = random(0.95, 1.02)
  let lm = (random() < 0.6 ? 2 : random(2))
  let ld = random(60)
  let rm = random(0.1, 2)
  rotate(90 * random([0,1,2,3]))
  for (let i = 180; i > 2 && l > 0 && s > 0.1; i -= s) {
    rotate(90)
    translate(s, -s)
    s *= sm
    if (r < i*2 && l > 0) {
      line(i, -i+max(min(i*2, r), 0), i, -i+min(l, i*2))
    }
    l -= i * lm + ld
    r -= i * rm
  }
  if (r > 100 && l > 0 || r > l) {
    frameCount = 0
    seed++
  }
}

(Originally seen at https://editor.p5js.org/bojidar-bg/sketches/fiNEnGZ_F and https://mastodon.social/@bojidar_bg/113874008491953009)

Experiments tagged p5 (25/85)

Experiments on this site (25/85)