Physical Simulation Programming

cgSource Logo

Curated list by Seth Holladay

This list is built to help those wanting to learn methods for programming simulation algorithms, leading into jobs or research areas making physical simulation tools.
 
Many CG effects are created with the help of physically-based simulation programs. There are several simulation methods, depending on the type of effect desired. For example, fluid simulations and cloth simulations are important ones in Computer Graphics and good places to start for understanding how simulation algorithms and approaches work. A knowledge of how to program these types of simulations provides a foundational understanding of how simulations work, allowing a student to adapt existing simulation tools or research deeper into improving simulation methods.
 
The following resources should start someone out who wants to implement physically based simulations for common effects such as fluid simulation and cloth simulation.

Getting Started with Physical Simulations

Here are links to start you out programming various methods of physical simulation. They go over foundational mathematical and algorithmic principles for these various types of physical simulation.

 

This 2018 SIGGRAPH course by Bargteil and Shinar introduces and explains math equations and algorithms needed to implement basic collision dynamics for physically animated objects.

Citation: Adam Bargteil and Tamar Shinar. 2018. An introduction to physics-based animation. In ACM SIGGRAPH 2018 Courses (SIGGRAPH '18). Association for Computing Machinery, New York, NY, USA, Article 6, 1. DOI:https://doi.org/10.1145/3214834.3214849

 

These course slides lay out some of the equations and algorithms used for implementing cloth simulations. For more foundational details, the 1997 Course on cloth dynamics by David Baraff and Andrew Witkin is also a good introduction.

Citation: Kwang-Jin Choi and Hyeong-Seok Ko. 2005. Session details: Advanced topics on clothing simulation and animation. In ACM SIGGRAPH 2005 Courses (SIGGRAPH '05). Association for Computing Machinery, New York, NY, USA. DOI:https://doi.org/10.1145/3245700

 

Bridson and Müller presented a Course at 2007 SIGGRAPH that gives a foundational look at the math and principles underlying programming a fluid simulator. Robert Bridson is one of the experts in fluid simulation methods. Over the years, he gained experience implementing and teaching fluid simulation.

Citation: Robert Bridson and Matthias Müller-Fischer. 2007. Fluid simulation: SIGGRAPH 2007 course notes Video files associated with this course are available from the citation page. In ACM SIGGRAPH 2007 courses (SIGGRAPH '07). Association for Computing Machinery, New York, NY, USA, 1–81. DOI:https://doi.org/10.1145/1281500.1281681

 

Marker and Cell Fluid Implementation Tutorial

Writing a basic fluid simulation is a great project to start with. This paper breaks it down really nicely for a new student. A good intro to helping someone implement a Navier-Stokes fluid.

Citation: David Cline, et al. 2005. Fluid Flow for the rest of us: Tutorial of the Marker and Cell Method in Computer Graphics.

Essential Reading

The following books address fundamentals and implementation of physical simulations for computer graphics. They go into deeper details about topics covered in the "Getting Started" sections.

 

Foundational Papers

  • Jos Stam. Stable Fluids. SIGGRAPH '99: Proceedings of the 26th annual conference on Computer graphics and interactive techniques, 1999.
  • Baraff, David and Witkin, Andrew. Large Steps in Cloth Simulation. SIGGRAPH '98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques, 1998.

Advanced Topics

 

     

    Contribute to the Curated Lists
    We welcome suggestions for additional resources to list. You can submit a resource using this google form.