Human-Computer Interaction at MIT

Join us!


Randall Davis

Design Rationale Group

Frédo Durand

Computer Graphics Group

Daniel Jackson

Software Design Group

David R. Karger

Haystack Group

Rob Miller

Usable Programming Group

Stefanie Mueller

HCI Engineering Group

PhDs, PostDocs, Lecturers

Tarfah Alrashed


Anant Bhardwaj


Carrie Cai

Usable Programming

Max Goldman

Usable Programming

Antonio Gomes

HCI Engineering

Jiamin He

HCI Engineering

Lauren Huang

Design Rationale Group

Matt McCutchen

Software Design Group

Santiago Perez De Rosso

Software Design Group

Billy Pong

Software Design Group

Parinya Punpongsanon

HCI Engineering

Lea Verou


Paul Worgan

HCI Engineering

Amy Zhang



New Interaction Models for Personal Fabrication (HCI Engineering Group)

Inspired by the history of the user interface for personal computing, we are developing new interaction models for personal fabrication. Instead of working through a digital 3D editor, we propose to let users work hands-on on the physical workpiece and to update the physical object after every editing step. Our long-term vision is to enable direct manipulation for physical matter in the same way as we today manipulate digital data on touch-devices, such as the iPad.

Faster Prototyping and Design Iteration Techniques (HCI Engineering Group)

Even though considered a rapid prototyping tool, 3D printers are so slow that a reasonably sized object requires printing overnight. This slows designers down to a single iteration per day. Our concept called Low-fidelity fabrication speeds up design iteration by printing intermediate versions of a prototype as fast, low-fidelity previews. Only the final version is fabricated as a full 3D print.

Gitless: a version control system (Software Design Group)

Gitless is an experimental version control system built on top of Git. Many people complain that Git is hard to use. We think the problem lies deeper than the user interface, in the concepts underlying Git. Gitless is an experiment to see what happens if you put a simple veneer on an app that changes the underlying concepts. Because Gitless is implemented on top of Git (could be considered what Git pros call a "porcelain" of Git), you can always fall back on Git. And of course your coworkers you share a repo with need never know that you're not a Git aficionado.

Rethinking Software Design (Software Design Group)

For decades, 'software design' has been about the internal structure of the code. Recently though, with the growing interest in design thinking, practitioners and researchers have started focusing more on the design of the behavior of the software. The behavior not only determines the user experience, but also shapes the implementation in fundamental ways. In this project, we are developing a radical new approach to software design that focuses on this aspect. The key idea is the identification of conceptual constructs that embody the key behavioral features of the application. To realize the goal of a new design method for software, we analyze existing systems and applications and develop new ones, polishing our design theory in response to what we learn from case studies.

Object Spreadsheets (Software Design Group)

Object Spreadsheets (formerly Relational Spreadsheets) is an enhanced spreadsheet tool with support for storing and manipulating structured data. End-user developers can use it directly to work with a data set, or to build a web application that offers constrained view and update access to a larger population of users. As of December 2015, we have a prototype of the spreadsheet tool that we believe demonstrates the basic vision pretty compellingly, though it is missing developer aids for formula building and many other smaller features that would improve its usability. Completely missing at this point are (1) the ability to edit stored procedures via the spreadsheet UI and (2) integration with a UI builder to design the application UI. To demonstrate the applicability of the tool, we have built several example applications, writing the procedures and the application UI by hand; these are included with the prototype.

Wait-Learning (Usable Programming Group)

Wait-learning encourages users to learn during times when they would otherwise be waiting, by automatically detecting waiting moments and presenting educational exercises during that time. Combining wait time with productive work opens up a new class of software systems that overcome the problem of limited time by making use of existing wait time for productive activities. Examples of wait-learning moments used by our systems include elevator waiting, waiting during pull-to-refresh, waiting for wifi to connect, waiting for email to finish sending, and waiting for instant message replies.

Sketch Interpretation for Natural Interaction (Design Rationale Group)

Communication often has a pictorial component, as for example when designers (of many sorts) sketch, or stand at a whiteboard, drawing, gesturing, and talking about their designs. We want the whiteboard to be smart enough to understand that interaction, i.e., understand the sketches, the gestures, and the speech, and be able to draw, gesture and talk in response, as style we call symmetric multimodal interaction.

Drawing Interpretation for Cognitive Assessment (Design Rationale Group)

For many years neuropsychologists have tested people's cognitive status by having them draw simple diagrams. We have been administering these tests using a digitizing ballpoint pen, then analyzing this data using a variety of sophisticated techniques from sketch understandig, machine learning, and signal processing. This research has uncovered very subtle, previously unknown movements made when drawing that are indicative of cognitive status.


6.811/HST.420/2.87 Principles and Practice of Assistive Technology (PPAT)

Fall 2016 Instructors: Julie Greenberg, Kyle Keane, Rob Miller

Interdisciplinary, project-based course in which small teams of students work closely with a person with a disability in the Boston/Cambridge area to design a device, piece of equipment, app, or other solution that helps them live more independently.

6.170 Software Studio

Fall 2016 Instructor: Daniel Jackson

Covers design and implementation of software systems, using web applications as the platform. Emphasizes the role of conceptual design in achieving clarity, simplicity, and modularity. Students complete open-ended individual assignments and a major team project. Enrollment may be limited.

IAP Build your own Multi-Touch Pad

IAP 2017 Instructor: Stefanie Mueller

Learn laser cutting, electronics breadboard prototyping, soldering, and computer vision in only two days. In this hands-on IAP we will build a multitouch pad including gesture recognition based on the principles of FTIR.

6.813/6.831 User Interface Design and Implementation

Spring 2017 Instructors: Rob Miller, Stefanie Mueller

Covers human capabilities, design principles, prototyping techniques, evaluation techniques, and the implementation of graphical user interfaces. Deliverables include short programming assignments and a semester-long group project.

6.S··· Engineering Interactive Technologies

Fall 2017 Instructor: Stefanie Mueller

Teaches how to build cutting edge interactive technologies and provides an overview of each field. Topics covered include multitouch, augmented reality, haptics, wearables, brain computer interfaces, tangibles, fabrication, and more.

HCI Seminar

📅  Tuesdays, 1pm - 2pm 📍 Kiva Seminar Room, Stata Center (32G-449) 🔓 Open to the public 📫 Subscribe ✉️ Contact

Spring 2017

Latest Recorded Talks See All

Rubaiat Habib (Autodesk) "Dynamic Drawings for Communication & Design"

Iyad Rahwan (MIT Media Lab) "Extreme Crowdsourcing: From Balloons to Ethics"

HCI Elsewhere at MIT

Research Groups

Seminars and Meetings

Join us!

As a PhD student: apply to the MIT EECS PhD program by December 15.

As a postdoc or UROP/SuperUROP/MEng: email individual faculty directly.