Archives for April 2006

Analog Interaction Design: Handles, Motors, and Instant Lover

23 April 2006

instant lover 1instant lover 2

In one of his classic lectures on interaction design, Bill Verplank distinguishes handles (for continuous control) and buttons (for discrete control). He's a big fan of the former, along with motors, haptics, and all manner of musical instrument controllers. Within minutes of trying James and my force-feedback radio he had about a dozen suggestions, all excellent. Using his force stick [pdf] could be mistaken for plucking a real guitar string – until, of course, he changes it to feel like beating a drum or ringing a bell.

What's striking about Verplank's work, though, it is uniqueness. Few of the interaction design or physical computing projects I've seen (in my two years at Interaction Ivrea at least) have such a rich, physical interface, or what you could call analog interaction design. One great exception is this project: the instant lover. In a few days, with a single servo-motor (and another to ring the glass), Alejandro, Dana, Chia-Ying, and Mike created an evocative, fluid behavior. It's not interactive but it exemplifies qualities that should be more common in interaction design: non-screen, non-LED output and the use of materials to provide the texture missing in digital devices.

Blinking a LED is easy enough to be considered the «hello world» of physical computing, reading a pushbutton isn't much harder. We need to explore more complex forms of input and output.

Some other examples of analog interaction design include: String Thing by Ben Dove and Soft Interfaces by Akemi Tazaki. Any more?

Thesis Report Draft

12 April 2006

A draft of my thesis report (35 pages). Here's the table of contents:

1 Introduction 2 
2 Background Research 4 
2.1 Language-Aware Editing . . . . . . . . . . . . .  4 
2.2 Code Evolution . . . . . . . . . . . . . . . . .  6 
2.3 Testing. . . . . . . . . . . . . . . . . . . . .  7 
2.4 Ad-Hoc Debugging . . . . . . . . . . . . . . . .  8 
2.5 Traditional Debuggers. . . . . . . . . . . . . .  8 
2.6 Tracing Debuggers. . . . . . . . . . . . . . . .  8 
2.7 Algorithm/Program Visualization. . . . . . . . .  8 
2.8 Visual Programming . . . . . . . . . . . . . . . 10 
2.9 Live Programming . . . . . . . . . . . . . . . . 11 
2.10 Custom/Complex Interface Elements . . . . . . . 11 
3 Explanatory Prototype 13 
3.1 Introduction to Scheme . . . . . . . . . . . . . 13 
3.2 How it Works . . . . . . . . . . . . . . . . . . 14 
3.3 Implementation . . . . . . . . . . . . . . . . . 14 
3.4 Discussion . . . . . . . . . . . . . . . . . . . 15 
3.5 Questions. . . . . . . . . . . . . . . . . . . . 15 
4 Analysis 16 
4.1 Frustrations with Current Tools. . . . . . . . . 16 
4.2 Breakdown of the Debugging Process . . . . . . . 17 
4.3 Other Motivations for Understanding Code . . . . 18 
4.4 Debugging Scenario . . . . . . . . . . . . . . . 19 
5 Interface Design 21 
5.1 Time and Sequence. . . . . . . . . . . . . . . . 22 
5.2 Variables and Values . . . . . . . . . . . . . . 23 
5.3 Connections and Dependencies . . . . . . . . . . 25 
5.4 Comparing Versions . . . . . . . . . . . . . . . 27 
6 Feasibility 29