Final Project


Code and Writeup Due: Thursday, May 2nd, 3:29 PM

Presentation Times: Thursday, May 2nd, 3:30 PM -- 6:30 PM

Overview

For your final project, you will work on a program that demonstrates an advanced computer graphics topic of your choice. Some suggestions are listed below, but you are also free to propose your own topic. You will implement the project, present a demo, and prepare a brief writeup describing the work you have done.

Reminder About Teams

Per the syllabus, you may work on this project in self-selected teams of up to two. If you work in a team, in addition to the code submission process described below, each team member must submit an individual Collaboration Report on Canvas (either as raw text in the submission system, or as an attached .txt or .md) with answers to the following questions:

  1. In your estimation, what percent of the work did each team member contribute?
  2. Did you pair-program, or did you split up the project into individual tasks? Which parts of the project did each team member work on? (3-4 sentences).

Starter Code

Since the final project is open-ended, there is no starter code. You may use any code you have written in previous projects as a starting point for the final project, and you may also use external libraries or codebases, if approved by the instructor in advance.

Submission Instructions

The final project has multiple components. The presentations will take place during the class final exam period; your attendance and participation at the final exam presentation is mandatory unless you've made alternate arrangements with me in advance. All other project materials (including the writeup, code, and any other artifacts such as videos or screen captures) must be submitted to canvas before the start of the final project presentations. Include a README in your submission explaining its contents. Late days may not be used on the final project; materials submitted after the final project presentations will not be graded.

(Important) Technical Details of Grading

The final project grade will be determined by your score on three components: the implementation itself, the presentation, and a written report.

Project Implementation (100 points)

Decide on a project to work on, and provide an implementation of the project. The project should highlight an advanced topic relating to computer graphics that was not covered in the previous assignments, and whose depth and complexity exceeds the previous assignments.

The following list of topics are ideas for potential projects that have the right scope. You can also pick your own topics to work on; if you do, you are strongly encouraged to discuss your plans for the final project with me before you begin working to make sure the scope and topic is appropriate and likely to receive full credit.

You must submit full source code for your project. In addition, you must submit gradeable artifacts that demonstrate the project’s key features; these artifacts might include

You are strongly encouraged to discuss with me or the TA, well in advanace, your plan for which research artifacts you will submit to ensure that they will be sufficient to allow grading of your final project.

Project Demo (50 points)

You will have a chance to present a demo of your finished project to the instructor and the class during the class's final exam slot. Details of the demo and its logistics will be announced closer to the project deadline.

Unless otherwise arranged with me in advance, attending the presentations is mandatory. (It should go without saying, but that means everyone's presentation, not just your own). Students who no-show or leave early forfeit the 50 points for the project demo component. If you have a conflict due to another final exam being scheduled at the same time, contact me to arrange alternate grading of your project demo.

Project Writeup (50 points)

Please prepare a report with details about the project you worked on. The report should be targeted at an audience that understands the basics of computer graphics (i.e., has sat in on the class lectures) but does not know the details of the specific algorithms and techniques you implemented. Briefly describe the goals of the project you worked on, and how the key algorithms and components work. Provide any mathematical derivations or equations needed to understand how your project's solution works.

In a second section, briefly describe how your implementation is engineered: give enough hints that the instructor and TA can figure out how your code works. Also describe any known bugs/limitations with your implementation.

The report should be submitted along with your code; it must be a PDF or Word file and each section should be at MOST one page long (so the total report will be a maximum of two pages long). You may include additional figures, videos, or references (see the section on project artifacts above) in your submission and these will not count against your report page limit.

Extra Credit (up to 30 points)

Particularly outstanding projects and presentations will be in competition for the "Lapin d'Or" prize, and 30 points of extra credit. There will also be some number of honorable mentions with smaller extra credit prize. You don't need to take any extra steps to be eligible for this extra credit -- other than showing off your work in the best possible light in your presentation/demo and writeup.

Extra Credit (10 points)

The university allows me to give 10 points of extra credit to any team whose members complete the online course instructor survey, and include a statement in their README affirming, on their honor, that they have submitted the survey. You do not need to include any screenshots of the eCIS systems to receive this credit.