Skip to content

GrahamZen/Soft-Body-Simulation-CUDA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA-Accelerated Soft Body Simulation

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Final Project

Click here for documentation (CIS5650 Final Project version)

Requirements

  • CUDA >= 12.0 (cublas, cusolver)
  • CMake >= 3.18

Description

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.

Features

  • 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
  • Collision detection

    • real-time bvh
    • ccd
    • robust collision handling

Dependencies

Below are included in the project:

  • OpenGL
  • ImGui
  • spdlog
  • Eigen
  • glfw
  • catch2

Screenshots

showcase.mp4