Project 3: Mobile Ambient Display (get MAD...)

The goal of this project is to gain familiarity with developing mobile applications and handling sensor data. You will be creating an ambient device that adjusts the color of a mobile phone screen in accordance with values read from one or more sensors.

An example of such an interface in the commercial sphere is the ambient orb, which might change color in response to stock prices, the weather, or traffic conditions. You will use one or more streams of sensor data provided by a mobile phone. Example sensors might include accelerometer, temperature, microphone, camera (e.g., lightness), or GPS readings. You might also consider online data streams, such as RSS or Twitter feeds. Choose your sensors and display design in order to meet a compelling real-world information need for a user group.

Be creative! In addition to your choice of information and sensor(s), carefully consider the mapping from sensor data to screen color. What colors will you show and why? How might you use the rate of change, flashing, or other dynamics to usefully communicate information? Might contextual factors (time of day, weather, previous sensor values) be important to consider? While changing the color of a screen seems quite simple, there remains a very large design space to explore. We will favor designs that are innovative and engaging while remaining usefully informative.

While the primary purpose of the assignment is to get you familiar with mobile phone development, we would also like you to approach this assignment with lifelogging in mind. As such, at least one of your design sketches should be an ambient display that gives the user information about him/herself (for example, an ambient display that changes color based on the number of steps walked in a day). As a first step, we'd like you to write in your idea log 2-3 examples of information that people record about themselves, or may find useful to record about themselves, either online or offline.

We have provided some scaffolding code for driving the mobile phone display on Android devices. The provided Android mobile phones are "officially" supported for this assignment. If you have your own Android phone, you are free to use our code with your device. If you prefer to develop for the iPhone and are comfortable doing so, feel free. However, iPhone hackers will need to create their own scaffolding code and are subject to the same constraints: in terms of visual output, the entire screen must display a single color at a time.

You can download the scaffolding code from:

Deliverables. There are two primary deliverables:

  1. Design sketches in your Idea Log - Bring to class Tuesday, January 18th and e-mail a picture before 7am on Tuesday, January 18
    In your Idea Log, describe 2-3 examples of types of information that people record about themselves, or may find useful to record about themselves. Describe why people record this information, or how the information may be useful. Also, write down 1-2 examples of specific online services where users record or communicate information about themselves. Then, sketch 2 ideas for different ambient displays, at least one of which gives information about the user (rather than the environment). Sketch varied design approaches for what information to use, what sensors to include, how sensed data will be processed, and how the screen display will be varied in response. Include within your sketches your envisioned users and their context of use: where, when, and why would people want to use your ambient display? Take a picture of your idea log and e-mail it to cs247@cs before 7am on January 18.

  2. Your ambient display application - Due Thursday January 20 at 12:30pm.
    Turn in a zip archive of your development workspace, including all source code. Email the archive (or a hyperlink thereto) to cs247@cs.stanford.edu. In addition, please make a short demo video (no more than 2 minutes long) showcasing your working application deployed on a mobile phone. Upload the video to YouTube and send us a URL in your submission email.

You must work in groups of two for this assignment. Please find a partner that you would also like to work with for the final project.

Please feel free to e-mail us at cs247@cs.stanford.edu if you have any questions.