Harmonic architecture?
Log in to post a comment.
Canvas.setpenopacity(-0.125); const size = 200; const step = 0.025; const iters = 0.8+Math.random()*0.15; const fstep = 1; const p = 0.1315+Math.random()*0.00751; const q = p/4-Math.random()*0.0185; let turtles = []; let iter = 0; Turtle.prototype.withinBounds = function() { return Math.abs(this.x()) <= size/2 && Math.abs(this.y()); } const spawnTurtle = (x = 0, y = 0, angle = 0) => { const turtle = new Turtle(); turtle.penup(); turtle.goto(x, y); turtle.seth(angle); turtle.pendown(); return turtle; } function walk(i) { round = Math.floor(iter/Math.round(size/step)); if (turtles.length) { turtles.map((turtle, idx) => { const x = turtle.x(); const y = turtle.y(); turtle.mod = Math.sin( p/q*iter+p*q*(Math.sin(q*p*x)+Math.sin(q*q*y)) / p/(p*q*Math.cos(q*p*p*x)+p*Math.sin(q*q*p*y)) ); turtle.forward(fstep); turtle.right(turtle.mod); }); turtles = turtles.filter(turtle => { if (!turtle.withinBounds()) { iter++; return false; } return true; }); } else { turtles.push(spawnTurtle(-size/1.5+(iter*step)%size, -160, 90)); } return iter < iters*(size/step); }