The purpose of the final project is to provide hand-on experience in designing, implementing, and evaluating a new visualization method, algorithm or tool. Projects will be carried out by a single person or a small team of tw. Projects can cover a wide variety of concrete visualization problems (see examples bellow) but should propose a novel, creative solution to this problem. The deliverable will be an implementation of the proposed solution and a 8-12 page paper written as a conference paper submission. Each group will be given the opportunity to present the final project to the class.
Prof. Hanrahan will provide feedback as to whether we think your idea is reasonable, and also try to offer some technical guidance, such as. additional papers you might be interested in reading.
Your implementation should be able to handle typical data sets for the problem at hand, and run at speed compatible with the intended use (for example interactive visualization should run at interactive frame rate). Developing algorithms that scale to large data sets is particularly challenging and interesting. However, the project is not a programming contest and mega-lines of code is seldom associated with a good project.
We are very flexible about the underlying implementation of your projects. You can start from scratch using OpenGL or any other graphics and windowing toolkit, use an available visualization toolkit (such as Vtk, or OpenInventor), extend a commercial application (such as AutoCAD, Excel...) or use fast prototyping tools (such as MacroMedia Director or Flash).
You will be expected to demo your implementation during the project presentation on a date TBD.
The final project report should take the shape of a 8-12 page paper written as a conference paper submission. It should present related work, a detail description of your visualization, and include a discussion of your design. Final paper are due on TBD.
The project are done by small groups, but each person will be graded individually. A good group project is a system consisting of a collection of well defined subsystems. Each subsystem should be the responsibility of one person and be clearly identified as their project. A good criteria for whether you should work in a group is whether the system as a whole is greater than the sum of its parts!