Interactive Media & Game Development
Worcester Polytechnic Institute


Course Title: HCI for Real, Virtual, and Teleoperated Environments
Course Number: IMGD-3xxx
Term A 2010

Meeting Info: Tue. & Fri. 01:00-02:50pm, Fuller Labs (FL), Room 222

Instructor: Prof. Robert W. Lindeman
E-Mail: gogo at
Telephone: x6712

TAs: Paulo de Barros (pgb at
Jia Wang (wangjia at

Readings: There are two main books for this course, and other readings will be provided over the course of the term.

These very helpful ebooks are available from any WPI computer:

PI: Programming Interactivity, 1st Edition, Joshua Noble, O'Reilly Media, Inc., Print ISBN-13: 978-0-596-15414-1

GSA: Getting Started with Arduino, 1st Edition, Massimo Banzi, O'Reilly Media, Inc., Print ISBN-13: 978-0-596-15551-3

Unfortunately, access to the ebook service (Safari Books Online) is limited to a total of 25 people at any given time, across all of WPI. The first book, PI, is in the bookstore.

Course Objectives:

This course is designed to make students think beyond "traditional" computer and video game interfaces, such as the keyboard, mouse, and game pad.

By the end of the course, you should feel comfortable assembling low-level components (and disassembling larger ones) to create novel interface devices. You should also know how to make them communicate with applicaton software, and how the design of interactive applications, such as games, is influenced by the selected devices.

Beyond games, the knowledge gained from this course will allow designers of teleoperated robotics systems, as well as traditional user interface designers, to better understand the possibilities of incorporating simple sensor and actuator systems into their designs.

This is a perfect time to study these topics, because of several current developments:

There are several objectives for this course:

There are many other things that must come together to make a successful game. Thankfully, you have four years, and a whole array of courses, within which to accumulate skills and experience in many of these. We hope you will apply what you learn here when doing projects for other courses, and for your MQP.


50% Regular Projects
50% Final Project

Presupposed background:

In this course, students will be expected to understand systems-level computer science concepts, such as those found in CS-2301 or CS-2303, which cover systems programming. In addition, students will evelauate various interface options for video games, which will draw upon material from IMGD-1001: The Game Development Process.


The projects for this course consist of several programming assignments, designed to supplement the material covered in the lecture with practical experience. The projects for this course are demanding, and will require a lot of time. On the flip side, most people enjoy these types of projects, so it should be okay.

Most of the projects will use the Arduino platform, which will allow you to quickly (and relatively painlessly) set up a framework for building physical Input/Output devices. The Arduino has a very active community of, er, hardware hackers who not only build interesting I/O devices with the Arduino, but also provide good support for others wanting to do the same. If you want to get the most out of this course, you will embrace and contribute to this community.

Also, we have several Android mobile phones, Motortola Droids generously donated by Google, that you will use for some of the projects. As with the Arduino, there is a very active development community for the Android, with free eclipse-based development tools. Also, unlike developing for the iPod/iPhone/iPad, installing apps on Android is as simple as copying the app to the device.

Discussion Boards:

There is a place on the WPI Game Development Club's forums for this course, and you are encouranged to post your questions there, and to look for answers there. We will be using this heavily during the course for clarifications, corrections, etc. In addition, the Arduino and Android communities have forums with relatively quick turnaround. These are indispensable, so please take advantage of them as well.

Late Policy:

Projects are due at the specified date and time.
Late projects will be penalized 10% for each 24-hour period after the due date/time. Whether a project is 3 hours or 20 hours late, it will be graded down by 10%. You will be given adequate time to complete each project, if you start when it is assigned. Projects will be turned in electronically, and the date/time received will be used to determine any late penalty. PLEASE do not miss class in order to finish up a project.


Attendance is required. If you have an unavoidable need to be absent from the lecture, you do not need special permission, but you are responsible for the work covered even if you are not in class. Also, please bring your Arduino kits with you to all class meetings.

Office Hours:

You do not need an appointment to come to office hours; just show up and take your turn. Office hours (the lecturer's and the TA's) are an important way for you to get help or to discuss anything you have on your mind. We are there to help you; that is an important part of our jobs. Please make good use of these hours. You are cheating yourself if you do not. The table at the bottom shows the times of the office hours.


Questions and discussion are highly encouraged throughout the lecture hours. The best way to reach the instructor is by using e-mail.

The IMGD lab (FL-222) can be used for this course, and the Arduino boards you will use can be connected to the lab computers for you to do your projects there. Android development can also be done on the lab machines. You are also free to work on your own computer.

Class Conduct:

This course is intended for serious students. Participants will be expected to adhere to all rules of professional behavior.

Individual projects are expected to be done individually. As such, students are encouraged to discuss their work with each other, but are also expected to do the work by themselves.

Any breach of professional ethics as evidenced, for example, by copying exams or projects, downloading code from the Internet, cooperating in more than discussions and study groups, misusing computer resources, or using outside help of any kind, will be considered adequate reason for an NR in the course.

Group projects are designed so that every person gains a significant amount of new material. In the workplace, each team member is expected to contribute. Participants in group projects in this course should keep this in mind, and act accordingly. In evaluating each group, all team members will be asked to distribute a fixed set of "points" to the rest of their team, based on how much each member contributed.

It is to be emphasized that knowledge of material and professional behavior are tied together; failure in one of them negates any excellence in the other. Students who stay in the course past the first three days agree to adhere to the strictest rules of professional behavior.

The official WPI statements on Academic Integrity can be accessed at Those who have any doubt about what that means, and fail to gain that understanding after a discussion with the instructor, are encouraged to drop this class. Remember this warning - any breach of ethics will earn you an NR.

Course Schedule:

Meeting Date Lecture Topic Readings Slides/URLs Projects
1 08/27 (Fri) Intro
Intro Slides
In-Class Exercise 1
In-Class Game Demo:
3rd Space Vest
ASSIGNED: Project 1: Closed-Loop
2 08/31 (Tue) Designing Interactive Systems PI: Ch. 1 Interactivity Slides
In-Class Game Demo:
DUE: Project 1: Closed-Loop
ASSIGNED: Project 2: Sensor to Application
3 09/03 (Fri) Very Quick Intro to Electrical Circuits
Electricity Slides
In-Class Game Demo:
Novint Falcon Haptic Device

4 09/07 (Tue) Human Vision
Vision Slides
DUE: Project 2: Sensor to Application
5 09/10 (Fri) Visual Interface Elements
In-Class Game Demo:
Osu! Tatakae! Ouendan
ASSIGNED: Project 3: 3D Position Sensor
6 09/14 (Tue) Designing Physical Feedback PI: Ch. 8 Physical Input Slides
In-Class Game Demo:
Oshare Majo Love & Berry
Paper Topics Selected
7 09/17 (Fri) Human Haptics System
Haptics Slides
In-Class Game Demo:
NeuroSky MindSet
DUE: Project 3: 3D Position Sensor
8 09/21 (Tue) Human Audition PI: Ch. 11 Human Audition Slides
In-Class Exercise: Rodent Dissection
In-Class Game Demo:
Augmented Reality Toolkit (ARToolKit)
DUE: Final Project Ideas Due
9 09/24 (Fri) Physical Feedback: Motors; Final Project Pitches

Physical Feedback Slides
In-Class Game Demo:
EyeToy: Anitograv (Harmonix)

10 09/28 (Tue) Final Project Status Reports
In-Class Exercise 2
STATUS: Final Project Status Demo 1
11 10/01 (Fri) Final Project Status Reports
STATUS: Final Project Status Demo 2
12 10/05 (Tue) Mobile Devices
STATUS: Final Project Status Demo 3
13 10/08 (Fri) Input Device Design: Game Controllers
STATUS: Final Project Status Demo 4
14 10/12 (Tue) Final Project Presentations

DUE: Final Project

Schedule for Office Hours:

All TA office hours will be held in FL-222.
Prof. Lindeman's office hours will be in his office in FL-B24a.
Please feel free to contact either the TAs or Instructor to meet outside of these hours!

Time Monday Tuesday Wednesday Thursday Friday




IMGD 3xxx

IMGD 3xxx


TA Office Hours


TA Office Hours





Main Web Resources