### Spiral of circles

Inspired by Compote de plot: twitter.com/loic_gou…380873256611840?s=12

```//  LL 2021

const loops = 5;       // min=1 max=10 step=0.01
const radius_max = 4;  // min=1 max=20 step=0.1
const frequency = 0.1; // min=0 max=1 step=0.01
const density = 0.6;   // min=.1 max=1 step=0.01
const seed = 0;        // min=0 max=100 step=.1

var noise = SimplexNoise(seed ? seed : Math.floor(Math.random() * 1000));

const turtle = new Turtle();

const circles = 50000;
const angle_step = Math.PI * 2 * loops / circles;

var last_x = 0, last_y = 0;

function walk(i) {
const angle = i * angle_step;

const x = inner_radius * Math.cos(angle);
const y = inner_radius * Math.sin(angle);

if (Math.hypot(x - last_x, y - last_y) < (2 - density * 2))  return true;

last_x = x; last_y = y;

return i < circles;
}

const rx = x / 10 * frequency;
const ry = y / 10 * frequency;
const rr = r / 100 * frequency;

var radius = noise.noise3D([rx, ry, rr]);
radius += .55 * noise.noise3D([rx * 2 + 3.4, ry * 2 - 56.1, rr * 2 - 4.5 ]);
radius += .35 * Math.abs(1 - noise.noise3D([ rx * 4 + 21.2, ry * 4 + .5, rr * 4 - 8.7 ]));
radius += .25 * Math.abs(1 - noise.noise3D([ rx * 8 + 421.12, ry * 8 + 21.3, rr * 8 - 45.3 ]));