YouTube - PointIR - Multitouch in Python (PyCon 2008)
http://blog.enthought.com/?p=27
At 10:00 the speaker points out that projectors have a 2-3 frame delay which is responsible for the difference between pointer position and cursor location (this is normally masked when the projector is the only thing showing you the cursor solution).
13:40 openCV wasn't fast enough. They developed some handcoded assembler for blob detection.
24:00 the first 80% is pretty easy. The last 20% is really hard.
We'd like to hear from you if you'd like to work with us.