Final Project

You must demo your final project results during the final exam period on Friday 6/15.

You must also submit a website detailing your project, results images, references, and software development process. This is due on Sunday 6/17.

Requirements

There are four components to this project.

  1. Implement an additional feature for your raytracer or any interesting graphics technique. Some reasonable ideas can be found below.
  2. Provide 2-3 .pov files of your own creation that show off your new feature (or are generally visually interesting)
  3. Create an HTML website that describes your project and shows some screenshots (and/or videos if appropriate)
  4. Demonstrate good software engineering principles in your raytracer

For that last bullet point you have two options:

Describe Existing Software Design

Describe an abstraction (e.g. set of functions or classes/interfaces) you used in implementing your ray tracer that was effective at organizing your code, allowing debugging, and/or promoting extensibility. Point out where this can be found in your raytracer code.

Refactor For Better Software Design

Refactor a messy part of your raytracer in a way that:

  1. Preserves functionality
  2. Reduces code redundancy
  3. Extracts functionality
  4. Improves testability

Any and all of those attributes are a plus. Anyone who writes unit tests using a unit testing framework (like Catch, my personal favorite) will score instant brownie points.

Documentation

I expect to see some reasonable documentation in your README.md of:

  1. What feature you chose and why
  2. What resources you used to research and implement the feature
  3. Explanation/description of your Software Design implementation

Past Projects & Ideas

Past final project directories:

Some general ideas: