MPA01 New Interactions and Inputs

Due: Wednesday, February 26 (before classtime)
Now Due: Monday, March 3 (before class, meet in HCIL)

Note: This assignment is mostly complete but I may add clarifications/updates based on your feedback.

This is the first of four mini-project assignments. These are to be completed in pairs of two. I will not be assigning pairs; this is up to you. You may choose to complete this assignment individually; however, you will be graded as if you completed it in a team of two.

I also suggest you get started on this immediately in case you need to order parts from places like,, Seeed Studio, RobotShop, Digikey, Mouser, etc. If you would like to order parts, I suggest posting to Piazza first to see if others also want to order to save on shipping. I do not have money this semester to cover all part ordering for the mini-project assignments; however, if you want to order something and do not have the money, send me an email and make a case for it. In many circumstances, I could see myself purchasing the component so it becomes part of the Hackerspace.

What To Do

In this assignment, your goal is to make an input device for a computer. This could mean a new type of mouse, text entry system, or a specialized device (think Rock Band guitar or drums).

Don't just think about the sensing system you want to use to encode physical action into virtual bits that control a computer--think also about the form, fluidity, and mapping of this interaction. How intuitive does it feel? Why does it feel intuitive, or not? Think also about creating a physical form--out of clay, cardboard, foam, 3D-printed material--to improve the look and/or feel of your new input device.

This assignment is based, in part, on Homework 2 "Text Entry Device" from Bjoern Hartman and Paul Wright's UC-Berkeley Interactive Device Design course. You'll note that our assignment is more lenient in that you need not just create a new type of text entry device but, instead, a new type of input device in general (which could be a text entry system but may also be a new type of mouse or a specialized device). Like our class, Bjoern and Paul have their students submit videos of their assignments. Here are some examples from his class: (i) chorded keyboards (link1, link2, link3, link4); (ii) directional input with soft keyboards (link1, link2,link3); and (iii) multi-tap keyboards (link1, link2, link3, link4). Remember, all of these are text entry systems because that was their assignment; our assignment is different. I am including these links to highlight the breadth of creative solutions in class and the use of wikis/videos for deliverables.

Here are some example input devices from the interwebs that I find particularly inspirational:
You should also check out the completed assignments from the first time I taught this class. The top performing assignments based on peer votes were:
  1. Arduino. Theremin. Gangam Style.
  2. The Arduino Controller
  3. Pressure Sensing Seat-Pad Interface for Pac-Man
  4. KeyDisembark

Tools/Library Usage

As before, you can use whatever developer tools, IDEs, debuggers, libraries, and/or code snippets you find to support turning your ideas into a reality. Of course, you must keep track and cite the use of any code or libraries you use in your project. You must also include citations towards projects that inspired your own. Do not be shy to include as many links as you can that influenced your projects form or function in some way.

Remember to also include citations (with URLs) in your code via comments to all code that you borrowed from or extended from blogs, forums, open source, etc. If I find code that was copied and not appropriately cited, I will consider this a direct violation of the UMD Academic Integrity policy. You will not be penalized for re-using or re-appropriating cool things in this class, you will be penalized for not properly attributing them.

Assignment Deliverables

