made a little something myself
http://wliia.org/projects/video/screen-0211.jpg
Code:
import processing.video.*;
Capture Scamera;
Pixie[] pix;
int skip = 5;
void setup()
{
size(320, 240, P3D);
framerate(20);
noStroke();
String s = "Creative WebCam Live!-WDM";
Scamera = new Capture(this, s, width, height, 30);
pix = new Pixie[width*height];
for(int i = 0; i < width; i++)
{
for(int j = 0; j < height; j++)
{
pix[j*width+i] = new Pixie(i,j,15,56,2); // set 2 to 1 if you want elipses, and 15 and 56 are minSize and maxSize..
}
}
}
void captureEvent(Capture Scamera)
{
Scamera.read();
}
void draw()
{
//background(100); // for lots of gray area, activate this
for(int i = 0; i < width; i+=skip)
{
for(int j = 0; j < height; j+=skip)
{
pix[j*width+i].render();
}
}
}
void mousePressed()
{
saveFrame();
}
class Pixie
{
int x, y, w, h, mode, minS, maxS;
color c;
Pixie(int x, int y, int minS, int maxS, int mode)
{
this.x = x;
this.y = y;
this.minS = minS;
this.maxS = maxS;
this.w = this.h = (int)random(minS, maxS);
this.mode = mode;
c = getPixel(x,y);
}
void render()
{
c = getPixel(x,y);
if(mode == 1){
fill(c);
ellipseMode(CENTER);
ellipse(x,y,w,h);
noFill();
}else if(mode == 2){
stroke(c);
bezier(x,y,x+random(-w,w),y+random(-h,h),x+random(-w,w),y+random(-h,h),x+random(-w,w),y+random(-h,h));
noStroke();
}
}
color getPixel(int x, int y){
w = h = (int)random(minS,maxS);
return Scamera.pixels[y*width+x];
}
}