TellusPM follows soil from the first plastic strain to where the debris stops: footings, slope failures, excavations and debris flows on real terrain, in 2D or 3D, on a multi-core CPU or an NVIDIA GPU.
points in one whole-hillside debris-flow run, 12 min on one RTX 4090
0×
the CUDA engine against 15 CPU threads, with the same results
0
typed MCP tools in engineering units, for an engineer or an AI agent
0runs
in the verification and calibration campaign of the paper
The method
Points carry the soil. A grid does the maths, then forgets.
A finite element mesh tangles long before a landslide stops. In the material point method the soil is a cloud of points that keep their mass, velocity, stress and history, while a fixed background grid solves the momentum balance each step and is then reset, so the points can travel any distance.
Points to grid
Mass, momentum and internal force go to the nodes through uGIMP, linear or quadratic B-spline weights.
Solve on the grid
Nodal momentum is updated with gravity, local damping, side conditions and frictional contact with rigid bodies.
Grid to points
Points take the new velocity (FLIP or APIC) and move with the grid, so material can flow, fold and separate.
Stress at the points
The velocity gradient drives a Jaumann-rate stress update through the constitutive model, and the grid is cleared for the next step.
What it does
One explicit solver, from a footing to a whole hillside.
Models are staged in phases, as in a finite element analysis, and every phase runs on the same state on either engine.
Geometry and terrain
2D plane strain or 3D sections extruded over depth ranges, terrain height grids from ESRI .asc files, and drape layers laid on the terrain.
Numerics
MUSL or USL, uGIMP, linear or B-spline bases, FLIP or APIC transfer, cell-averaged volumetric strain against locking, CFL time step and Cundall damping.
Constitutive models
Mohr-Coulomb with softening, Drucker-Prager, Hardening Soil, Soft Soil, fluid and linear elastic, drained, undrained or two-phase.
Staged phases
K0 or gravity start, region activation and excavation, rigid footings and walls, loads, and a strength-reduction search for the factor of safety.
CPU and CUDA engines
Rayon on all cores in f64, or CUDA kernels compiled at run time with NVRTC in f32, chosen automatically from 2,000 points when a GPU is present.
Results you can trace
Frames of displacement, velocity, stress, plastic strain and pore pressure, monitor and rigid-body series, PNG pictures and a binary results file.
Constitutive models
From runout to settlement.
Mohr-Coulomb carries the flows. Hardening Soil and Soft Soil, new in this version, carry the stiffness before failure that settlement and excavation depend on, each with its cap calibrated on a simulated oedometer test, as PLAXIS does.
Mohr-Coulomb
flows
Non-associated, returned in principal stresses with plane, edge and apex returns, linear softening of c, φ and ψ to residual values, and a tension cut-off.
Plane-strain peak σ1/σ3 = MC exact
Griffiths–Lane FoS 1.34–1.40 (FE 1.35–1.40)
Drucker-Prager
clay su
Matched to Mohr-Coulomb in plane strain, non-associated; with φ = 0 it is von Mises, which is Tresca with su = c in plane strain.
Simple shear reaches τ = su
Strip footing about 4 % above Prandtl
Hardening Soil
new
Schanz, Vermeer and Bonnier (1999): stress-dependent E50, Eoed and Eur with power m, hyperbolic shear hardening, Rowe dilatancy, a cap, and OCR or POP.
E50 at σ'3 = 50/100/300 kPa within 4 %
Eoed30.8 vs 30 MPa · K0 0.427 vs 0.426
Surcharge settlement 1.9 % from element test
Soft Soil
new
The PLAXIS model for soft clay: K = p'/κ*, a Cam-Clay cap hardening with λ* − κ*, Mohr-Coulomb failure, and M calibrated to K0nc. Takes λ*, κ* or Cc, Cs, e0.
λ* = 0.1000 and κ* = 0.0200 (input 0.10, 0.02)
K0 0.5755 vs K0nc 0.5774
Surcharge settlement 1.7 % from element test
Fluid
water
A weakly compressible Newtonian fluid with p = K(1/J − 1), for dam breaks, flooding and impact on structures.
Dam-break surge front within 1.4–3.1 %
of Martin and Moyce (1952)
Pore water
any model
Drained, undrained in effective stress, or a single-point two-phase mixture with Darcy flow, for consolidation and saturated failure.
Terzaghi consolidation within 3.9 %
of the initial pore pressure
The element and solver-level tests above ran on the CPU. The Hardening Soil and Soft Soil GPU kernels reproduce the CPU element tests when compiled as host code in f32, and still have to be run on an NVIDIA device.
The application
Build it, run it, watch the ground move.
A desktop application with an Input view for materials, regions, rigid bodies, loads and phases, and an Output view that plays the frames coloured by any of 13 quantities and charts any pair of series columns.
The phase editor of a slope on a foundation layer: gravity at equilibrium, then failure and runout.
ParticlesEvery material point as a shaded square.
SurfaceTerrain and the top of the material, coloured by the quantity.
MeshThe initial lattice joined into cells that stretch, shear and tear.
GroundTerrain raised or lowered by the debris, so a source becomes a scar.
AI agent and MCP
Ask in a sentence. Every number comes from a tool.
The same 28 tools serve the embedded TigrimOS agent in the chat panel and any Model Context Protocol client, such as Claude Code, in m, kPa, kN/m³, degrees and seconds.
TellusPM · Assistant (replay of the run reported in the paper)
The picture the agent asked for through show_picture: plastic strain under the footing at s/B = 12 %.
One demonstration, not an evaluation. Part of the 23 % excess came from the template's former damping of 0.05, which the agent reported but could not diagnose.
GPU engine
The same answer, forty times sooner.
The CUDA kernels are compiled at run time with NVRTC, so one binary runs with or without a GPU. On the verification cases they give the CPU engine's results to the reported digits.
CPU, 15 threads, f64RTX 4090, CUDA, f32
Strip footing, 2D16,000 points · q/su 5.686 vs 5.688
1.93 × 10⁶ pt-steps/s
7.63 × 10⁷ · 40×
Column collapse, 2D12,800 points
1.25 × 10⁶ pt-steps/s
1.01 × 10⁸ · 81×
Square footing, 3D64,000 points · q/su 5.695 on both
1.87 × 10⁶ pt-steps/s
8.36 × 10⁷ · 45×
Verification and calibration
Checked against closed forms, codes and experiments.
About 120 runs on one RTX 4090, documented in the paper with the CSV results of every run. Where the answers are off, the paper says why.
Benchmark
Reference
TellusPM
Vibrating bar
Closed form
Second-order convergence with uGIMP
Finite-strain oedometer
Logarithmic-strain solution
Within 0.6 %
Terzaghi consolidation
Closed form
Within 3.9 % of the initial pore pressure
Sliding block
g(sin θ − μ cos θ)
Within 0.4 to 2.7 %
Griffiths and Lane slope
FE 1.35–1.40, Bishop 1.38
Factor of safety 1.398 / 1.367 / 1.344 (cells 1 / 0.5 / 0.25 m)
Strip footing, Tresca clay
Prandtl 5.14 su
About 4 % above once local damping is off
Dam break
Martin and Moyce (1952)
Surge front within 1.4 to 3.1 %
Granular column collapse
Experiment, Lube's runout law
Squat 2D columns match; aluminium rods 25 % short; tall columns 1.3 to 1.7 times long
Patong debris flow, one source
Coupled DEM–SPH
61 % of the moved mass within 150 m of Nanai Road, against 53 to 60 %
Patong, all FS < 1 cells
FE + DEM–SPH chain
99th-percentile travel within 6 % (349 against 330 m); median 38 % longer
Hardening Soil, Soft Soil
Element tests, 1D settlement
E50, Eoed, K0, λ*, κ* and qf within 4 %; settlement within 2 %
Case study
Every unstable slope of a hillside, failing together.
The Patong hillside (Phuket) in the Ground view: scars red, deposits blue.
The 26 October 2026 Patong (Nanai) debris flow, run on GLO-30 terrain. Every 20 m cell whose saturated infinite-slope factor of safety is below 1 is released at once, with the strength reduced by γsat/γ' = 1.96.
0material points
9.4 × 10⁷grid cells, 10 GB on the GPU
0 minon one RTX 4090
6 %99th-percentile travel against FE + DEM–SPH
A stress test of the code and a map of where debris collects, not a prediction of the event: the same rule also releases ground that did not fail.
Change in ground level after every unstable cell of the hillside has failed and come to rest.
Get started
One Rust workspace, three ways in.
A recent stable Rust toolchain builds everything. The CUDA engine needs only an NVIDIA driver and the NVRTC library of a CUDA 12 toolkit at run time.
Desktop application
# build and start
cargo build --release -p telluspm
./target/release/telluspm
# open a model and its results
./target/release/telluspm model.telluspm
MCP server
# headless server on stdin/stdout
cargo build --release -p telluspm-core
./target/release/telluspm-mcp
# register with Claude Code
claude mcp add telluspm -- \
/path/to/target/release/telluspm-mcp
Verification
# closed-form and element tests
cargo test -p telluspm-mpm --release
# CPU against CUDA, incl. HS and SS
cargo run --release --example gpu_check all
Rate-independent soilSquat granular columns are reproduced, tall ones run 1.3 to 1.7 times too far, and aluminium rods stop 25 % short.
Explicit time integrationQuasi-static problems run as slow dynamic ones, and stiff soil or fine cells mean many steps.
Advanced soil modelsNo small-strain stiffness (HSsmall), no creep (Soft Soil Creep), and Soft Soil is a cap model, not a full critical-state model.
Terrain and pore waterStair-stepped wall nodes, a single-point two-phase formulation, and flows on terrain that need a calibrated basal friction.
If you use TellusPM, please cite: S. Youwai, TellusPM: a GPU-accelerated material point method for large-deformation geomechanics driven by an AI agent, calibrated against analytical, numerical and experimental benchmarks, AI Research Group, King Mongkut's University of Technology Thonburi (KMUTT), Bangkok, 2026. Zenodo: zenodo.org/records/23953123.
Contact
Questions, a bug, or a case to try?
Write to the TellusPM team about the method, a model that misbehaves, collaboration or licensing. A bug report is most useful with the project file and the version you ran.