COMS W4167 Computer Animation
Fall 2015, Columbia University
TR 4:10pm-5:25PM, 503 Hamilton Hall
Instructor: Changxi Zheng
Important! You must have a CS (CLIC-lab account) to take this class. Apply for one today. You must have your own CS (CLIC-lab account) to take this class. You will not be able to submit assignments using another student's CS account. Do not delay in applying for your own CS (CLIC-lab) account. Do so now. We will not excuse a late homework on the basis that you delayed in applying for the CS account. Retain proof that you applied and paid for your account today. Here is an instruction of applying a CLIC account.
Pre-requisites: Conformable on programming in C++, Data structures (tree, queue, etc.), Multivariable calculus (partial derivative, gradient, Jacobian), Linear algebra (vector, matrix)
Staff
Yun Fei | (Ph.D. TA, yf2320@columbia.edu) |
Vaibhav Siva Vavilala | (CA, vsv2109@columbia.edu) |
(Tentative) Schedule
date | topic | reading | assignments | |
---|---|---|---|---|
8 | Sep | Introduction | ||
10 | Sep | Time integration: Explicit Euler | T1M1 released | |
15 | Sep | Time integration: Symplectic Euler | ||
17 | Sep | Forces | ||
22 | Sep | TBD | T1M2 released | |
24 | Sep | Time integration: Implicit Euler | ||
29 | Sep | Time integration: Implicit Euler | T1M3 released | |
1 | Oct | Collision detection & response | ||
6 | Oct | "Electron clouds | T2M1 released | |
8 | Oct | Continuous collision detection | ||
13 | Oct | Broad phase collision detection | T2M2 released | |
15 | Oct | Broad phase collision detection | ||
20 | Oct | Broad phase collision detection | T2M3 released | |
22 | Oct | Constrained mechanical systems | ||
27 | Oct | Rigid body kinematics | T3M1 released | |
29 | Oct | Rigid body kinematics | Baraff and Witkin's SIGGRAPH course notes | |
3 | Nov | --- University Holiday --- | T3M2 released | |
5 | Nov | Rigid body collisions | Numerical methods for linear complementarity problems | |
10 | Nov | Elasticity | Feynman lecture on Elasticity and Elastic Materials | T4M1 released |
12 | Nov | Elasticity | ||
17 | Nov | Control: Overview | T5M1 released | |
19 | Nov | Control: discussion of robot assignment | ||
24 | Nov | Fluids: advection and total derivative | T6M1 released | |
26 | Nov | --- University Holiday --- | ||
1 | Dec | Fluids: divergence free vector fields | T6M2 released | |
3 | Dec | Fluids: free surfaces | ||
8 | Dec | Advanced topic I | T7 (final project) released | |
10 | Dec | Advanced topic II |
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.
Milestone 1: Assignment specification, Source code. Deadline: Sep. 21st, 10:00PM.
Milestone 2: Assignment specification, Source code. Deadline: Sep. 28th, 10:00PM.
Milestone 3: Assignment specification, Source code. Deadline: Oct. 5th, 10:00PM.
Milestone 1: Assignment specification, Source code. Deadline: Oct. 14, 10:00PM.
Milestone 2: Assignment specification, Source code. Deadline: Oct. 21, 10:00PM.
Milestone 3: Assignment specification, Source code. Deadline: Oct. 28, 10:00PM.
Milestone 1: Assignment specification, Source code. Deadline: Nov. 5, 10:00PM.
Milestone 2: Assignment specification, Source code. Deadline: Nov. 12, 10:00PM.
Milestone 1: Assignment specification, Source code. Deadline: Nov. 19, 10:00PM.
Exams
There will be no exam in this course. But there will be weekly program assignments.
References
There is no required textbook. In case you need to refresh your Calculus and Linear Algebra background, here are some reference books:- Gilbert Strang's Calculus textbook
- A free linear algebra book online
- OpenGL reference page
- OpenGL "Red Book" --- *the* reference for OpenGL programming
- Nate Robbin's OpenGL "tutors" programs
- Anton's OpenGL 4 tutorials
About COMS W4167
Grading: We strive to maintain a fast, transparent and fair grading process:
- There will be weekly assignments called "milestones".
- You will submit the completed milestone every week.
- Each weekly milestone is assigned equal weight in determining the final grade for the class.
- If an assignment is submitted multiple times before the deadline, only the most recent submission will be graded.
- Milestones will be clustered into themes (this does not affect grading). There will be approximately 6 themes.
- There will be a final project.
Due dates: Weekly deadlines are due on the date and time indicated in the assignment handout, usually at 10:00PM of the day. They must be submitted electronically, 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. Rationale: Since weekly milestones build on each other, we must ensure that all students begin each week at an equal playing field. By enforcing a strict lateness policy, we will be able to post the solution to each milestone shortly after it is due, thereby enabling students to build on a solid foundation in the following week.
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.
Grace and Pardon policy: At the end of the semester, we will provide each student with this limited pardon: the two milestones with recorded lowest grade will receive double this grade. For example, a grade of zero remains zero, a grade of 50% becomes 100%, and should your most poorly graded milestone have a grade of 100%, it will be treated as 200%.
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
- A: 90% or higher
- B: 80% to 89%
- C: 70% to 79%
- D: 60% to 69%
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.