int num_levels = 1; void circleFractal( float x, float y, float r, int levels ) { ellipse( x, y, 2*r, 2*r ); // ellipse( x - r, y, r, r ); // ellipse( x + r, y, r, r ); if ( levels > 0 ) { circleFractal( x - r, y, 0.5*r, levels - 1 ); circleFractal( x + r, y, 0.5*r, levels - 1 ); } } void setup() { size( 1200, 600 ); } void draw() { background( 100 ); fill( 255, 20 ); stroke( 255 ); strokeWeight( 2 ); circleFractal( width/2, height/2, 250, num_levels ); } void keyPressed() { if ( keyCode == LEFT ) { num_levels = max( 0, num_levels - 1 ); } else if ( keyCode == RIGHT ) { ++num_levels; } }