Thursday, October 28, 2010

The Windows7 MultiTouch

Hi,
About 2 years ago , I was asked to build a prototype that could use Multitouch and Gestures aplied to a 3D renderization model showing an object.

The prototype should be used in a museum, enabling visitors to use conventional multitouch devices (hp for instance) and browse the museum's objects freely and without compromising the "object" it's self.
The first prototype (one of the first coins) was digitized in very high resolution and then mapped to a 3D object in 3DStudioMAX by Illusive. They are not programmers, so the first solution the found was to use the QUEST3D engine and make a demo that was mouse scrollable.

I was then called into action. I was working at PSIEngine at the time, so I pulled the project in.
Either I created something from scratch, and implemented some kind of 3D engine on top of windows 7 multitouch layer and windows 7 beta... or I would have to use the Quest 3D and make something out of it.

Risk Management:
Windows 7 is still beta!
Windows 7 Touch and gestures are even worse... the examples in the down-loadable alpha versions are not written (just the object structure) and the videos from the Microsoft Evangelists are very shallow.
Quest 3D uses a Channel object structure... you drop the DLL into quest, you drag the object to the set and use the connectors... but the SDK is built for Visual Studio 6 and C++ (Quest needs speed so the running away from .NOT makes perfect sense.)
The Windows / touch objects are built for the .NOT framework.

Solution:
Use Visual Studio 2005, and ignore all the errors it fires in Windows 7 Beta, create a compatiblity project using Quest's c++ dll example.... and then ignore the windows gestures, grab the 2 points and then create your own gesture manipulation routine...  compile, debug, wrap-it-up and make a bang.

Special Thanks:
Revelino Mateus. A colleage from PSIEngine that just talks C++ better than Camões (famous Portuguese poet) talked Portuguese. Thanks Revs, you are the best.

These are the 2 Demonstration Videos:
The Quest Channel Properties
The Gestures working