/** a parallax scrolling bokeh experiment by guru, click to generate a new image */ PVector[][] c; void setup() { size(300,300); smooth(); c = new PVector[4][5]; for ( int j = 0; j < 4; j++) { colorMode( HSB ); filter( BLUR, 8 - j*2); for ( int i = 0; i < 5; i++) { float h = random(255); int x = (int)random(10); int y = (int)random(10); c[j][i] = new PVector( x,y,h); } } } void draw() { background(0); for ( int j = 0; j < 4; j++) { float ofx = map( mouseX, 0, width, 0, (12-4*j))-(6-2*j); colorMode( HSB ); for ( int i = 0; i < 5; i++) { fill( c[j][i].z, 255, 200 ); strokeWeight( 4); stroke( c[j][i].z, 255, 255 ); ellipse( c[j][i].x * 30+15 + ofx, c[j][i].y * 30+15, 30, 30); } filter( BLUR, 7-j*2); } } void mousePressed() { c = new PVector[4][5]; for ( int j = 0; j < 4; j++) { colorMode( HSB ); filter( BLUR, 8 - j*2); for ( int i = 0; i < 5; i++) { float h = random(255); int x = (int)random(10); int y = (int)random(10); c[j][i] = new PVector( x,y,h); } } }