This repository contains the official implementation of the Compact-Kernel Material Point Method (CK-MPM) and a set of example tests. The tests are built as standalone executables using CMake and require a working CUDA toolchain. The code is built and tested on Ubuntu.
- CMake 3.27 or newer
- A C++20 compatible compiler with CUDA support (tested with the NVIDIA CUDA Toolkit)
libglut-devpython3-dev- Git & Git-Lfs
This project uses Git submodules for its third‑party dependencies. Make sure to clone the repository recursively:
git clone --recursive https://github.com/AppledoreM/CKMPM If you already cloned the repository without --recursive, initialise the
submodules manually:
git submodule update --init --recursiveCreate a build directory and invoke CMake. All targets can then be compiled via
cmake --build or your favourite build tool:
mkdir build
cd build
cmake ..
cmake --build . -j8This will produce several test executables under build/tests/. Each executable
is named mpm_test_<name> or similar, depending on the test case defined in
tests/CMakeLists.txt.
Run the desired test executable from the build directory. For example:
./tests/mpm_test_dragonBefore running any tests, create a result directory in the repository
root to store output files:
mkdir -p resultSome tests export their results to result/<test_name>/. Tests are executed individually.
This repo also contains a python implementation of PIC version of CK-MPM, which is included in the python-src folder. Check out the .sh file on how to run the script.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
@article{liu2025ckmpm,
author = {Michael Liu, Xinlei Wang, Minchen Li},
title = {CK-MPM: A Compact-Kernel Material Point Method},
year = {2025},
issue_date = {July 2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {44},
number = {4},
issn = {0730-0301},
url = {https://doi.org/10.1145/3731155},
doi = {10.1145/3731155},
journal = {ACM Trans. Graph.},
month = july,
numpages = {14}
}