CS839 Topics in Computing : Physics-Based Modeling and Simulation

Fall Semester 2019

Course outline

This course is a review of current trends and technologies for physics based modeling and simulation, with applications to visual effects, interactive virtual environments and computer games. Topics to be covered in class include:

In discussing these topics, particular emphasis will be placed on the efficiency, robustness and stability of numerical algorithms used in simulation tasks, and on the software engineering practices that facilitate scalability and parallelization. Lectures will straddle the following three threads of emphasis: Theory discussion will cover the mathematical foundations of modeling and simulation techniques. Implementation aspects will include software engineering and parallel programming considerations. The discussion of Tools will address third-party APIs and data structures that facilitate development of simulation and visualization codes.

General information

Lecture meeting time : Mon/Wed/Fri 4:00pm - 5:15pm (on average, twice a week; exact schedule to be posted by start of instruction)
Lecture location : Computer Sciences 1257

Instructor : Eftychios Sifakis
Office : Computer Sciences building, Room 6387
Email : sifakis <at> cs <dot> wisc <dot> edu
Office hours : Mon/Wed/Fri 1:30pm - 2:15pm on days that class meets or by appointment

Prerequisites : No formal requirements. Nevertheless, a number of numerical techniques will be employed in the context of various topics; the theoretical details of these methods will be summarily covered in class. A certain degree of familiarity with calculus will be desired, although not essential. Competency in linear algebra is desired.

Schedule of lectures

DATE Lecture Information Assignments & Reading Materials

Wednesday, September 4th

Introduction to Physics Based Modeling
Discussion of course structure and logistics

Lecture Notes [PDF]

Friday, September 6th

Solid geometry representations. Dynamic Meshes. Pixar USD

Lecture Notes [PDF]

Monday, September 9th

The Pixar USD C-Language API and data format

Wednesday, September 11th

Introduction To Time Integration. Finite Element Methods Part 1

Lecture Notes [PDF][PDF]

Friday, September 13th


Monday, September 16th

Finite Element Methods: Part 2

Wednesday, September 18th

Implementation of Finite Element Methods.

Friday, September 20th

Implementation of Finite Element Methods (con't). Stability

Lecture Notes [PDF]

Monday, September 23rd

Implicit and Quasistatic Methods: Part 1

Lecture Notes [PDF]

Wednesday, September 25th

Implicit and Quasistatic Methods: Part 2

Friday, September 27th


Monday, September 30th

Practical Implementation of Backward Euler - Conjugate Gradients

Lecture Notes [PDF]

Wednesday, October 2nd

Nonlinear elasticity, Part I. Robust handling of inversion

Lecture Notes [PDF]

Friday, October 4th

Nonlinear elasticity, Part I. Robust handling of inversion

Lecture Notes [PDF]

Monday, October 7th

Nonlinear elasticity, Part I. Force differentials.

Lecture Notes [PDF]

Wednesday, October 9th

Nonlinear elasticity, Part II. Definiteness Correction

Lecture Notes [PDF]

Monday, October 7th

Nonlinear elasticity, Part III. Refactoring and accelerations

Monday, October 14th


Monday, October 21st