A portion of the grade for each assignment involving programming will be determined automatically by running batch tests on the submitted code and comparing to the correct solutions. The tests will not be known ahead of time, but they will be published after everyone has submitted their assignments, following a model similar to Top Coder. Failing those tests will impact the final score of the assignment, but partial credit may still be awarded.
Group Programming Assignments
There will be two large programming assignments: one for 3D rendering (a real-time ray tracing assignment) and one for 3D shape representations (polygon mesh processing). Each group assignment will have a mandatory set of tasks and an optional set of tasks, each with a different score, from which a total number of points must be reached. This will allow students to explore their interests beyond the basics of each assignment. Any extra points will go towards an exponentially decreasing amount of extra credit. The assignments will be done in groups of 2 or 3. Groups of 3 will be expected to complete a higher number of baseline points. Do not save these assignments for the last minute. Groups are given several weeks for each assignment, anticipating some possible hefty debugging, which will be facilitated by group discussions on Microsoft Teams. This also allows for more exploration and a better final product.
- Group Assignment 1: Real-Time Ray Tracing (120 Points)
- Group Assignment 2: Polygon Mesh Processing (100 Points)
Individual Mini Assignments
In addition to the larger group assignments which take a few weeks, there will also be a number of small individual assignments peppered throughout the course to keep everyone on the same page. They will often serve as warmups for harder tasks on the group assignments. These mini assignments are expected to take roughly one week each, and they will include a smaller amount of programming and/or some pen and paper (or LaTeX!) math.
Below are the list of mini assignments by unit (list evolving). Art contests will be held for the starred assignments.
- Geometric Primitives (44 Points)
- (*) Scene Graphs (20 Points)
Unit 2: 3D Rendering
- (*) Shaders and GLSL (30 Points)
Unit 3: 3D Shape Representations
- (*) Implicit Surfaces (25 Points)
Unit 4: 3D Animation
- Euler Angles And Gimbal Lock (20 Points)