Exemplar: Authoring Sensor Based Interactions

Project Overview

What kind of tools would you need to prototype an accelerometer based control for an existing game in less than 30 minutes? An increasingly diverse set of sensing technologies is appearing in smart products and research projects alike. Our group's goal is to develop prototyping tools that allow designers to gain insight into the design space of sensor-based interactions more rapidly. Exemplar is a tool that introduces new techniques for authoring sensor based interactions through programming by demonstration. To generalize from demonstrations, Exemplar provides a graphical direct manipulation interface.


Exemplar was designed to communicate with the d.tools hardware interface. We have also written firmware for Wiring and Arduino boards to stream data to Exemplar, as well as a custom serial port driver to interface with SparkFun Electronics' WiTilt wireless accelerometer board. For our prototypes, we have been using force sensitive resistors, accelerometers, bend sensors, IR rangers, light sensors, touch sensors, buttons, switches and more...


Exemplar is a plug-in written for Eclipse 3.2. The Exemplar GUI is organized according to a horizontal data flow metaphor : sensor data from the hardware interface arrives on the left hand side of the screen and, through manipulations, arrives transformed on the right hand side as discrete or continuous events.

Live data from all connected sensors is shown simultaneously in a small multiples configuration on the left, giving a one-glance overview of the current state of all sensors.

In the News
D.tools and Exemplar are discussed in Dan Saffer's book Designing Gestural Interfaces (O'Reilly, 11/2008). Exemplar is also discussed in Tom Igoe's book Making Things Talk (O'Reilly, 09/2007).

Financial Times Deutschland (2/24/06)
Qualität durch Basteln (in German)
Quality by Tinkering (in Google English)

Stanford Report (2/21/06)
Good computer interfaces respect the real world, Klemmer says

Make magazine blog (1/31/06)
Functional prototypes in 30 minutes or less...

d.tools was shown at the MAKER Faire, April 22-23, 2006 at the San Mateo Fairgrounds in San Mateo, California. You can catch a brief glimpse of our stand in this Revision 3 Systm Internet TV show (thanks to Martin Davidsson for the link)

Exemplar was shown at the MAKER Faire 2007.


Authoring Sensor Based Interactions Through Direct Manipulation and Pattern Matching (CHI'07 full paper) (slides: pdf, slideshare) (Best Paper Award!)



Exemplar in Action


Exemplar is freely available as open source software under the BSD license. The latest version is: edu.stanford.hci.exemplar_0.4.2.jar (2007-05-31). This jar file contains both binaries and source files. Read the installation instructions.

Arduino firmware to send ADC data to Exemplar: arduino-firmware.zip (.pde source code)
Wiring firmware for Exemplar: wiring-firmware.hex (binary, not written in Wiring environment)


Installation Instructions and troubleshooting information is available on our wiki: http://protolab.pbwiki.com


Björn Hartman, Leith Abdulla, Scott Klemmer (Stanford HCI)
Manas Mittal (MIT Media Lab)