Alan Blackwell: Part II HCI projects 2004/2005

General note on HCI projects - a good HCI project involves: 1) A theoretical analysis of some human activity involving computers; 2) Design and implementation of a tool that exploits this analysis; and 3) Evaluation of the results by experimental testing. Many Part II projects involve only step 2, so an HCI project can involve more work. However there is no disadvantage in attempting an HCI project - on the contrary, these projects are often carried out by top students, and in recent years, two Cambridge students (Hanna Wallach and Tim Hospedales) have been awarded the national SET prize for computer science student of the year on the basis of their HCI projects.

Project 1: Mutating the Mouse

Griffin Powermate
To create one or more new interaction devices that can replace or augment the mouse, operating via a standard USB interface.
When we look at the instruments in an orchestra, we find a huge variety of physical user interfaces that have been optimized for speed, control accuracy and subtle expressive effects. The computer mouse, by contrast, is crude and tiring to use repetitively. This is partly because its function is so generic - it must be able to refer to any screen location, initiating any operation at that point. This project, in contrast, would explore the potential for specialized physical interaction devices that do one thing and do it well. A possible application might be musical performance (working with Nick Collins, a PhD student in music who has performed laptop music in the UK and internationally), although almost any application area could be considered, based on the studentís interest. The physical form of the interface, and sensing technique used, are open to creative choice - possible examples include low-cost USB video cameras (would require some image processing), accelerometers, strain gauges or shaft encoders (would require some hardware expertise).
Work programme:
Develop an interactive software test interface to a general purpose USB board developed in the CU Engineering Department.
Identify a suitable sensing device, and design a circuit to read its state across a reasonable dynamic range (or, if using video, implement low-level image processing routines).
Based on an analysis of human interaction capability, design an appropriate enclosure or mechanism to operate the sensor.
Design and code a new user interface widget that exploits the control advantages of the new device.
Carry out a simple experiment to compare user performance with the new device against user performance with a mouse.
Skills required:
Some knowledge of electronics (either analog or digital, depending on sensor chosen), and mechanical construction ability.
Experience of driver programming is not required, but would be an advantage.
General purpose USB interface board (will be obtained from CU Engineering Department).
Further background reading:
The Griffin PowerMate (pictured above) is a novel USB interaction device that has achieved significant commercial success. It offers a good example of the benefits of a well designed physical interface.
Nick Collinsí work can be reviewed at the Sick Lincoln website.
One of my recent research publications has analysed the interactive potential of a variety of physical devices for use in programming languages, although based on a sensing technology (RFID) that will not be used on this project.

Project 2: Choreographerís Sketchbook

Random Dance Company / Wayne MacGregor's sketchbook
Based on an analysis of the information requirements of contemporary choreography, create an interactive design tool that improves on the pencil and paper state of the art.
In a recent research project called "Choreography and Cognition", we worked with leading London choreographer Wayne MacGregor and the Random Dance Company to create and rehearse a new work called Ataxia. In the course of this project, we discovered the limitations faced by choreographers who have no compositional notation software of the kind that is taken for granted by musicians, screenwriters and digital artists. This project would create a new design tool that could replace or augment the paper notebooks currently used by most choreographers. This would allow choreographers to explore possible arrangements in time and space, animating the results, and communicating their intentions to dancers. This is similar to the national prize-winning project done by Hanna Wallach in 2002 (although that project was a design tool for use by architects, rather than choreographers).
Work programme:
Define the requirements, reviewing videos of Random Dance company in performance, and interviewing a leading choreographer (either Wayne MacGregor, or one of the others involved in the project).
Specify a set of facilities that provide a new interaction profile for choreographic activities.
Implement one or more editors that provide those facilities.
Evaluate the editors in a series of short usability trials with choreographers and dancers. Note that this final stage will require one or two daysí work in London (expenses will be paid).
Skills required:
No special technical skills. The complete project can be implemented in Java, using the Swing graphics toolkits. Basic knowledge of music and stage production would be useful, but not essential.
A suitable laptop for use when evaluating the software. Studentís own laptop will be most convenient, although it may be possible to loan a tablet PC if the final application would exploit pen interaction.
Video camera for use in evaluation sessions (available from Rainbow group).
Further reading:
The basic analytic principles will be those of Greenís Cognitive Dimensions of Notations (to be covered in Part II HCI course), and Engelhardtís Language of Graphics.
A larger-scale research project that is aiming to create an Interactive Choreographic Sketchbook.
Background information on Wayne MacGregor and Random Dance Company.

Project 3: ToonlessTalk

Screenshot of ToonTalk
Create a visual programming language that adopts the semantics of the "programming as video game" system ToonTalk, but in a metaphor-free 2D representation.
ToonTalk is a radical programming language in which programs are created by demonstrating required behaviour to a robot in a 3D videogame world. The underlying computation model is sophisticated (a concurrent constraint programming paradigm), but hard for computer scientists to recognize because the presentation is so unconventional. This project would define the semantics of that model, and use them to implement a new visual programming language intended for use by computer scientists. The program editor would be implemented in Java Swing, and the back-end would store and execute the resulting program using one of the JVM, .net or ToonTalk execution models.
Work programme:
Study the ToonTalk product and research papers. It will be possible to obtain direct assistance from Ken Kahn, author of ToonTalk, who is currently based in London.
Define the necessary semantics.
Design a visual representation for those semantics.
Implement a graphical editor in Swing for the required representation. (It may be possible to use a configurable drawing package such as Visio, or one of the Eclipse components))
Implement the virtual machine code generation for the back end.
Briefly compare the usability of the result, for equivalent program specifications implemented in ToonTalk and the ToonlessTalk environments.
Skills required:
An interest in programming language semantics (especially descriptions of concurrency - to be encountered in the Part II course) will be useful.
It will be necessary to work with a language virtual machine - previous experience would be useful, though many Part II students do manage to learn all they need about JVM or .NET in the course of the year.
A copy of the ToonTalk product distribution will be provided.
All implementation work can be done either in a suitable .net environment or Java.
Further reading:
The commercial support site for ToonTalk.
An introduction to the computational model and some publications describing research relating to ToonTalk.
General resources on visual programming languages.

Click to return to Alan Blackwell's home page.