COMS 6181 Projects

All projects should consist of teams of three students. The topics below are suggestions; I'd be happy to discuss other suitable topics that match one or more themes of the class.

Teams need to submit a project plan.

iPhone/Android rich presence
Using the iPhone, Android or other smartphone platforms, build a system that reports the value of its sensors, including local time, geospatial location, acceleration, speed, light level, sound level and user activity, via "rich presence". Build a web interface for a SIMPLE rich presence server. Try to detect common activities, such as walking, by the output of the accelerometer.
RFID name badge
For large conferences, identifying the speaker can be difficult. Using creditcard-sized RFID tokens and a Gumstix embedded Linux system (or a Windows/MacOS laptop), build a system that recognizes the RFID card, e.g., attached to the name badge, and transmits the identifier via an 802.11 LAN to a display system that consults an (LDAP?) database to map identifiers to names and other details.
Disruption-tolerant networks and applications
Disruption-tolerant applications adjust their behavior when network connectivity to the Internet is temporarily unavailable or very expensive. As part of the project, build a web proxy that downloads files for offline reading (similar to ReadItLater), but also exchanges pages with other nearby users via BlueTooth or WiFi.
What kind of Internet am I on?
Many parts of the Internet, whether in homes or hotels, businesses or buses, are no longer transparent and only offer a limited subset of capabilities, from delivering unicast packets only to restricting the ports that applications are allowed to use. A draft prepared for Internet2 describes some of the distinctions. The project should implement an easy-to-use tool, using Java or Flash, that detects the capabilities of the current Internet connection.
Automatic speaker recognition
During phone conferences, it is often difficult to tell who is speaking, particularly if the group meets only infrequently. Using existing speaker recognition technology, build a tool that, given a list of names and speech samples, tries to determine the most likely speaker, sending the name by IM to the participants and/or displaying it on a web page.
Web 2.0 conferencing
Using Ajax and similar technologies, create a simple web conferencing application that allows a group to collaborate by text chat, file exchange, floor control and voting, possibly supplementing a phone conference.
Echo detection for VoIP
Detect whether a voice channel has echo, so that a network management application can monitor the quality of a call or conference.
Acoustic user location
Using two or more microphones, determine the approximate location of a speaker in a room. (You may need to acquire additional hardware for this project; please discuss possibilities with the instructor.)
(PowerPoint) slide capture
Using a VGA-to-USB converter, capture video projector output. Using flash video, RTSP or JPEG refreshing web pages, allow multiple users to watch the slide presentation at once. Allow recording. This tool would be used to allow remote users to participate in a lecture. Add-on: Blend in video capture, so that the speaker is overlaid on the captured slide.
Remote class/conference participation
Using a USB display or similar device (robot hand?), build a system that can allow a user to participate remotely in a class or discussion. Remote users would indicate their desire to speak via IM and/or a web page, lighting up the display as needed. Consider what other functions are needed to make remote participation in a group setting work well. Test the system and report on the user experience.