FAMMASMAZAI DOC FMZ·AI·001 REV 2026.10 SHEET 1/1
FammasMazAI
RESEARCH STAGE Contact

CONSTITUTIVE INTELLIGENCE FOR GRANULAR MEDIA

Grain-scale truth.
Structure-scale speed.

FammasMazAI builds the constitutive layer that granular simulation is missing. We generate defensible granular assemblies in seconds instead of days, then learn the material law that carries grain-scale behaviour — path dependence, microrotation and heterogeneity intact — into the solver you already run.

ORIGIN
SNCF CIFRE N° 2023/1116 · Aix-Marseille Univ. · CentraleSupélec
COMPUTE
Trained on NVIDIA H100 (Jean Zay, IDRIS)
FIG. 1 — CONSTITUTIVE RESPONSE, LIVE 1D illustration · 3D kernels are micropolar & learned
σ_peak — ε_peak — ψ_diss — C_min —

Stored energy ψ, stress σ = ∂ψ/∂ε, tangent stiffness C = ∂²ψ/∂ε². Yield, return mapping and hardening are solved here in closed form — the deployed kernels learn the same three objects from DEM.

§ 01 — THE STATUS QUO

Every granular study pays the same two taxes.

Neither is a physics problem. Both are paid in compute, and both are paid again by whoever trusts the answer.

TAX A

Initialization

DAYS PER ASSEMBLY

The standard opening move is gravitational settling under friction. It is slow, it is sensitive to friction and rolling parameters nobody can tune honestly, and it leaves artefacts: crystallized packings, depressed coordination numbers, layering aligned to the settling direction.

CONSEQUENCE — two engineers run nominally identical models and get different answers before physics has begun. Initial state is neither reproducible nor defensible in review.

TAX B

Homogenization

THREE HAND-TUNED NUMBERS

Getting from grains to a structure means adopting a continuum closure — Mohr–Coulomb, hyperbolic, capped variants. These are non-objective, non-path-dependent and micromechanically blind: they cannot represent microrotation, couple stress, or heterogeneity at all.

CONSEQUENCE — parameters are fitted on the same data you need to predict, so the error bar is unknown. Nobody can tell you how wrong the model is.

The interesting physics is in Tax B. Tax A is what makes it unaffordable to study. We attack both with the same asset: a generative model of what granular matter actually looks like.

§ 02 — PIPELINE

Generate → simulate → distill → deploy.

One closed loop. The generator makes truth affordable; the distilled kernel makes it usable in a structure.

  1. 01

    Generate

    3D diffusion · unconditional + inpainting

    A diffusion model over binary occupancy grids learns what realistic DEM configurations look like. An unconditional model generates independent blocks; a repaint-based inpainting model stitches them into assemblies of arbitrary extent, blending new regions into the context already generated.

    • → DEM-compatible particle meshes
    • → granulometry-matched by construction
    • → convex and non-convex grains
  2. 02

    Simulate

    DEM ground truth on your load path

    This step is still the expensive one, and it should be — it is the only source of truth that matters. Generation is what makes it affordable to run the number of load paths, assemblies and bin sizes that a defensible result actually requires.

    • → voxel fields at the particle-diameter scale
    • → stress, strain, microrotation, couple stress
    • → your experiment, your geometry, your boundary conditions
  3. 03

    Distill

    energy-based neural operator · CHASM

    Stress is not predicted as six free numbers. A free-energy potential ψ is predicted, and stress follows as σ = ∂ψ/∂ε — so the kernel is thermodynamically consistent by construction rather than by penalty. Micropolar state and per-component uncertainty are learned alongside.

    • → σ = ∂ψ/∂ε · C = ∂²ψ/∂ε²
    • → learned internal state carries path dependence
    • → heteroscedastic variance for every component
  4. 04

    Deploy

    ONNX Runtime · called from your solver

    The energy decoder differentiates through autograd, which ONNX tracing cannot follow. So the energy head is trained first, then distilled into a direct stress head, then exported with dynamic axes for any number of Gauss points.

    • → drop-in constitutive subroutine
    • → internal state is yours to carry across steps
    • → verified against your own DEM campaign

§ 03 — PRODUCT 01

