CS 315 Homework 8 - Final Project

Due Wed Dec 17 at 4:00pm

Overview

The last assignment of the semester will give you a chance to utilize the skills and concepts we've discussed throughout the semester, and to explore in more depth some of the topics we've only lightly touched on. For this assignment, you will be completing a project of your own choosing! Be creative!

This project should either:

  1. Apply topics from class is a new way (not previously covered by homeworks)
  2. Apply topics from class that have not been previously covered by homeworks
  3. Further explore a topic in computer graphics that has not been directly covered in class

Your project should be about the same "scope" as previous assignments (such as the Dancing Robot, Shaded Scene, or Raytracer).

In addition to your completed impementation, you will also need to include a two-page write-up detailing your project and discussing any new concepts or techniques you utilized.

Note that for this project you are welcome to work either individually or in pairs; since they have two people, pairs will be expected to create (slightly) more complex projects!

Objectives

Project Ideas

Below are number of ideas for appropriate projects. You are welcome to choose one of these, or come up with your own idea. Note that in either case, you must have your project approved by the professor (see the bottom of the section).

This is only a list of ideas I've come up with; other topics may also be acceptable--be sure and check with me!

Once you have chosen a project, you will need to get your choice approved by the professor before you begin. You should do this over email (in addition to any face-to-face check-in) so that there is a written record of what we discussed. You should do this by Monday, Dec 01 (end of the day), so that you have enough time to complete the project.

Extensions

It is possible to earn extra credit on this project (up to 25% of the project's worth) for an implementation with additional components and complexity. That is, you can mix-in an extra credit project into this homework. Check with me in advance to make sure the scoping is balanced out (and we're clear on what is part of the assignment and what is extra).

Submitting

BEFORE YOU SUBMIT: make sure your code is fully functional, but also documented and readable. Grading will be based almost entirely on functionality---I won't be able to find errors in your code, so if I can't run it, then you didn't complete it! But I will look over your code to explore your implementation, so please make sure that it is readable :)

In addition to your implemented project, you must also include a two-page write-up of your project. This write-up (similar to a README file) should do two things:

  1. Give a brief overview of your project. Explain what you did, how your program works, etc. Give me some context for your work.
  2. Include a overview and explanation of the concepts you used in your program, particularly any new concepts. For example, if you made an Interactive Virtual World, you should include an explanation of the forms of interactivity and the controls you implemented. If you wrote a Particle System, you should include an explanation of what that is!
    • This paper should basically summarize the concept, almost like a section of a textbook or an encyclopedia (that you wrote yourself, not cribbed from Wikipedia). Imagine that you are giving this project to a brand new graphics student as a demonstration of a concept--your write-up should explain the idea well enough for them to understand what your program is and how it works
    • Write as if you were teaching the concept to someone else! Give as detailed an explanation as you can. This write-up should demonstrate your understanding and mastery of the topics you utilized in your application.

Upload your project AND the write-up to the Hwk8 submission folder on vhedwig.

The project is due at 4pm on Wed, Dec 17. This is the start of our final exam period--during that period, you will be showing off your project to your classmates!

Grading

As this is an open-ended project, grading will be based on a rubric: