PVector polar( float r, float theta ) { float x = r * cos( radians( theta ) ); float y = r * sin( radians( theta ) ); return new PVector( x, y ); } float phi = 137.508; void setup() { size( 600, 600 ); } void draw() { background( 255 ); noStroke(); fill( 0 ); for( int idx = 0; idx < 500; ++idx ) { float r = 10 * sqrt( idx ); float theta = phi * idx; PVector pt = polar( r, theta + -frameCount * phi ); ellipse( pt.x + width/2, pt.y + height/2, 15, 15 ); } }