↑ Vocaro Guide to MPM

References — Papers, Courses, Code & Media

A curated bibliography for the Material Point Method, grouped by type. Every entry has a link, and its annotation says what that work contributes; for where to start, the index names the three sources to read first. If a link rots, search the title — these are all well-indexed works.

1. Peer-reviewed academic papers

Foundational / origin

Graphics landmark & constitutive models

Transfer schemes & method refinements

Contact & multi-body coupling

How MPM handles distinct bodies — separate velocity fields per body/material on one grid (the “multi-field” line), per-body background meshes (the “multi-mesh” line), and coupling to rigid bodies. See Theory §5 for the concepts.

Fracture & advanced material models

Fluid-flow validation benchmarks

Granular-flow validation benchmarks

Accuracy, resolution & dispersion

What a coarse grid does to the physics — quadrature error, dispersion, and under-resolved features. The practical face of these at interactive resolutions: effective stiffness falls below configured stiffness, and features a few cells wide fail before the bulk does.

GPU & performance

Real-time / games

Surface reconstruction & rendering

The particle-to-pixels half of the subject — what Rendering §1.1 distils. (§5).

Determinism & reproducibility

Reproducible parallel simulation — the substrate for regression-testing a chaotic sim (and for lockstep networking). Fixed-point accumulation for deterministic GPU scatter long predates MPM use, so cite it properly.

Adjacent methods (cited in comparisons)

Landmarks from neighboring method families that MPM work is weighed against — see Related Methods for what each method is.

Surveys & reviews

2. Courses, tutorials & lecture notes

3. Blogs, articles & media

4. Open-source implementations

Repo Lang / Platform License Notes
nialltl/incremental_mpm Unity / High-Performance C# MIT Readable learning examples; paired with the guide above.
yuanming-hu/taichi_mpm C++ / CUDA / Taichi MIT Canonical 88-line MLS-MPM; high-performance.
electronicarts/pbmpm WebGPU (JS + WGSL shaders) BSD-3 EA SEED PB-MPM; study the siggraph2024 branch. Both branches read closely in Implementation §3.3.
kuiwuchn/GPUMPM CUDA GPL-3.0 — methods only, never code Gao et al. SIGGRAPH Asia 2018 GPU optimizations.
Taichi MPM88 gallery Python / Taichi Apache-2.0 The 88-line MLS-MPM ships as a Taichi example.
CB-Geo mpm C++ MIT Engineering/geomechanics-grade MPM solver; parallelized with MPI (Message Passing Interface) for clusters.
NairnMPM / nairn-mpm-fea C++ none — unlicensed The multimaterial-contact reference implementation (per-pair contact laws; see the OSUpdocs entry in §2). No license grant anywhere in the tree (and it embeds GPL code), so methods only, never code. Its methods are distilled into Theory §5–§6; re-verify the license before reading any of it.
Anura3D Fortran LGPL-3.0-or-later (lgpl-3.0.txt; the license API reports none because the filename is non-standard) Geotechnical MPM (soil, large-deformation engineering).
kotsoft/FluidCinder C++ / Cinder MIT “Fast real time fluid simulator based on MPM algorithm” — the most complete public C++ expression of Grant Kot’s 2D MPM. Siblings: MPM3D (SIMD, incomplete), FluidSSE, fluid (HTML5). See §3.
golanlevin/MPM-Fluid openFrameworks / Processing none — unlicensed The canonical port of Kot’s 2010 applet, with the Java → Flash → JavaScript → openFrameworks origin chain recorded in its header.
Genesis-Embodied-AI/genesis-world Python / Taichi (CUDA, ROCm, Metal, Vulkan, CPU) Apache-2.0 Robotics/embodied-AI platform whose physics stack includes a differentiable MPM solver beside rigid, SPH, FEM and PBD. Notable here for two reasons the research papers cannot supply: it is permissively licensed — rare in this table — and its compute backend is Taichi, whose backend list includes Apple Metal. Verify before relying on that second point: the platform claim is repo-level, and whether the MPM solver specifically is exercised on Metal was not confirmed. Its MPM lineage is FluidLab’s, per its own acknowledgments.
larsblatny/matter C++ / OpenMP (CPU) GPL-3.0 — methods only, never code Matter (v1), the solver behind Blatny & Gaume’s snow/avalanche line (GMD 18:9149, 2025). The reason to read the paper: its constitutive catalog is the broadest published in one MPM code — von Mises, Drucker-Prager with strain softening, Modified Cam-Clay, Bingham and Herschel-Bulkley overstress, μ(I) and critical-state μ(I) — all from one primary source (CB-Geo’s bingham.tcc covers the Bingham member; Herschel-Bulkley and the evolving consolidation cap come from this paper). Transfers: PIC/FLIP/APIC/AFLIP; kernels: quadratic and cubic B-spline. CPU-only, so nothing about its performance transfers.
sand6 C++11 GPL-3.0 — methods only, never code Daviet & Bertails-Descoubes’s nonsmooth Drucker-Prager / μ(I) granular solver (SIGGRAPH 2016, §1). Two tarballs — the exact SIGGRAPH version and a later one — so the paper’s results stay tied to the code that produced them. Its author’s page is also where the paper PDF actually lives; the HAL mirror answers automated clients with HTML.
nepluno/pyasflip Python Apache-2.0 Reference implementation of ASFLIP (Fei et al. 2021, §1). Small, permissive, and the change it demonstrates is reportedly under 15 lines — the cheapest readable-and-usable code in this table.
InteractiveComputerGraphics/splashsurf Rust (CLI + library) MIT Particle surfacing: SPH density with the Yu–Turk anisotropic kernel, domain-decomposed marching cubes, Laplacian mesh smoothing and SPH normal smoothing. Its documented defaults — smoothing length 2× particle radius, threshold 0.6 of rest density, cube size 0.5–0.75× radius, 25 smoothing and 10 normal-smoothing passes against bumpiness — are a calibrated recipe.
doyubkim/fluid-engine-dev C++ MIT The Fluid Engine Development book’s code; spherical, SPH blobby, Zhu–Bridson and anisotropic points-to-implicit converters side by side, with a visual comparison in its docs.
AcademySoftwareFoundation/openvdb C++ Apache-2.0 ParticlesToLevelSet plus the level-set filters (dilate, erode, Gaussian, mean-curvature, Laplacian) production surfacing is built from. File-level copyleft only; usable in commercial work with the MPL’s modification-disclosure terms.
ttnghia/RealTimeFluidRendering C++ / OpenGL none — unlicensed Reference implementation of the narrow-range filter (Truong & Yuksel 2018, §1). Methods only, never code — the paper is complete without it.

Always open the actual LICENSE file in each repository to confirm current terms for your specific use — license files can be updated.