import processing.video.*; import processing.opengl.*; PGraphics videoBuffer; void setup() { size(320, 240, OPENGL); videoBuffer = createGraphics(320, 240, P3D); CaptureThread runner = new CaptureThread(this, videoBuffer); runner.start(); } void draw() { image(videoBuffer, 0, 0); } public class CaptureThread extends Thread { Capture myCapture; PApplet invoker; PGraphics target; public CaptureThread(PApplet invoking, PGraphics canvas) { invoker = invoking; target = canvas; } public void run() { myCapture = new Capture(invoker, width, height, 30); while(true) { myCapture.read(); target.beginDraw(); target.image(myCapture,0,0); target.endDraw(); } } }