Surfnet logo

The Simple Multi-Touch Toolkit (SMT)

This is an ongoing project.


While multi-touch computing becomes more common, there comes a requirement for students to learn how to create software for multi-touch environments.  Although, there are many powerful toolkits that exist already, many require a strong programming background and thus become difficult to integrate into fast-paced human-computer interaction (HCI) courses or for non-CS students to use.  Researchers at the University of Ontario Institute of Technology (UOIT) and the University of Waterloo (UW) have developed a toolkit with a simplified API called the Simple Multi-Touch Toolkit (SMT).

Figure 1. Processing IDE using the SMT toolkit and its output window.

Based around the concept of touch-enabled zones, SMT is built as a library for the popular processing platform, and is also usable as a standalone Java library.  By integrating with Processing’s simplified syntax, SMT makes prototyping multi-touch applications fast and easy. SMT natively supports TUIO and works on Windows Touch, Leap Motion, and SMART SDK, but also provides multi-touch simulator to support non-touch enabled environments with a mouse. By building this device support directly into the library, there is commonly zero setup required to run applications created with it. While SMT was designed to support students and used in undergraduate HCI courses at both UOIT and UW in experimenting with multi-touch input, SurfNet researchers have also used SMT to develop several applications.

SMT includes many example UI components, and many common multi-touch interaction methods. This enables quick development of applications, especially prototype software, and also requires very little programming knowledge. These features allow many more people to utilize multi-touch hardware effectively. We also include built-in touch feedback, so as to enable some visual debugging behaviour and to enhance usability of applications created with the toolkit. 

By utilizing Processing for graphics and input, SMT applications are very easy to customize, and almost all existing documentation for Processing is still relevant for users of SMT. This reduces the amount of learning needed for existing users of Processing, and also makes it easier for non-programmers to learn the portions of application development that are not specific to multi-touch, which Processing is designed for.





NSERC Logo        SurfNet Logo