The CID Team worked on the touch tracking and gesture recognizer for the Microsoft Touch Mouse. This was based upon the research done for the Mouse 2.0 project by Microsoft Research and the Microsoft Hardware Team, including the Applied Sciences group.

The Touch Mouse is a wireless mouse with an integrated multi-touch sensor. The mouse takes a snapshot of the sensor every 8 or so milliseconds, cleans it up, and sends it to the host computer. If installed, IntelliPoint software on Windows 7 processes these bitmaps, tracking fingertips, recognizing gestures, and sending appropriate commands to Windows based on the gestures made.

The picture below shows an example frame of data from the sensor, with annotations showing where the software believes fingertips are.

The sensor images usually show up around 100 times a second.

If you've got a touch mouse and want to take a crack at writing your own applications which process the sensor, now you can! Microsoft recently released the 'Touch Mouse Sensor API,' which includes libraries to read data from the Touch Mouse, and several example projects showing how to process and render the data. Note that the API is intended for research / experimentation purposes only, NOT to release production software. See the EULA for more details.

The sensor API is available from http://research.microsoft.com/downloads. You can either visit the website and search for 'Touch Sensor API', or click on the following links to get it:

32-bit Touch Mouse Sensor API

64-bit Touch Mouse Sensor API

If you have questions, feel free to post them here. No promises, but I'll answer them if I can. Enjoy!