Skip to content
Computer Graphics Course
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
shared @ f72ab43

Computer Graphics Course

Course material for an undergraduate level course in computer graphics

Course designed by Prof. Alec Jacobson, David I.W. Levin and Karan Singh from University of Toronto, with assistance from Yotam Gingold at GMU.

Prerequisites and dependencies

In general, the materials in this course assume that students should have already taken Linear Algebra and Calculus.

Students should have already taken Introduction to Computer Science and should be proficient in computer programming (in any language) and should feel comfortable programming in C++.

Some coding assignments make use of Eigen, an open-source linear algebra library; and libigl, an open-source geometry processing library. Each assigment is built using CMake.


The course is structured to run with fast paced weekly assignments in the following order:

  1. Introduction & Raster Images
  2. Ray Casting
  3. Ray Tracing
  4. Meshes
  5. Boundary Volume Hierarchy
  6. Shader Pipeline
  7. Kinematics

There is a slight dependence to these assignments:

Each topic has its own git repository. Inside each, there is a file contains background information necessary for understanding the topic's coding assignment.

The Introduction contains detailed information about compilation, file layout and assignment protocols.


The Book.

These assignments were prepared to closely follow:

Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Pete Shirley, et al. 2015.


The background materials link heavily to Wikipedia articles. Sometimes the wikipedia articles relating to computer graphics are less informative than they could be. Edit them!

Are you an instructor?

There are instructor repositories for all of the assignments above. If you're an instructor for a geometry processing course, send an email to for an invitation.

Corresponding solution/instructor (private) repos are located at:

  1. Pre test
  2. Introduction & Raster Images
  3. Ray Casting
  4. Ray Tracing
  5. Meshes
  6. Boundary Volume Hierarchy
  7. Shader Pipeline
  8. Kinematics
You can’t perform that action at this time.