Programming may be completed in any language and may use external libraries as long as they don't defeat the purpose of the assignment (and of course you must give credit for what you use). In general this means don't use someone else's code for algorithms that I teach in class---talk to me if you're not sure about a specific case.

Please read the standard note on plagiarism.

To hand in the animation you generate for an assignment, put it on the web and email me the URL.

To hand in the programming part of an assignment, tar and gzip the directory containing your source code etc. (but not output data, object files or executables!) and a file README explaining the contents and how to compile and run the code. Then email me the .tar.gz file as an attachment.

To hand in the written part of an assignment, either email it to me (preferably in plain text or PDF), give it to me in person, or slide it under my office door.

I understand it is sometimes difficult to turn in assignments on time due to unforeseen emergencies. If you have a good reason you can't turn something in on time, please contact me as soon as possible about it and we can work something out. Otherwise, there will be a 20% per day late penalty, starting when I come to my office in the morning after the due date.

Assignment 1: Time Integration

Download the assignment description and provided source code: cs533d-assignment1.tar.gz

In this assignment, you will implement and analyze a few time integration schemes. The primary goal is to help you get comfortable with thinking about and implementing time integration. Secondary goals include learning how to use LAPACK and RenderMan.

Assignment 2: Elasticity

Worth 15% of your final grade

Download the assignment: cs533d-assignment2.tar.gz.

In this assignment, you will implement and analyze some of the operations involved in interactive Finite Element simulation of elasticity. Note that the provided source code is incomplete---ideally (but I'm not expecting you to implement this) self-collisions would be handled for example.

Assignment 3+4: Rigid Bodies and Shallow Water

Worth 30% of your final grade

Download the assignment: cs533d-assignment4.tar.gz.

In this assignment, you will implement a simple shallow-water simulation. There are also some analysis questions on rigid bodies and shallow water.

Final Project

The project is worth 40%, and is due on the last lecture when you will present it to the class. If you are not able to be here then, your code and write-up will still be due then, but you will have to arrange an alternative time to make your presentation.

A project may be a significant extension of one of the assignments, but more likely will be on a new topic. You need to contact me early to get the topic of your final project approved. Here are some example topics:

More details to come...


Movies from cs533b in 2004.