Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


3M's Multi-touch Monitor

Programming MultiTouch

Since the M2256PW supports the Windows 7 digitizer protocol, programming multi-touch applications within that operating system is remarkably easy. However, before jumping into the code, multi-touch developers should first survey the landscape of Windows 7-compatible multi-touch applications. This will not only give an indication of the current state of the art, it will also show how effective well-written multi-touch apps can function. An added benefit is that these experiences will fuel additional ideas for future multi-touch programs.

The first place to start is to download and install the Microsoft Touch Pack for Windows 7. This suite of working applications demonstrate a range of multi-touch scenarios, from an Incredible Machine-style arcade title called "Blackboard" and air hockey game called "Rebound", to a photo collage and playful screen saver program. Interacting with these programs helps you realize the potential that multi-touch can deliver. They also verify that the 3M monitor is working at its optimal state and ready for development.

[Click image to view at full size]
Figure 3: The Interacting with the Microsoft Surface Collage application.

The next step is to query the Internet on the topic of "Windows 7 multi-touch programming" to locate articles and code samples, such as Designing for Multi-Touch, Multi-User and Gesture-Based Systems and Multitouch Gains Momentum. Windows multi-touch APIs can be called upon via C++, .NET libraries, and the new Windows Presentation Foundation 4.0 (WPF). Microsoft has also posted a helpful two-part video series on Programming Windows 7 Multi Touch on its Channel 9 developer video website.

Linux users will need to work a bit harder to get multi-touch functionality to work in that operating system environment. Unfortunately, I was unable to get the monitor to work successfully using the latest 2.6.34 kernel and alpha build of Ubuntu 10.10. This could have been attributed to a number of reasons ranging from video card driver compatibility to other input hardware and the still alpha state of the distribution. 3M does provide a custom proprietary driver for Linux gurus who are ready to hack their own X Windows programs, but without access to the 3M source code, kernel revisions and other modular aspects could be problematic. Adventurous developers who prefer to use Linux as their multi-touch OS of choice should check out the Linux multitouch howto available from the ENAC Interactive Computing Laboratory website.

Touching the Future

With an ever-growing installed user base of multi-touch-capable mobile devices, the expectations of this technology reaching the larger real estate of desktop and even wall-size displays is also expanding. Such a groundswell of interest will no doubt provide a first mover advantage to software developers that fully leverage this cool interface modality. Early adopters such as Perceptive Pixel and SpaceClaim have already begun to push the boundaries of this new dimension with CAD and virtual Sound Mixing Boards, and other practical applications await. Videos on 3M's YouTube channel can see these and other multi-touch apps in action.

Developers interested in creating multi-touch applications should visit the 3M website.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.