CS 480 - Simulations in Computer Graphics

Meeting time: 11:30-1:00pm
Room 107 Chapman Building
University of Alaska Fairbanks

3.0 Credits, Spring 2009
    CS 381 (or substantial OpenGL experience)
    Math 202: Calculus III (or substantial mathematical experience)

Instructor: Dr. Orion Lawlor
ffosl@uaf.edu, 474-7678
Office: 201E Chapman
Hours: 2-3 TR (or whenever!)

Course Website:
Graphics Machines: Chapman lab, via NetRun, etc

ADA Compliance: Will work with Office of Disabilities Services (203 WHIT, 474-7043) to provide reasonable accomodation to students with disabilities.

Course Goals and Requirements

By the end of the course, you will be able to simulate the physical world using particles, grids, and unstructured meshes. To do this, you must have a clear understanding of C++ programming, how to use both simple and programmable OpenGL, basic physics, 3D vectors and vector operations, and transformation matrices.

Student Resources

Academic Help: Google, Rasmuson Library, Academic Advising Center (509 Gruening, 474-6396), Math Lab (Chapman Room 305), English Writing Center (801 Gruening Bldg, 478-5246).


You'll get better grades by attending class, doing homework, and understanding the material than by cramming before the exam. Your overall grade comes from:

  1. HW: Homeworks and machine problems, to be distributed through the semester.

  2. PROJ: two substantial graphics projects, together with a short presentation of your results. Example projects: read a paper and implement a similar technique, implement a known physics simulation, apply an existing simulator to a new domain, or improve the performance of a slow simulator.

  3. MT: Midterm Exam.

  4. FINAL: Final Exam (comprehensive).

The final score is then calculated as:

TOTAL = 20% HW + 30% PROJ + 25% MT + 25% FINAL

This percentage score is transformed into a plus-minus letter grade via these cutoffs: A >= 93%; A- 90%; B+ 87%; B 83%; B- 80%; C+ 77%; C 70%; D+ 67%; D 63%; D- 60%; F. The grades “C-”, “F+”, and “F-” will not be given. “A+” is reserved for truly extraordinary work. At my discretion, I may round your grade up if it is very close to a grading boundary. Students taking the graduate course will have extra exam questions, and be expected to complete more complex projects.

Individual assignments and tests
may (rarely) be curved. Homeworks are normally due at midnight on the day they are due. Late homeworks will receive no credit. At my discretion, I may allow late assignments without penalty when due to circumstances beyond your control. Projects that are up to two weeks late may be accepted at a 50% grade penalty (e.g., on-time grade: 86%; late grade: 43%). Everything you turn in must be your own work--violations of the UAF Honor code will result in a minimum penalty equal to THAT ENTIRE SECTION OF YOUR GRADE (e.g., one plagiarized homework question will negate an otherwise perfect grade on all homeworks). However, even substantial reuse of other people's work is fine (and not plagiarism) if it is clearly cited; you'll be graded on what you've added to others' work. Group projects (NOT homeworks) are acceptable if you clearly label who did what work; but I do expect a two-person group project to represent twice as much work as a one-person project. Department policy does not allow tests to be taken early; but in extraordinary circumstances may be taken late.


Last day to drop: February 6.  Midterm exam: 11:30am on Thursday, March 5.  Spring break: March 7-15. Last day to withdraw: March 27. Last day of class: Thursday, April 30. Final exam: 10:15am on Saturday, May 9.

Course Outline (Tentative)

Before Spring Break:

  • Particles (2 weeks)

    • Basic OpenGL. High-performance rendering, framebuffer and vertex buffer objects, programmable shading via GLSL, point sprites

    • From Newton's Laws to computer code: discretizing partial differential equations, time integration, discretization error, stability

    • Forces: gravity, friction, user interface

    • Boundary conditions: bounding particles with planes, spheres, cylinders

  • 2D Grids (3 weeks)

  • Project 1 Presentations

  • Midterm exam

After Spring Break:

  • 3D Grids (3 weeks)

    • OpenGL 3D texturing review

    • 3D fluid simulation: Navier-Stokes, Stam's Stable Fluids

    • 3D light simulation (new research!)

    • Speeding up slow codes: smaller storage types, optimizing GPU arithmetic, multigrid

  • FEM & unstructured geometry (2 weeks)

    • OpenGL vertex & element buffer objects

    • Stress/strain, elastic & plastic behavior

    • Element orders & shape functions

    • 2D, plate, and volume elements

    • Unstructured boundary conditions

    • Failure & fracture simulations

  • Project 2 Presentations

  • Final exam