int count = 19, max = 330;
float r = 150, d = 8.25, x = 0, y = 0;
void setup() {
size(450, 450);
smooth();
}
void draw() {
fill(236,240,241,70);
rect(0, 0, width, height);
stroke(52,73,94,200);
pushMatrix();
translate(width/2, height/2);
for (int n = 1; n < count; n++) {
for (float a = 0; a <= 360; a += 5) {
float progress = constrain(map(frameCount%max, 0+n*d, max+(n-count)*d, 0, 1), 0, 1);
float ease = -0.5*(cos(progress * PI) - 1);
float phase = 0 + 2*PI*ease + PI + radians(map(frameCount%max, 0, max, 0, 360));
float px = x, py = y;
x = map(a, 0, 360, -r, r);
y = r * sqrt(1 - pow(x/r, 2)) * sin(radians(a) + phase);
if(a > 0) line(px,py,x,y);
}
}
popMatrix();
}