University of Pennsylvania, CIS 565: GPU Programming and Architecture, Final Project
- Gehan Zheng (LinkedIn, personal website), Hanting Xu
Click here for documentation (CIS5650 Final Project version)
- CUDA >= 12.0 (cublas, cusolver)
- CMake >= 3.18
This project is originally a final project for CIS5650 at UPenn and is still under development. The goal of this toy project is to provide a CUDA-accelerated physical simulation framework with dependencies as few as possible, in which various simulation algorithms can be implemented and tested.
-
Linear solvers
- sparse cholesky prefactorization w/ approximate minimum degree ordering
- dense cholesky prefactorization
- jacobi solver (naive)
- cholesky decomposition
- preconditioned conjugate gradient
-
FEM
- projective dynamics
- Direct (cusolver's cholesky)
- Chebyshev acceleration
- explicit euler
- incremental potential
- materials
- corotational
- neo-hookean
- barrier
- spheres, planes, cylinders
- soft bodies
- materials
- projective dynamics
-
Collision detection
- real-time bvh
- ccd
- robust collision handling
Below are included in the project:
- OpenGL
- ImGui
- spdlog
- Eigen
- glfw
- catch2