CS184 Assignment 3

HW3 Icon: Cornell Box with a Bunny

You will implement the core routines of a physically-based renderer using a pathtracing algorithm. This assignment reinforces many of the ideas covered in class recently, including ray-scene intersection, acceleration structures, and physically based lighting and materials. By the time you are done, you’ll be able to generate some realistic pictures (given enough patience and CPU time). You will also have the chance to extend the assignment in many technically challenging and intellectually stimulating directions.

Overview

This homework is much longer than the other homeworks. Rendering images for your write-up will take several hours at the minimum, so start early! Make sure you read the Deliverables article ahead of time.

In addition, you may want to render using the instructional machines. Instructions for how to do this are in the how to build CS184/284A assignments article.

Logistics

Starter Code

Please accept the GitHub Classroom invitation to gain access to the starter code.

Deliverables

Your submission for this homework involves a checkpoint quiz, final code submission, and a final write-up. If you worked with a partner, remember to add your partner to all of your Gradescope submissions!


Deadlines

Task Due
Checkpoint Quiz Friday, March 7, 2025
Final Code Submission Tuesday, March 18, 2025
Final Write-Up Tuesday, March 18, 2025

All assignments are due at 11:59 PM. You have a total of 8 late days to use on assignments throughout the entire semester, but you do not have late days for checkpoint quizzes. Assignments which are turned in after 11:59PM will use one of your late days – there are no late minutes or late hours. Both your code and write-up need to be turned in for our submission to be complete.

Partners

You can optionally work with a partner on this homework. If you work with a partner, both of you should join the same team on Github Classroom. You should also produce 1 write-up and 1 gradescope submission with your partner added to the team for both the code and the write-up submission. As a reminder, homeworks consists of many moving parts that work together so it’s important that you both work together on all parts.

Checkpoint Quiz

There is a Gradescope Checkpoint quiz for this homework, due Friday, March 7, 2025. This short quiz is intended to help you get started on Homework 3. The content necessary for answering all questions can be found on the Homework 3 spec or in lecture material. If you are working with a partner, both partners must submit the quiz!

The content necessary for answering all questions can be found on the homework spec or in lecture material. You will receive 5 “buffer points” for completing the quiz only if you submit a valid screenshot and answer at least 4 out of 7 questions correctly. No buffer points will be given if you did not meet these requirements.

These 5 buffer points will be added to your Homework 3 grade, capped at increasing your score to 100. For example, if you earned 96 points on the base homework and 2 points of extra credit, the 5 buffer points will bring your score up to 100, and the extra credit will bring your total score to 102.

You may change your answers after submitting, up until the deadline. No slip days may be used on checkpoint quizzes.

Homework Parties

We will have 5 homework parties:

Date Time Location
Wed 3/12 5PM - 7PM Soda 326
Fri 3/14 10AM - 12PM Soda 310
Mon 3/17 11AM - 1PM Cory 299
Mon 3/17 5PM - 7PM Soda 380
Tue 3/18 5PM - 7PM Soda 430 (Woz Lounge)

See the course calendar for more information.

Academic Honesty

Please do not post code to a public GitHub repository, even after the class is finished, since these assignments will be reused both here and at other universities in the future.

The homeworks are to be completed individually, unless you are working with a partner. You are welcome to discuss the various parts of the assignments with your classmates, but you must implement the algorithms yourself. You are free to share all code with your partner.