Course Overview
This course picks up where CSE169 leaves off focusing on computational physics simulation with emphasis on the dynamics of motion. Specific sub-topics include rigid body dynamics, deformable body dynamics, contact, fracture, and fluid dynamics. Additional topics may include galactic, molecular, and vehicle dynamics.
Required Knowledge: Familiarity with Newtonian mechanics. Familiarity with C++ or similar programming language. Familiarity with OpenGL or similar graphics API.
Rigid Bodies Fluid Dynamics Deformable SolidsAnnouncements
- 04/01/2019 : Tuesday, Thursday: 1700-1820 @ 4140 (EBU3B)
- 04/03/2019 : Piazza for this class.
- 04/08/2019 : Project Details Posted
- 04/10/2019 : Additional Papers Posted
- 04/30/2019 : No Lecture on 05/02/2019
- 06/05/2019 : No Lecture on 06/06/2019
Staff
Instructor :
Steve Rotenberg (srotenberg@ucsd.edu)
Steve Rotenberg has worked in the computer graphics, simulation, mapping, and video game industries over the last 27 years. He is the founder and CEO of VectorZero Inc., a San Diego company that makes software used for autonomous vehicle simulation. He was previously the founder and CEO of PixelActive Inc., which made 3D city modeling and traffic simulation software and was eventually sold to HERE Maps. Before that, he worked as Director of Software at Angel Studios, an early 3D video game development company. From 2003 to the present, Steve has taught as a guest lecturer in the computer graphics group within the computer science department at UCSD.Office Hours : Tuesday, Thursday: 1550-1650 @ 2210 (EBU3B)
Teaching Assistant :
Mridul Kavidayal (mkaviday@ucsd.edu)
Mridul is a first year Master's student in the department of CSE. He is interested in the areas of Computer Graphics and Machine Learning.Sessions
This is a rough outline of the course, and will be updated throughout the quarter.PART 1: Deformable Solids
- Newtonian Particles
- Integration
- Linear Elasticity
- Finite Elements
- Mesh Generation
- Fracture and Contact Modeling
Reading
Books
Papers
- "An Introduction to Physics-based Animation", Bargteil, Shinar
- "Graphical Modeling and Animation of Brittle Fracture", O'Brien, Hodgins
- "Tetrahedral Meshing in the Wild", Hu, Zhou, Gao, Jacobson, Zorin, Panozzo
- "SPH Fluids in Computer Graphics", Ihmsen, Orthmann, Solenthaler, Kolb, Teschner
- "Interactive Simulation of Rigid Body Dynamics in Computer Graphics", Bender, Erleben, Trinkle, Coumans
Additional Papers
- "Stabilizing Integrators for Real-Time Physics", Dinev, Liu, Kavan, 2018
- "Graphical Modeling and Animation of Ductile Fracture", O'Brien, Bargteil, Hodgins, 2002
- "Divergence-Free SPH for Incompressible and Viscous Fluids", Bender, Koschier, 2016
- "High-Resolution Simulation of Granular Materials with SPH", Ihmsen, Wahl, Teschner, 2012
- "Unified Spray, Foam and Bubbles for Particle-Based Fluids", Ihmsen, Akinci, Akinci, Teschner, 2012
- "Polyhedral Mass Properties (Revisited)", Eberly, 2002
- "Nonconvex Rigid Bodies with Stacking", Guendelman, Bridson, Fedkiw, 2003
- "Lecture Notes on Delaunay Mesh Generation", Shewchuk, 2012
- "Accurate and Efficient Simulation of Rigid Body Rotations", Buss, 2001
Projects
Project Goal
The goal of the project is to implement a physics simulation that combines several different components such as physics, collision detection, rendering, user interaction, etc. There are three main topics to choose from :- Deformable solids
- Fluid dynamics
- Rigid body dynamics
It will need some type of visualization, but it can be basic, such as lines and triangles through OpenGL. You can use the sample code provided to get a basic OpenGL app set up with a simple camera control. It is be a good idea to use some type of basic user interface such as TweekBar or NanoGui to be able to interactively adjust parameters and control the simulation, but this is not required.
Scoring
Altogether, the project is worth 90 points over the quarter. For full credit, you must show progress at two different points during the quarter as well as give a short presentation in front of the class demonstrating the final results.The two progress checks are worth 10 points each, and the final presentation is worth 10 points. To get full credit for the progress checks, you must meet with me either in office hours or after class and show at least one sub-topic completed by the end of week 4 and one additional sub-topic completed by the end of week 8. To get the 10 points for the presentation, you just have to stand in front of the class and show something!
To get the remaining 60 points, you must complete enough individual goals based on the scoring guidelines below. Each topic has more than 60 points available, so you can choose a subset. You can optionally work in groups of 2. If you do, point scores below get multiplied by 2/3, so you have to do 50% more to get the same score as working alone (but you will have to attempt some of the more complex ones).
Option 1 : Deformable Solids
- 15 points: Implement linear elastic tetrahedral elements. At a minimum, you should be able to create a box shape made up of an i x j x k grid of elements. The box should be able to deform elastically and collide with a ground plane.
- 20 points: Implement collisions between tetrahedral elements. You should be able to create multiple separate box grids and collide them with each other.
- 10 points: Implement an optimization data structure to speed up collisions, such as a dynamic AABB tree.
- 15 points: Implement basic fracturing along existing tetrahedral boundaries. Tetrahedra should separate upon heavy impacts but do not need to split into smaller tetrahedral (or collide with each other).
- 15 points: Add tetrahedral splitting to fracture simulation. Individual tetrahedral should be able to split along the fracture plane to create smaller ones.
- 10 points: Implement basic plastic deformation.
- 10 points: Render a movie with a high quality ray tracer. Have different visual materials correspond to different physical materials.
Option 2 : Particle Based Fluids
- 15 points: Implement basic SPH algorithm.
- 10 points: Add more sophisticated solver such as divergence free method.
- 10 points: Add spatial hash table for improved performance in large systems.
- 10 points: Add strong viscosity model.
- 15 points: Add support for elastic solid interactions between particles.
- 15 points: Add support for granular modeling.
- 10 points: Add marching cubes surface extraction.
- 15 points: Add special handling for foam and bubble particles.
- 10 points: Render a movie with a high quality ray tracer and include refractive water surface.
Option 3 : Rigid Body Dynamics
- 15 points: Implement basic rigid body motion for single boxes colliding with a ground plane.
- 15 points: Add support for custom 3D models (such as .obj files) and use the Mirtich-Eberly algorithm to compute the mass properties of the model. Demonstrate several different shapes individually colliding with a ground plane.
- 15 points: Add support for ball-and-socket constraints. Demonstrate something like a hanging chain dropping to the ground (only ground plane collisions required).
- 10 points: Implement sphere-sphere collisions (and sphere-ground plane). Demonstrate a scene with colliding/rolling balls of different sizes.
- 20 points: Implement box-box collision handling.
- 10 points: Render a movie with a high quality ray tracer. Have different visual materials correspond to different physical materials.
Option 4 : Choose Your Own
Choose your own topic and sub-topics. Talk to me first about a plan for how we will score it. Or you could combine some things from the above lists. For example, you could implement a rigid body floating in a pool of SPH water. Talk to me about the details.Final Projects
- Alex Macedo
- Alexandr Kuznetsov
- Andrew Bauer
- Andy Hwang
- Chengchen Zhang
- Chenzhong Tao
- Chun Chan
- Fanbo Xiang
- Karen Lucknavalai, Jonathan Leung
- Menghe Zhang
- Michael Hughes
- Michael Smith
- Guangyan Cai
- Xianhang He
- Xinming Zhang
- Yunlu Huang
- Zhengqin Li
- Ziqi Gan
- Ziyang Li, Weichen Liu
- Scott Howland