Forge— granular assembly synthesis

Replaces gravitational settling with a learned prior over realistic configurations. Published, reproducible, code released.

DEM initialization is dominated by large displacements and kinetic energy — the phase where particles fall and slide and nothing meaningful is happening mechanically. Diffusion removes that phase instead of accelerating it.

Trained on binarized 3D occupancy grids derived from a database of small-scale DEM simulations, the generator scales linearly with the number of output voxels, and the repaint stage lets an assembly grow past anything the training set contained.

Hassan, Cottereau, Gatti, Dec — “Fast 3D diffusion for scalable granular media synthesis” arXiv 2508.19752 · DOI 10.1016/j.compgeo.2026.108336
days → hours for assemblies that previously took days to initialize src
200k+ ballast particles per assembly, practically unattainable before src
linear scaling with output voxels; two-stage unconditional + inpainting src
2 cases railway ballast and lunar regolith, convex and non-convex grains src
FIG. 2 — ASSEMBLY SECTION Illustrative 2D section — force chains drawn where grains are in contact
grains — contacts — achieved e —

Drawn from Poisson-disc placement plus settling under contact friction — a schematic of the packing statistics Forge targets, not a Forge output.

§ 04 — PRODUCT 02

CHASM— a learned constitutive kernel

A tokenized micropolar neural constitutive emulator for heterogeneous granular media. Thermodynamics-informed, uncertainty-aware, exportable.

IN

Voxel encoder

Per-voxel field state — strain increment, accumulated strain, previous stress, microrotation, curvature, couple stress, density, geometry embedding — lifted into a 256-d representation.

POOL

Physics tokenizer

Soft assignment of thousands of voxels to a small set of learned material archetypes, with adaptive temperature. The learned partition is spatially coherent — it is not noise.

MIX

Token transformer

Non-local mixing across archetypes. This is where long-range force-chain effects enter a model that only ever sees continuum-scale inputs.

STATE

Local state

A recurrent per-voxel state carries path dependence. Without it the model cannot represent accumulated plastic deformation, and everything collapses.

STRESS

Energy decoder

Predicts free energy ψ; stress is its gradient, σ = ∂ψ/∂ε, by automatic differentiation. Objectivity and energetic consistency are structural properties, not loss terms.

HEADS

Uncertainty & micropolar

Per-component variance for every prediction, plus auxiliary microrotation, curvature and couple-stress heads — the Cosserat state empirical closures cannot express.

What the runs actually say

0.058

Validation stress MSE with the full DEM microstructure available — the upper bound, using a deliberately small 610k-parameter model.

0.103

Best result with contact-force channels masked — the configuration a deployed continuum solver can actually supply. A ~77% degradation, which is the honest price of removing force information.

0.115

The 3.9M-parameter model, with every channel available. It overfits and loses to the small model by 2×. Capacity was never the bottleneck; supervision was.

READ THIS BEFORE THE CHART — shear is the hard part. On the best full-channel model the normal components reach R² 0.82–0.89 while the shear components land anywhere from −0.17 to +0.12: essentially no explanatory power. Shear stress is near-zero-mean with very high spatial variance, and its error runs roughly 3× the normal-component error. Shear is where force-chain orientation lives, which is exactly what we remove. Closing that gap is the central open problem of this work, not a solved one.

Source: internal training report, Jean Zay H100 runs, March 2026 · W&B project fammasmaz-sncf/chasm · 539-test codebase

§ 05 — EVIDENCE

Every number on this page links to its source.

Training artefacts from the CHASM runs. These are research results, not customer deployments, and we do not present them as the latter.

FIG. 3a — PREDICTED vs TRUE, ALL DEM CHANNELS val/stress 0.058 · 610k params
Six-panel scatter of predicted versus true stress, one panel per Voigt component, with correlation along the diagonal.

Normal components track tightly; shear carries visibly wider scatter. That asymmetry is the central difficulty of this problem.

FIG. 3b — SAME MODEL, FORCE CHANNELS MASKED val/stress 0.103
Scatter of predicted versus true stress with force-derived channels masked, showing wider scatter than the full-channel model.

This is the deployment configuration. It is worse, and we show it rather than the flattering one.

