- Microsoft Surface SDK – you have to buy a Surface device to get access to it, it’s not freely available.
- Existing WPF "stylus" API’s – although I read some posts where people said that you could use some of these events to interact with touch – they don’t support multi-touch (as far as I could tell). So you can, in theory, use the existing WPF API’s to support single-touch stuff, like dragging, clicking, etc – because WPF natively supports a tablet PC.
- "NEW" WPF API’s – you can find several videos where someone is demoing some code in WPF and they are using some API that looks like it extends the "stylus" API’s in WPF to support multi-touch. I couldn’t find this anywhere. In fact, from the PDC08 session – he gave some detail – and you could stop the video and see his code – those class members, when I googled them, simply don’t exist. So as of right now, this is still just vaporware.
- NUI Group "TouchLib" – seems to be exclusively for home-made touch tables. It specifically works by tieing in with a webcam, to capture finger position. I could not get any of the demos working with the HP TouchSmart I have and presumably, it doesn’t work with non-webcam touch devices.
Bottom line, if you want to start coding TODAY for a multi-touch screen and WPF/Silverlight – there is absolutely no publicly available SDK’s to help you. If you are building your own table, then TouchLib can definitely help you; and if you bought a Microsoft Surface computer, then get the SDK and you’re all set there.
So although this is all quite interesting and exciting technology – it’s simply not ready, even for "messing around" right now – if you buy a multi-touch laptop or all-in-one. If you don’t have an SDK or some reasonable techniques to interact with this new technology, it is basically dead-in-the-water, for the moment. I’m positive this will change in the future, at some point – but at the moment, this is a bit of a dead-end! We’ll have to keep our eyes peeled in the coming months for when some of this will evolve!