COMS W4162 Advanced Computer Graphics

Spring 2016, Columbia University

MW 2:40pm-3:55PM, 486 Computer Science Building

Instructor: Changxi Zheng

Pre-requisites: Conformable on programming in C++ and Java, Data structures (tree, queue, etc.), Multivariable calculus (partial derivative, gradient, Jacobian), Linear algebra (vector, matrix)

In addition, we expect that you have some background on computer graphics. In other words, we expect that you have taken either computer graphics (COMS W4160) or computer animation (COMS W4167) or equivalent course.


Dingzeyu Li (Ph.D. TA,

Office Hours

(Tentative) Schedule

date topic reading assignments
25Jan Review of radiometry Ray-box intersection, Rendering concepts  
27Jan Monte Carlo integration [Kajiya 86], intro. to random variables Paper list available
1Feb Importance sampling Multiple importance sampling  
3Feb Volume Scattering notes by Steve Marschner PA-1 Released
8Feb Paper discussion (rendering)    
10Feb Texture synthesis and vector graphics    
15Feb Numerical solves of PDE    
17Feb Image processing Poisson Image Editing  
22Feb Physics-based deformable simulation    
24Feb Paper discussion (rendering)    
29Feb Intro. of continuum mechanics    
2Mar Intro. of continuum mechanics    
7Mar Reduced models    
9Mar Reduced models    
14Mar --- spring break ---    
16Mar --- spring break ---    
21Mar Reduced models for animation control Wiggly Splines  
23Mar Paper discussion (deformables)    
28Mar Sound synthesis [O'Brien et al. 2002]  
30Mar Sound synthesis    
4Apr Paper discussion (deformables)    
6Apr Paper discussion (sound)    
11Apr Sound synthesis    
13Apr Fluids SPH Survey, SPH Basics  
18Apr Fluids Basics of Vortex Method  
20Apr Paper discussion (fluids)    
25Apr Character skinning Skinning  
27Apr Mesh Animation    
2May Paper discussion (rigging)    

Projects and Work Load

Throughout this semester, you will have weekly programming assignments organized in a series of themes (see below). For each assignment, we will provide starter code in C++. For the final project, you will propose a project which involves computer graphics techniques that you learn in this class. All projects should be submitted electronically to courseworks and will be graded on CLIC machines.

Please log into the Courseworks for the details and starter code.

Due date: Feb 24, 10:00PM, Wednesday

Please log into the Courseworks for the details and starter code.


There will be no exam in this course. But there will be weekly program assignments.


There is no required textbook. In case you need to refresh your Calculus and Linear Algebra background, here are some reference books:

We don't expect you to know OpenGL; our starter code handles all the OpenGL rendering of objects for you. So you won't learn OpenGL in this class. If you want to create your own scences with advanced OpenGL features, here are some references:

About COMS W4162

Workload and Grading: In this course, we will have small and vibrant classes. We expect everyone to participate in the classes actively. Therefore, paper presentations and the involvement in the discussion are important parts of your final grading. The workload of the class consists of the following part:

Your final numerical grade will be a weighted average of all the parts above. In particular, your short presentation will account for 5% of your final grade; the long presentation will account for 20%; the paper summaries will account for 20%; the programming assignment will account for 30%; the final project will account for 15%; and finally the participation of the discussion will account for 10%.

Due dates: Programming assignments and paper summaries are due on the date and time indicated in the assignment handout, usually at 10:00PM of the day. They must be submitted electronically on courseworks, as detailed in the assignment.

Lateness policy: Late submissions lose 1% per six minutes of lateness. For example: a submission that is two hours late is penalized 20%, and a submission that is ten hours late receives no credit. This is the policy that we applied for other computer graphics related courses (e.g., COMS4160 and COMS4167). So we keep the consistency here.
Plan ahead. The only exception to this policy is a documented medical emergency. In order to ensure fair grading, exceptions are not possible for holidays, sport meets, theater appearances, indigestion, etc. Plan ahead.

Curving and Final Grade: This class will *not* be curved down. A student achieving a certain percentage grade has a guaranteed minimum letter grade. We reserve the right to curve all grades uniformly upward (improving your letter grade) subject to our discretion. The minimum grade distribution for this class will be given by evaluating the student's numerical grade, after adjusting for lateness, pardon, and extra credit, following the table

with modifiers (+ and -) left to the instructor's discretion subject to considerations such as relative ranking to other students, quality of submitted code, uniformity of quality across assignments.

Questions, help, discussion: The instructors and TAs are available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (link also available at the top of this page). Please sign up for the Piazza page. When posting questions, please keep them organized by posting them to specific folders.

You are welcome (encouraged, even) to discuss the homeworks and projects among yourselves in general terms. But when you start writing up the homeworks or implementing the projects, you need to be working alone. In particular, it is never permitted for you to see another student's homework writeup or other's program code, and certainly never tolerated to copy parts of one person's writeup, code, or results into another's, even if the general solution was worked out together.

You're also encouraged to read any published sources—books, articles, public web sites—that help you learn. If you find an idea in one of these sources that becomes part of your solution (or even gives you the whole solution), that's fine, but it is imperative that you explicitly cite the source on your homework or state it in a comment of your code. Otherwise you would be falsely claiming to have invented the idea yourself.

Academic integrity: We expect complete integrity from everyone. We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it. it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see Columbia Engineering's Code of Academic Integrity.

Open Door Policy: We hope the course to run smoothly and enjoyably. Feel free to let us know if you find the course helpful and interesting. Especially, let us know sooner about the reverse. Drop by our office hours, leave us a note, or send us an email.