FIG. 3c — LEARNED ARCHETYPES M = 16 tokens
Slices of the granular assembly coloured by dominant learned token, showing spatially coherent material archetypes.

Voxels assigned to the same token form contiguous regions. The partition is physically structured, not arbitrary.

RUN LEDGER — SELECTED ABLATIONS · SOURCE: INTERNAL TRAINING REPORT, MARCH 2026
RUNCONFIGURATIONPARAMSval/stressREADING
teacherall DEM channels available610k0.058upper bound
W1.5force masked + 8 internal variables640k0.103best deployable configuration
W1.1force masked, abrupt610k0.110masking schedule barely matters
W1.4force masked + micropolar head610k0.172auxiliary objective alone conflicts
fullall channels, larger model3.9M0.115overfits; loses to 610k

§ 06 — INTEGRATION

It is a function call.

No solver rewrite. The kernel is exported with dynamic axes, so one artefact serves any Gauss-point count, and the calling code owns the internal state.

PYTHON — CONSTITUTIVE STEP
import numpy as np
import onnxruntime as ort

kernel = ort.InferenceSession("chasm_kernel.onnx")

# internal state is yours to carry across timesteps
state = np.zeros((1, N, 128), np.float32)
eps   = np.zeros((1, N, 6), np.float32)

def constitutive(delta_eps):
    global eps
    eps = eps + delta_eps

    # 29 per-point features: Δε, ε, θ, κ, rolling index
    feats = pack_features(eps, delta_eps)

    sigma, variance, state = kernel.run(
        ["sigma_pred", "variance", "hidden_state_out"],
        {"input_features": feats, "hidden_state": state},
    )
    return sigma, variance
FORTRAN — SUBROUTINE, PER GAUSS POINT
! CHASM called from the spectral element
! constitutive routine, once per point,
! once per timestep.

subroutine constitutive_update(deps, h, sigma)
  real(c_double), intent(in)  :: deps(6)
  real(c_double), intent(inout) :: h(128)
  real(c_double), intent(out) :: sigma(6)

  call chasm_infer(deps, h, sigma)

! h is updated in place: path dependence
! survives across the whole simulation.
end subroutine

INTERFACE SPECIFICATION — ABSTRACTED

VOIGT ORDER
[σxx, σyy, σzz, σxy, σxz, σyz]
POINT FEATURES
29 (deployment slice) — Δε 6 · ε 6 · θ 3 · κ 9 · rolling index 1 · density 1 · position 3
HIDDEN STATE
128 floats per point, caller-owned
OUTPUTS
σ 6 · variance 6 · updated state 128
TOKEN AMORTISATION
refresh every K = 10–50 timesteps; reduces per-step cost from O(NM + M²L) to O(N)
PRECISION
float32 throughout

Full specification, including the 43-feature training-time layout and the amortisation strategy, is version-controlled with the model. Request it with the kernel.

§ 07 — APPLICATIONS

Where the evidence exists, and where we are guessing.

EVIDENCED · PUBLISHED

Railway ballast

Ballast bed design, fouling limits, and the question a track engineer actually asks: at what shoulder geometry and gradation does this section start costing speed? Published in Computers and Geotechnics; origin of the whole line of work, via SNCF CIFRE N° 2023/1116.

EVIDENCED · PUBLISHED

Lunar regolith

The second demonstration case in the same paper. Regolith is granular, it is abrasive, it is poorly characterized, and it is expensive to simulate conventionally — the exact regime where a defensible initial packing changes what the simulation is worth.

ROADMAP — NOT YET EVIDENCED

Bulk powders & processing

Packing density and flow in pharmaceutical compaction, powder-bed fusion, ceramics and food processing use the same mathematics and suffer the same initialization tax. We have not run these campaigns. Treat this as a direction, not a capability.

§ 08 — COMPANY

Research-stage, and saying so.

FammasMazAI is a venture built on published and verifiable work, not on a product surface. Forge is published and reproducible. CHASM is a working research kernel whose remaining gaps are documented above rather than buried in a marketing page.

STATUSResearch stage · pre-commercial
BASEMarseille & Paris, France
FOUNDERMoeeze Hassan
CONVERSATIONSOpen to research collaborations and pilot engagements