Interactive Media & Game Development
Worcester Polytechnic Institute

IMGD


IMGD 5100: Immersive Human-Computer Interaction
Project 1: Rotate That Cube!
Due: Monday, November 17, 2014 at 6pm

Objective: THIS PROJECT SHOULD BE DONE IN GROUPS OF THREE!

In this project, you will implement a simple program to take the movement of an input device (mouse) and use it to control the rotation of a cube on the screen. The application will use middleware for connecting the device (mouse) to the rendering part.


Description: One of the main problems with creating Immersive Experiences has to do with getting data from various input devices to the application, in a format that makes sense, as quickly as possible, and mapped to the desired control the designer is hoping to achieve. For example, if we would like to move the player camera according to the tilt input from a Wii Controller, we somehow have to get the data from the Wii, format it such that the application knows what to expect, and then make it available to the application when it wants it.

One problem with this scenario is that different devices have different properties, such as the number of degrees of freedom, buttons, update rate, etc. Also, it is desireable to be able to run/test an application with various input devices, in order to ease the testing process, or because some hardware might not be available. The naive way to connect devices to applications is to use the native API for a given device. While this will actually work, it leads to a tight coupling between the device and the application, making it hard to switch devices, etc. A cleaner solution is to use abstraction to separate the details of the device from the application using it.

Your task is to construct a simple system that uses this approach with existing tools. To this end, you will select a piece of middleware, such as:

  • EAMIR: An open-source music technology project involving alternate controllers and adaptive instruments
  • VRPN: A very robust, low-latency system based on managers
  • MiddleVR: A full-featured, highly configurable system device abstraction tool
  • RUIS: A high-level system for connecting devices to VR applications

In addition, you will choose a tool to act as the main application that will talk to the device through the middleware, such as:

Those of you wanting to do more, and after you have finished the assignment, can add support for another, spatial-input device, such as a Wii remote. Again, I am more interested in what you learn about the technologies, how you work in teams, etc. than having you learn a lot of deep technical concepts right now.. Focus on getting the pipeline in place, so you can do awesome things in the future.


Attacking
the Problem:
Start early! I am a firm believer in front-loading as much work as possible on projects. The more you get done now, the fewer unknowns you will have about the project, and the sooner you'll start making significant progress.

Remember to start small. As I've done above, break down the individual parts into smaller, more-manageable pieces; don't try to solve the whole problem from the start.


What to Submit: Each team will demonstrate their project in class on Monday, November 17. Please bring everyting you need to run your program with you to class.

Academic
Honesty:
Remember the policy on Academic Honesty: You may discuss the project with others, but you are to do your own work. The official WPI statement for Academic Honesty can be accessed HERE.


Back to course page.