This course is intended to provide a graduate-level introduction to modern computer graphics. We will cover some of the basic background of 3D computer graphics in the areas of geometry, physical simulation and rendering. The course is intended to bring incoming graduate students or advanced undergraduates up to the research frontier, and prepare them for further work in the field. As such, at least half the material in the course will go over topics of current research interest, such as the physical simulation and coupling of solids and fluids, and precomputation-based methods for real-time rendering.
Below are some example computer-generated images, of the types of
simulation, geometry, rendering and imaging topics we will be studying.
![]() |
![]() |
![]() |
![]() |
![]() |
The list of students taking the course with photos is here. Thank you for sending your information.
Please get on the mailing list for the class, by sending mail to sympa@lists.eecs.berkeley.edu with subject subscribe cs294-obrien
We offer a full plate of computer graphics courses. I hope you will be enthusiastic about, and enrol in these offerings. Besides the undergraduate CS 184, there are a host of graduate classes in geometry, visualization, rendering and so on. More classes will be added in future years, initially as CS 294, then transitioning to permanent numbers. We intend this course (CS294-13, eventually to be renumbered CS 283) to be the entry-level class for the other special topics courses.
CS 294 is intended to be a regular lecture course, but adapted for advanced undergraduates and incoming PhD students. A syllabus/schedule is noted below. Grading will be based on 4 mainly programming projects, some of which can be done in groups of two (you are responsible in that case for finding partners, and also to ensure each person does their fair share; you can also choose to work individually if you decide). You are also welcome to propose your own research or implementation project in lieu of one or more of the assignments, subject to instructor approval. In this way self-directed students may pursue topics of special interest to them. Students are also welcome to take the class pass/fail, and should speak to the instructors in regards to requirements in this case. This may be a good option for more advanced PhD students seeking to learn topics outside their immediate research area. Auditors, who simply want to sit in on the course are also welcome; however, we prefer if you sign up for the course pass/fail instead.
The lectures will be Mondays and Wednesdays from 1-2:30pm in Soda Hall, room 310. The first class will be on Wednesday, Aug 26. There is no TA for this class, so you are welcome to directly e-mail the instructors re issues. Unless questions are specific, it may be helpful to e-mail both instructors, so they have a record. We may also try to set up a newsgroup for the class. Please feel free to also contact one of the instructors regarding talking about the class material. Since this is an advanced course, we intend these discussions to be more informal, and not need the formal scope of office hours.
The course will be graded on the basis of four assignments, that primarily involve programming systems for rendering and simulation. These assignments can be done individually or in groups of two. If in a group, both partners will receive the same grade. You may have different partners for different assignments. The assignments are due on the dates listed, and will usually be submitted by creating a web site and sending the link to the instructors. The website should not be modified after the due date.
Since the time provided is 3-4 weeks for each assignment, we will not usually allow extensions unless you ask beforehand with a good reason. We prefer you instead turn in what you have as of the deadline. Since this is an advanced graduate class, we expect you to be organized, working through the semester constantly.
You are also free (and encouraged) to speak to the instructors about substituting a research or implementation project for one or more of the assignments. In general, you will be asked to provide a brief written plan of work, and the instructor can then approve that as a substitute for the assignment. This allows you to focus more clearly on topics of interest.
The four assignments will be available below. They are all fairly substantial (and we hope instructive) so you are encouraged to start early.
At this time, we make the first two assignments available (for the first half of the course on rendering). The last two assignments on geometry and animation/simulation will be available next month.
Assignment 1 on Monte Carlo rendering is available as a PDF file here. The due date is Oct 7, by 11:59pm.
For those students who have no previous experience in rendering/raytracing, an initial raytracer assignment, that is a prelude to assignment 1 (and counts for 30% of the grade for assignment 1) is available here. It should be turned in along with assignment 1, but we recommend you complete it by September 18. Most students will not need to do this assignment, instead starting with their existing raytracing code, but may want to take a brief look. An OpenGL previewer (that may be of interest to everyone) is available as a zip file (that should be unzipped in a separate directory) here.
Assignment 2 on Real-Time or Image-Based rendering is available as a PDF file here. The due date is Oct 28, by 11:59pm.
For those interested in the image-based (as opposed to real-time) rendering part above, an alternative practical project is suggested by the video and image processing laboratory. If you wish to do this project, please talk to the instructor beforehand, as well as Profs. Zakhor and Matt Carlberg.
Assignment 3 on Subdivision Surfaces is available as a PDF file here. The due date is Nov 23, by 11:00pm. (The due date is set to be before thanksgiving to allow you to enjoy the holiday).
Assignment 4 is on writing any physical simulation system (e.g. cloth). No formal PDF description available, considerable flexibility in choice of simulation system.
Topics to be covered include, but are not limited to
Date |
Topic |
Due | Related Reading | Lecture Notes |
Aug 26 | Introduction and Overview | Biog Info (by Thu) | Ravi PPT   Ravi PDF   James Keynote   James PDF | |
Aug 31 | Intro to basic ray tracing | PPT   PDF     Scribe: Jin Kwon | ||
Sep 2 | Illumination and Reflection | Cohen-Wallace Ch 2    Torrance-Sparrow  Cook-Torrance | PPT   PDF     Scribe: Albert Liu | |
Sep 9 | Global Illumination and Rendering Equation | Kajiya paper | PPT   PDF     Scribe: Daniel Ritchie | |
Sep 14 | Monte Carlo Integration | Veach Thesis (see Ch. 2)       Stanford Course (Part 2) | PPT   PDF     Scribe: Fu-Chung Huang | |
Sep 16 | Monte Carlo Path Tracing | Siggraph Course (Chs. 2,6)     Cook paper | PPT   PDF     Scribe: Mason Smith | |
Sep 21 | Recent advances in offline rendering | PPT    PDF      Scribe: Nicholas Kong | ||
Sep 23 | Real-Time Rendering | Heidrich    Cabral    Irr. Env.    Kilgard    Shadows | PPT   PDF    Scribe: Terrence Zhao | |
Sep 28 | Real-Time Rendering 2 | Continue Shadow/Env Maps     Scribe: Aaron Hong | ||
Sep 30 | Image-Based Rendering and Light Fields | Link to SIGGRAPH Course Notes | PPT   PDF     Scribe: Kevin Lim | |
Oct 5 | Frequency Analysis and Signal Processing | PPT   PDF | ||
Oct 7 | Precomputation-Based Rendering | Homework 1 | Sloan 02   Ng 03   Ng 04   PRT Survey | PPT   PDF     Scribe: James O'Shea |
Oct 12 | Representations of Visual Appearance | PPT   PDF    Scribe: Eric Biggs | ||
Oct 14 | Imaging and Computational Photography | SIGGRAPH Courses | PPT   PDF     Scribe: Yiding Jia | |
Oct 19 | Differential Geometry Basics 1 | PDF    Keynote | ||
Oct 21 | Differential Geometry Basics 2 | Continued differential geometry | ||
Oct 26 | Texture Synthesis (Maneesh) | PDF     Scribe: Wesley Willett | ||
Oct 28 | HDR and Bilateral Filters (Maneesh) | Homework 2 | ||
Nov 2 | Splines | PDF    Keynote | ||
Nov 4 | Subdivision Surfaces | See Lecture 17 above. | ||
Nov 9 | Rotations and Inverse Kinematics | PDF    | ||
Nov 11 | Holiday (No lecture) | |||
Nov 16 | Motion Capture | |||
Nov 18 | Motion Capture | See above | ||
Nov 23 | Physical Simulation | Homework 3 | ||
Nov 25 | Mass-Spring Systems | See above | ||
Nov 30 | Rigid Body Dynamics | See above | ||
Dec 2 | Fracture | See above |