Solid sim tutorial gpu
A curated set of C++ examples for optimization-based elastodynamic contact simulation using CUDA, emphasizing algorithmic convergence, penetration-free, and inversion-free conditions. Designed for readability and understanding, this tutorial helps beginners learn how to write simple GPU code for efficient solid simulations.
This is a tutorial for elastodynamic contact simulation using [MUDA](https://github.com/MuGdxy/muda) (a [CUDA](https://developer.nvidia.com/cuda-toolkit) programming paradigm). The project is written primarily in Cuda, distributed under the Apache License 2.0 license, first published in 2024. Key topics include: collision-handling, computational-mechanics, computer-graphics, constrained-optimization, cuda.
MUDA-based Solid Simulation Tutorial
This is a tutorial for elastodynamic contact simulation using MUDA (a CUDA programming paradigm).
The basic architecture of the simulators follows @liminchen's Numpy version solid-sim-tutorial.
The tutorial (written by a beginner of simulation) aims at helping beginners learn how to write simple CUDA codes for efficient solid simulations on the GPU. An introductory section for the first example of this tutorial can be found at https://phys-sim-book.github.io/lec4.6-gpu_accel.html.
Usage
- Clone the repository
bashgit clone https://github.com/Roushelfy/solid-sim-muda cd solid-sim-muda git submodule update --init --recursive
- build with cmake
bashmkdir build cd build cmake .. cmake --build .
Requirements
Eigen3==3.4.0
CMake>=3.29
CUDA>=11.0
Examples
1. Simple Mass-Spring System

2. Dirichlet Boundary Condition

3. Contact

4. Friction

5. Moving Dirichlet Boundary Condition

6. Neohookean Solids

7. Neohookean Solids with Self-Contact

8. Neohookean Solids with Frictional Self-Contact

Contributors
Showing top 2 contributors by commit count.
