This is a project that got in my brain several years ago, but I couldn't afford a projector. I made a few attempts using other approaches, but honestly, this project felt cursed! I would start making progress, and my laptop would freeze, or the system would suddenly need to be reinstalled. One try, my keyboard actually failed! Eventually though I got past whatever that was all about, and managed to pull this together.
The basic idea was to use a laser pointer to draw on a wall. Rather than do this chemically, I have a camera view the wall, add laser-created traces to the image, and thatimage is projected. It's a visual feedback system, and the biggest challenge was dealing with feedback loops. I added a calibration option to help with keystoning, and that seemed to do the trick!
This was the first working version. The projector was sitting on an itoning board, and I had cables running all over the place! Nonetheless, it actually worked!
After playing with the first version, I started to think about other used for this. It's really a way to use a laser pointer as a mouse, which opens up a pretty broad application area. Here's a simple UFO Hunt game, where you shoot UFOs using a laser pointer (yay!)
This video explains how everything works, and includes links to the source code repo.