There are three short production project assignments and one final project in this class. You’ll be expected to do all of them. For the first one you’ll work alone. For the second, the whole class will work on the same project, but each of you may work alone or in groups on your part of it. For the third, you’ll work in pairs. For the final, you may work alone or in groups. Larger groups are fine, as long as everyone participates equally.
If you have a project in mind for the final that overlaps with another class, talk to me about it. There are many good applications of networking and physical interaction design that overlap other classes, and I’m open to consideration.
Project 1: Physical Computing Improv
This project is a quick one for me to get to know what your physical computing skills are. Pick at least one item from each of these three lists, and combine them into a responsive object. Whatever you build should be no larger than a 40-centimeter cube. Your object has to respond to a person’s action. It should communicate serially with a screen-based display, and provide the user a way to interact with the display. The interaction must be repeatable, and clear to the person in question. It doesn’t have to be meaningful, but it does have to be engaging in some way.
Work alone on this. You have one week to complete it. Don’t over-think it.
Project 2: Pong
For this project, the whole class will play a giant game of networked Pong together. You’ll be given the address of a server on which the Pong game will run, and the details of the protocol for each Pong paddle client. Your assignment is to make a physical input device that logs into the server and plays the game.
Your work will be evaluated based on the following criteria:
How well does the device connect and disconnect to the server and play the game?
How thoroughly does it give local feedback of remote events?
How effectively does it enable the player to win the game without diminishing the engagement of other players?
You may work alone or in groups for this assignment. For the presentation, you will not present sequentially as is usual for class presentations. Instead, every client project will be expected to log in to the server simultaneously with at least three other clients and play competitively in a game of pong. A pong server will be set up the week the assignment is given, and will be accessible for the entire week over the network.
Project 3: Espionage Chain (Telephone)
Greetings agent double-zero-X. You are about to become a vital link in a complex chain of secret information protecting the world against zombie infiltration. Your mission is as follows:
- receive a cryptic message of critical importance via one technology
- add your own secret information to this message
- Pass the larger message along to the next agent in the chain, using a different technology
- Indicate success using a physical output of your choosing
The end result of this communique will be a complete message that the last agent in the chain can decode and read. You will choose two different communications technologies and your handler (aka “The Instructor”) will give you your part of the secret message. Locate the agent who signed up to send a message via the technology you are signed up to receive. Work with him or her to create a reliable communications protocol so that you can receive a message of arbitrary length and then add your part to it. Work with your other partner agent (the receive to your send) to reliably transmit the assembled message to them. Remember, everyone is essential to getting the full message through. One slip-up and the zombies win.
You will need to coordinate with two other people for this assignment. It’s okay to trade technologies, but you must keep your position in the chain. Helpful code and plentiful encouragement will be provided.
The final project is a practical application of networking and physical interaction design. It can use any of the technologies we discuss, or other ones, as needed. The main aim of this project is to present a workable prototype of a networked application.
Design and build a networked system that facilitates communication between humans (or other animals) over a network through means other than the standard keyboard-mouse-screen interaction model. Design and build both the physical input and output devices. What happens across the network should be clear to all parties using the system, so that the whole experience serves their needs or interests.
Your system should involve two-way communication between at least two physical devices over one or more networks. There may be one or multiple servers involved as well, as you need.
You may expand on either of the earlier projects for your final, or you may begin a new project. Your project may overlap with work from another class, as long as you discuss it with me in advance. You can work alone or in groups. Given the scope of the assignment, I recommend working in groups, as it’s very difficult for one person to finish all of this alone in the time given.
You should start by asking what the intended participants are to do, and how and where they are to do it, and what their goals are in doing it. Consider all the factors affecting their participation: physical, social, economic, environmental, and other constraints. Think about the actions they’ll take and the objects and surfaces that they manipulate. Consider also the connectivity between the elements of your system, and plan the network transactions thoroughly.
There are a number of milestones in your final project which you’ll be expected to document and present in class. They are as follows:
System Diagram and interaction scheme – this is a general layout of the components of your system, including the devices and protocols involved. In the early stages it will be fairly general, but at the end, it should specify every major component and the protocols linking the components. The interaction scheme should be either a state diagram describing what happens, or a narrative description of the interaction, or both. Do this early on, and use it as a roadmap for the prohect.
Interface Mock-up – this is a physical mockup of what the devices will look and feel like. You can use fome-core, cardboard, or other simple materials, and the mockups don’t have to be functional, but they should give us a clear idea of the physical relationship between our bodies and the system. For large-scale systems, use scale models.
Technical Research report – This is a “how-to” report, particularly on those components of your system that have not been covered in class, or in other classes. For example if you use a sensor or actuator that no one in class has used, or develop a technique that is new to ITP but beneficial to others, and document it. This probably won’t be presented in class, but it should be thoroughly documented online.
Final Summary – what worked, what didn’t, what surprised you, what you’d do differently in the next iteration.
Note: depending on how many final project groups there are, it’s possible that every group may not present every milestone. You are expected to reach and document the milestones, regardless.