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.