Special Topics: Computer Graphics

60 Fifth Ave 150
Tuesdays and Thursdays

There are many courses that can teach you how to use commercial computer graphics packages and APIs. This course, in contrast, will teach you how to build 3D computer graphics from the ground up. This will include 3D modeling, animation, and rendering. At the end of the semester you will have built your own complete working real-time 3D computer graphics systems that runs in web browsers.

What you should already know:

If you are already familiar with JavaScript, that's great. If you are already familiar with Java, C++ or any similar high level language, you should not have any trouble picking up enough JavaScript to do this course.

Since this is a special topics course, I will assume that you are already an experienced programmer. If you are not, then I do not suggest you take this course, as there will be weekly programming assignments, and you would not be able to keep up.

Computer graphics uses a lot of matrix and vector math and some differential calculus. During the semester we will go over all of the math that you will need.


Class notes (so make sure you come to class!), will be posted on-line after each lecture.

A generally useful (but not required) reference: Computer Graphics: Principles and Practice (3rd Edition)

Office hours (at 60 Fifth Ave, third floor):

Mondays 3pm-4pm (C DeFanti, room 310)
Tuesdays 4pm-5pm (K Perlin, room 344)
Thursdays 10am-11am (S Herscher, room 342)
Setting up your class account:

Follow these instructions.

Mailing list:


NOTE: You do not need to email your homework to the grader each week. You just need to post your homework to the website that you use for this course.

Rough outline of topics we will cover (this may change):