/** bubble emmiter by guru */ PVector pos[]; PVector dir[]; int[] age; void setup() { size(300,300); smooth(); pos = new PVector[30]; dir = new PVector[30]; age = new int[30]; for( int i=0; i<30; i++) { pos[i]=new PVector(150,150); PVector v = new PVector( random(width)-150, random(height)-150); v.normalize(); dir[i] = v; age[i] = -(int)random( 100 ); } } void draw() { background(0); noFill(); for( int i=0; i<30; i++) { if ( age[i] > 0 ) { stroke(0,0,255, 255-age[i]*2); fill(0,0,100, 255-age[i]*2); ellipse( pos[i].x, pos[i].y, sqrt(age[i])*2, sqrt(age[i])*2); pos[i].add(dir[i]); } age[i]++; if ( age[i] > 100 ) { age[i] = 0; pos[i] = new PVector(150,150); PVector v = new PVector( random(width)-150, random(height)-150); v.normalize(); dir[i] = v; } } }