After reading a recent blog post from Tim Heuer that covers Silverlight 3 multi-touch, I got my interest piqued. I had wanted to play around with multi-touch computing for a while, and it seems like Silverlight 3 just dropped an affordable way to do that right into my lap. The next few blog posts I do will cover my experiments with Silverlight 3 multi-touch.
In his blog, Tim covered the type of system he was using. I decided to go with something bigger, thinking it would simulate an interactive kiosk-type experience. That led me to the HP TouchSmart IQ526. This is the all-in-one machine with a big 22" touch screen.
Of course, it comes with Vista pre-installed. Windows 7 is needed to work with multi-touch, so my first task was to download and install Win7, and any necessary patches. I also grabbed software I would need for development, such as the Express Edition of Visual Studio. I figured I would stub out the programs in Visual Studio on my main laptop, and then tweak the touch functionality on the HP. I also grabbed Firefox and a couple of other tools.
It took me a while to get all the software installed, but as it was installing, I wrote up a test program on my main system. Once I got the system software updated, I tested the touch functionality. Windows 7 comes with an updated version of Paint that is multi-touch enabled. My son absolutely loved it:
After letting him do his thing for a bit, I finally got my turn on the system. Excitedly, I opened up Firefox and opened my application. Touched the screen, but nothing happened. Maybe I missed? Tried again, but no luck. Tried Tim's test program - same result. Nothing. After consulting with Tim a bit, there wasn't a real definitive answer as to why the system wasn't registering the touches. I didn't want to get stuck with an expensive 22" paperweight, so I made the decision to revert the system and return it, and instead picked up a system from the same line Tim was using. I ended up with a TouchSmart TX2-1270us.
As you would expect, the new system had Vista installed out of the box. Two things really hit me. 1) shoot, I really do have to reinstall all that stuff again, and 2) wow, that screen is TINY. At any rate, I was not deterred, so I started the installs over again. For this system, there were some updated (albeit beta) touch drivers from N-trig, the folks behind the touch technology on this system.
The installations finished up, and once again, I was at the moment of truth. I just *knew* it was going to work this time, so I excitedly launched Firefox and opened up my demo project. Touched the screen again, and.... nothing. Tried Tim's demo project, and.... nothing. In the middle of further email-based consultation with Tim, a thought occurred to me as to what the problem may be. I closed Firefox, and opened IE instead. Touched the screen, and there was the touch indicator. As it turns out, the public version of Windows 7 (build 7100) has a glitch that prevents the touchpoints from working in Firefox.
Now, I know what you're thinking, and while it didn't hit me immediately, I did wake up in the middle of the night in a cold sweat wondering if I had tried IE on the big 22" HP. I really don't know, but I'm not inclined to try and find out. For the record, the MSDN release of Windows 7 corrects this problem, but alas, I don't have an MSDN sub, so I am on build 7100 for the time being.
At any rate, the small laptop is very light, very portable, and very usable. It won't serve the purpose if we wanted to do an interactive touch kiosk in a retail space, for example, but for working through Silverlight 3's multi-touch functionality, it does the job.
I have written a few applications that use multi-touch, and the next few blog posts will describe the applications and how they work. Nothing fancy, mind you, but enough to dip into it and get a feel for how things work.
One thing that is immediately obvious is that touch is such a natural way of computing - you don't have to explain to a 4-year old how to use it. They just "get" it immediately. It also becomes habitual quickly - I sometimes find myself poking the screen on my Dell and then wondering why the computer just sits there staring back at me. And then I realize it's not a touch screen and I get mad because now I have fingerprints to clean off the screen.
I really think there is an opportunity here to deliver some really cool content over the web via Silverlight 3... now it's up to us as developers to find useful and interesting ways to implement touch.

Entries (RSS)
August 18th, 2009 at 5:11 am
[...] Adventures in Silverlight 3 Multi-touch, Part I (Jeff Paries) [...]
August 18th, 2009 at 1:03 pm
Thank you for sharing your experience.
It is very exciting technology and I am looking forward to hear more from you.
Thanks!
August 20th, 2009 at 8:21 am
FYI I’m running an HP Touchsmart 22″ and it does run under Windows 7 build 7100 in IE. Coding for touch points in Silverlight is similar but still different enough than coding touch points in Surface to prove a bit “Lost in Translation”. I hope SL, WPF and Surface start consolidating paradigms instead of each group reinventing its own implementation for no significantly better reason than “not built here”. But having a lot of fun with it either way. Looking forward to your other posts!