The assignment deliverables are due before lecture begins.
  • Utilize github to store and post your code. This should be publically viewable and accessable. You are welcome to use any license you like on the code itself (including no license at all--e.g., None). When you use other people's code, you must cite your source--even if it's just a blog post and a small snippet. I believe github provides academic accounts (for additional features, please check the website).

  • Post a Wiki write-up to your own wiki subpage on this wiki (example).

  • Upload a video demoing your submission to YouTube. You should include the link to the YouTube video in your Wikipage (again, you don't have to use your real names here). Please take the video creation process seriously--video is one of the best forms to portray the interactivity and sheer awesomeness of your inventions. I hope that you create something you would feel proud of to show your friends or family.

  • Presentation/demo. On Wed, February 26, we'll have a presentation/demo day. We will dedicate the whole 75 minutes to this. We will likely have around 10 teams so each presentation should be 4 minutes + 1 min Q/A. It's up to you how you want to present your work--you could do a live demo for the class, play all or part of your video, show slides, or do an interpretive dance. After each team has presented their work, we'll use the remaining time in the class to interact with each others demos.

Assignment Grading and Rubric

Most, if not all, assignments in this class will be graded on novelty, aesthetic, fun, creativity, technical sophistication, and engagement. All assignments (including the project) will be peer-reviewed by everyone in the class including me. Everyone, including me, will fill out the same feedback form. We will rank our favorite projects and the top two or three teams will receive a prize.

You must also fill out a partner evaluation form. This is due March 10th before class but I would appreciate it if you filled it out earlier. I expect that this should take you ~15 minutes. Please be reflective, thoughtful, and honest about your own performance and that of your partner.

In-Class Presentations

The order for the in-class presentations will be:

  1. The Touchy-Feely Box
  2. Joytunes
  3. Flappy Cat
  4. Cubot
  5. {cuff}
  6. Moodring2.0
  7. Stealth Text
  8. Fuzzy Adventure
  9. Marduino

You must fill out this feedback form during the presentations and submit it before the end of class today.

I will time each presentation to ensure that the 4 minute limit is attended to so that each team gets the same amount of time whether they are at the top or bottom of the above list. I also want to make sure that there will be time for demos and interactivity after the presentations--this is always an incredibly fun part of the presentation days.

Completed Assignments

This page is editable by all members of the class (once you login to wikispaces). If you cannot edit this page, please send me an email or post to Piazza for help. List your assignment below. You and your partner do not have to list your real names unless you want to. Instead, you can come up with a team name (I know some students are sensitive about online privacy and I respect that).

The format should be something like the following (again, see this list from Fall 2012).

1. Joytunes

Anis Abboud, CS Master's
Brendan Fruin, CS Master's

Joytunes allows you to play musical notes through the movement of two thumb joysticks and two pedals.
Joytunes can also be used as a keyboard, in which the joysticks are used for character selection.

2. Flappy Cat

Peter Enns, CS Masters
Sana Malik, CS Ph. D.

Flappy Cat is comprised of two cat-friendly controllers for Flappy Bird.

3. Cubot

Ruofei Du, CS Ph.D.
Fan Du, CS Ph.D.

We propose Cubot, a novel input device that enables people to use it as an in-hand or wearable input device. We endow a cube with soul and make it into a general input device for a computer. People can use Cubot as a game controller, a remote, a body tracker and anything else in their mind. In this mini project, we illustrates our idea by playing FlappyBird via body jumping and hand lifting with Cubot, operating "helicopter" to view a 3D scene, observing a 3D object by rotating heads, play games and present slides via moving chairs.

4. The Touchy-Feely Box

Joshua Bradley, CS PhD
Kent Wills, CS Masters

Touchy-Feely Box takes everyday water-induced objects, from wet paper towels to cups of water, and turns them into gesture sensors for playing games. Specifically, Touchy-Feely Box was created for fun and interaction with a modified HTML5 game, JumpBox. Put away your PS3 Controllers and start picking up... anything!

5. { cuff }

Tiffany Chao, CS PhD
Jonathan Gluck, CS PhD

Uses an accelerometer and a pulse meter together acting as a passive game input device. Allows developers to use information about the gamer's state of mind that is not easy to control.

6. MoodRing2.0

Meethu Malu, CS PhD
Kristin Williams, HCI Masters

MoodRing2.0 is a wearable device which senses hand temperature in order to determine the wearer's mood. MoodRing 2.0 uses color to convey the wearer's mood and displays this color both on the device and as a font color on the wearer's computer.

7. Stealth Text

Max Potasznik, CS Masters
Richard Johnson, CS PhD

Write messages during a boring meeting without being noticed or seeming rude! Uses a coffee mug and 2x Force Sensing Resistors to create a discrete text input device. Uses a modified version the Tap Code as the messaging protocol with added capabilities for numeric digits, space and delete characters and send/confirm message.

8. Fuzzy Adventure

Alina Goldman
Chris Imbriano, CS PhD

A music mixer that gives the audience feedback as to what, how, or if the performer is affecting the sound of the performance by requiring physical actuation either by the artist themselves or by a physical object.

9. Marduino

Hitesh Maidasani
Ankit Shrivastava

A pressure pad board to play Super Mario Bros with your feet.