This program was made using C++ and OpenGL compute shaders. It also uses OpenGL for rendering and ImGui for GUI. I am using this program for my own research in physics-based animation. I hope other users can also use this for their MPM needs or to just play around. Right now they would need to build it themselves, but I plan to release this as a standalone open-source software once I am happy with what I've done with it.
Current Research (at UofT DGP):
MPM control algorithms.
Natural triggers for landslides in MPM.
Read the Wiki for more information:
https://github.com/mshoe/MPM_Geometry/wiki
Video Gallery:
https://www.youtube.com/channel/UC4qfNTQgecwtluc0M5HRnTw
Gif Gallery:
Rendering speed colored points vs marching squares for green fluid:
Rendering points with elastic potential energy:
Elastic deformation gradient modification (example 1) (colors are stress visualization):
Elastic deformation gradient modification (example 2) (colors are speed visualization):
Mathematical trigger for landslide (colors are speed visualization):
Material Point Method (MPM) is an Eulerian-Lagrangian hybrid algorithm for simulating continuum materials.
Build Instructions for Windows
Clone this repo, open MPM/MPM.vcxproj in Visual Studio 2019, and build. This program is using NVidia OpenGL extensions: GL_NV_shader_atomic_float64. A sufficient NVidia GPU that supports OpenGL 4.5 is required for the program to run properly (https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_float64.txt). Also, make sure your graphics drivers are up to date.