CMSC 491A / 691A:
Real-time Graphics and Procedural Techniques
A major component of this course will be the execution of a term
project. The project will involve the development, experimentation
with, or evaluation of real-time and/or procedural graphics software.
Students may choose a project from a
list of suggested projects
or propose one of their own ideas.
Projects will generally be done by teams of 1 to 3 students. Projects
will naturally be expected to require an
effort proportional to the number of team members. All members of a project
team will receive the same grade on the project, except in extraordinary
circumstances. Students will be asked to rate the contribution of each
team member to each portion of the project.
For the software and hardware for the projects, students can use the
facilities in the GAVL graphics lab, any (UCS) Lab, or their own
computer. The GAVL has a number of SGIs plus a PC with a Nvidia
GeForce 2 board. For software, students can use software provided by
the instructor, start with OpenGL tools available on the web, use the
Stanford RTSL package or develop their own software.
Other packages are available on the WWW, often for free. Teams are encouraged
to investigate these options if they are not satisfied with the currently
Projects will be structured as a sequence of phases. Completion of one
phase is not required for initiation of the next. In many cases, it will
benefit you to be working on multiple phases at the same time. For instance,
you might be working on the implementation of an initial prototype concurrently
with searching and reviewing the relevant literature.
Describe your plans to meet these requirements in a proposal of approximately
2-4 pages. Give a five to ten minute summary of your proposal to the class.
Your proposal should describe:
the application, in order to motivate your project (a paragraph or so)
your approach to the problem. Include as much information about specific representations, user interface design, and code design as you can.
exactly what you will produce (ie, your deliverables). Describe the
capabilities of your project at each code release (alpha, beta, and final)
and at whatever intermediate points you choose.
planned extensions if time permits. Mark these clearly as extensions and prioritize them.
Review the literature describing other approaches to problems similar to
yours. Include a description of the problem that your project addresses.
Describe how the approach taken in related work is similar to and
different from yours. Include complete references for all papers cited.
Your literature review will become part of your
final paper. Your literature review should be approximately 1000 words.
Correct spelling and grammar count, so check them before you hand anything
Your initial implementation goal is to produce any visualization of your
data. Your representation and interaction techniques will not be nearly
as refined as you plan to make them, but you should be able to read in
a data set and produce an image showing some representation of the quantities
of interest. Submit an image (URL is fine) and short description (about a
page) of what the image shows and how it was produced.
By beta release, your project should be a complete prototype with
all of the functionality that you have proposed.
Your beta release should be accompanied by a short description of bugs
you plan to fix and enhancements you plan to make. The third phase of
the development effort will center on refinements of your prototype.
Schedule a demo and meeting with the course instructor in
order to present your beta release and discuss a revision plan.
Prepare and present a 20-30 minute presentation of your project. Your
presentation should be professional enough to give at a technical
conference (e.g. organized approach, prepared slides, a short demo or
video if appropriate). Invite your client to your presentation and/or
schedule a private demo.
Refine and enhance your prototype into a final release. You should attempt
to respond to all requests of your client and the course instructors. Your
final release should include:
all code produced
description of how the completed project corresponds to the proposal
a user's guide describing how to use your project
Write a 5000 word technical paper describing your project in the
style of an ACM SIGGRAPH Papers other
formats may be acceptable with pre-approval). Sections you should plan
to include are: abstract, introduction, related work (adapt your literature
review for this), implementation, results, future directions, and references.
Your paper should include figures and images as appropriate. A complete
draft of your paper, including figures and images, must be submitted
in advance of the final paper deadline. Your draft should be a complete
paper that is as strong and polished as you can make it. Aim for something
that you believe is ready for submission to a conference or journal. The
course instructor will serve as the reviewer for these papers and make
suggestions as to how they might be improved. You may submit earlier, not
necessarily complete, drafts of your paper if you would like feedback earlier
in the writing process.
Correct spelling and grammar count in all submitted work, so
check them before you hand anything in.
Each phase of the project has a due date. In this way, as in others, this
project mimics work in the real world. Phases may be turned in
up to one week after the due date with a 25% grade penalty. Phases
will not be accepted more than a week late.
|Phase || Due Date
|Proposal Ideas ||Sept. 13
|Proposal ||Sept. 25
|Literature Review ||Oct. 4
|Alpha Release ||Oct. 20
|Beta Release ||Nov. 15
|Paper Draft ||Dec. 1
|Presentation ||Dec. 8
|Final Release ||Dec. 11
|Paper ||Dec. 11
Contributions to Grade
Each phase of the project will make an individual contribution to your
grade. If a phase is missed, that portion of the grade will be a zero.
You should consider this a compelling reason to start your project early
and work steadily throughout the semester, rather than making a grand
push at the end of the semester.
|Phase || Percent of Final Grade
|Literature Review ||10
|Alpha Release ||5
|Beta Release ||15
|Final Release ||15
|Total for Project ||80