Computer Science 598c
Advanced Topics in Computer Science: Immersive Computer Systems
General Information | Schedule
| Projects | Useful links
The following is a list of simple projects that could be used as the starting
point to think about your project. Please visit the toolkit
link created for COS 495 last semester to get an idea of the current
environment on the display wall. Also, you can read the software
architecture document to get a big picture about software architecture.
Projects (signed up)
Display-size aware web design / browser improvement (faculty: Ben, Kai;
students: Wilmot Kidd)
Normal web pages are designed for desktop displays. This project
is to figure out how to design web pages or browser modifications so that
web pages can be viewed by both the display wall and for desktop monitors.
High-bandwidth storage system (faculty: Kai; students: Han Chen, Jiannan
Build a striped user-level file server on top of NTFS and client DLLs
for NTFS for high-bandwidth file transfers between display wall nodes and
the file server on Myrinet.
New display monitor (faculty: Kai; students: Geliang Tong)
Improve the display monitor program and fix the invalid port problem
with NT 4.0 (may be this problem will disappear with NT 5.0?). Make
it usable tool for calibration.
Slide show making tool (faculty: Ben: students: Hagos Mehreteab)
Fast browser (faculty: Ben, Kai; students: Aaron Filner, Ryan
Add range selection functionality to a browser to select multiple links
and search them in parallel and place them in multiple frames on the display
Spatial sound application (faculty: Perry, Tom; students: Keith Mukai,
See http://www.cs.princeton.edu/~kdmukai/proj/proj.html as an example.
Demo time (faculty: Ben; students: Jerry, Wilmot Kidd, Ryan Martin,
Organize and develop public demonstrations of the display wall.
People tracking (faculty: Adam, Perry, Tom; students: Jie Chen)
Design the software to track the location(s) of people.
Voice input and speech recognition (faculty: Perry; students: Corrie
Elder, Jon Forsyth, George Tzanetakis )
Build microphone software and investigate ways to use commercial speech
recognition software to generate inputs.
Self-locating (faculty: Doug; students: Russel Blaine)
Figure out the camera location by itself by information and patterns
on display surfaces.
Quake chair (faculty: Perry; students: Tom Hammell)
Quake chair will be made into an input device communicating with the
display wall system.
- Public forum (faculty: Ben; students: Keith, Adam )
Projects (not signed up yet)
Wall Exploror (faculty: Adam; students: ?)
Build a tool to generate thumbnails for files in a directory and display
the thumbnails in a nice placement on the display wall. Users can
invoke the thumbnail by clicking on it. One can implement such a
program by extending a browser.
Optical blending (faculty: Kai; students: Yuqun, ?)
Use opague objects to create blending by reducing aperture.
Camera-based calibration (faculty: Adam, Doug; students: Yuqun, ?)
Use camera feedbacks to calibrate alignment and color balance of multiple
Collaborative space (faculty: Kai; students: ?)
Design the framework of managing the display space to allow multiple
applications and multiple users to share the same display space.
The software system will be a toolkit for developing collaborative applications
on a network of computers and allows multiple kinds of inputs.
Web site for the project (faculty: Ben, Kai; students: ?)
Design the web site for the project including ideas, people, publications,
software manuals, internal toolkit, and demos.
Interactive application (faculty: Perry; students: ?)
Directly put information into the application that runs actively on
the display wall. For example, use a camera or other devices to take
the content of a piece of paper onto the wall. One may be able to
accomplish by extending existing Window's applications such as powerpoint,
browser, and so on.
Touch screen (faculty: Adam; students: ?)
Use the hand tracking mechanism below to cause effects on images displayed
on the wall, when a user touches the screen.
Educational and scientific information (faculty: Ben; students: ?)
Develop ways to use large displays for day-to-day teaching, learning
and research. For example, gather data and visual images from Geosciences,
Astrophysics, Biology, Economics, and so on, and create appropriate displays
Multiple-user input mechanism (faculty: Perry, Tom; students:
Design a software architecture for multiple simultatenous inputs in
a collaborative environments. It should contain an API for application
development and should be extensible for adding new input methods.
Integrated input API (faculty: Perry, Tom; students: ?)
Redesign the current input mechanisms to use multiple kinds of devices
Portable workspace (faculty: Ben, Perry; students: ? )
Design an operator stand with wireless keyboard, sketch tablet, etc
for artists to create content.
Hand tracking (faculty: Adam; students: ?)
Improve the current hand-tracking software and calibrate it for the
display wall as a usable input method for all programs.
Wand tracking (faculty: Adam; students: ?)
Improve the current wand-tracking system. One possibility is
to invent a novel selection mechanism. Another possibility is to
use more than 2 cameras.
3-D Gyroscope mouse (faculty: Kai, Perry; students: ?)
Develop both hardware and software. Think about whether there
are ways to create movement resistance.
Button box (faculty: Doug; students: ?)
Use voice-recognition input mechanism to invoke a command button box
on the screen to accept hand commands
Multicast extension to VMMC-2 (faculty: Kai; students: ?)
This will speedup operations for many applications such as synchronization
and multi-node data transfers.
High-level protocols for collaborative space (faculty: Kai, Tom; students: )
3-D protocols for collaborative space (faculty: Kai, Tom; students: ?)
2-D protocols for collaborative space (faculty: Kai, Tom; students: ?)
VRML 2.0 (full functionality)
Other high-level primitives
Pixel-level protocols for collaborative space (faculty: Kai, Tom; students:
DirectDraw or the like
Other 2-D primitives
Video (NTSC, DVD)
MPEG-2 (low resolution and HDTV)