Mechanics Relationship Map

A readable map of the simulation systems, how they exchange state, and which mechanics are artistic approximations versus closer physical models.

Companion pages
Mechanics Status Report
The Explosive Lab
Solver Internals
Why This Version

Checkpoint: 5110b65
Updated: 2026-05-01

System Overview

Creation + Scenes material params, batches test scenes, cursor tools MPM Particles solids, ferro, charged, bio P2G stress, G2P forces SPH Fluids density, pressure, viscosity CSF surface tension SDF World rigid collision, heat magnetic SDF sources Eulerian Air temperature, smoke, vapor airtight pressure, velocity bio + automata fields Field Solvers magnetic Poisson electrostatic Poisson SDF, airtight masks Render + UI debug views, overlays heat, vapor, smoke air temp, pressure, bio drive charge/M raster inputs field force outputs collision + SDF heat

Solid arrows are high-confidence coupling paths. Dashed arrows are softer or more approximate couplings that are useful visually but not fully physical.

Frame Loop

grid / field state particle state coupling dt = 1/120 s physics substep 1 raster M, ρ, T 2 Poisson ∇²φ 6 air 3 · MPM p2g grid g2p 4 · post forces qE chain XPBD 5 SPH H = −∇φ inject drag substep order render passes UI · cursor params next frame no accumulator: one substep per rendered frame frame loop · particles write the grids, the grids solve, the particles read back
grid / field state particle state sampled coupling
One frame, in order. Particles rasterise their state into the grids; the magnetic and electrostatic Poisson solves run on those grids; MPM reads the field back at g2p. Post-force passes and SPH follow, the Eulerian air solve injects from particles and drags them back, then render and UI close the frame.

Why the ordering matters

The simulation is field-mediated. Particles do not only collide with each other; they write state into grids, the grids solve global effects, then particles read those fields back.

StageCommon failure when misordered
Raster before solveStale charge or magnetization makes forces lag and feel like a filter.
Scene-only magnetic solvePrevents ferro from sustaining its own field after the source is gone.
Post force passesKeeps SSBO binding pressure low and isolates chain/Coulomb behavior.
G2P coloring lastDebug views see the final force, thermal, and field state for that frame.

Mechanics Atlas

MPM materials

Elastic, plastic, brittle, thermal, charged, ferro, bio, and foot-demo particles share P2G/G2P plumbing with material-specific stress branches.

SPH fluids

Neighbor-density fluids with pressure, viscosity, XSPH smoothing, CSF surface tension, thermal states, and MPM contact.

Eulerian air

MAC-grid velocity, temperature, smoke, vapor, airtight pressure, blast, reaction diffusion, and continuous automata.

SDF world

Kinematic colliders with friction, thermal diffusion, and magnetic source presets. Mostly one-way collision into particles.

Magnetics

SDF/cursor/particle magnetization writes M, Poisson solve gives H, and MPM reads Kelvin force plus surface Maxwell stress.

Electrostatics

Charge rasterization, Poisson solve, and post-MPM Coulomb acceleration for positive/negative ion materials.

Thermal effects

Particle heat softens, burns, melts, boils, vents vapor, pressurizes cavities, changes magnetic phases, and drives regrowth.

Visualization

Debug views expose velocity, stress, temperature, magnetic fields, charges, bio fields, automata drive, and authored layer colors.

Coupling Matrix

runs every frame does not exist yet closed loop = feedback MPM particles the hub Eulerian air magnetic solve electrostatic SDF world SPH XPBD ropes heat, vapor, smoke temp, pressure M ⇄ H charge ⇄ E collision, heat no momentum back contact heat, occupancy constraints, after MPM three loops close; the SDF one does not, which is why terrain never moves
grid / field solver particle system
Every coupling in the table below, as a graph. MPM is the hub: air, the magnetic solve and the electrostatic solve each close a two-way loop with it. The SDF arrow runs one way only — particles feel collision, friction and heat, but the terrain never receives momentum back, drawn as the return path that does not exist.
ProducerConsumerState exchangedRelationship
MPMEulerian airheat, vapor source, smoke source, velocity impulse, bio seed, automata seedOne-way per frame, then air feeds back through sampled temp/pressure/fields.
Eulerian airMPMair temperature, airtight pressure, bio gradients, automata gradientsFeedback loop for burning, cooling, puffing, regrowth, and colony steering.
MPM ferro and magnetic SDFMagnetic solvermagnetization M, material occupancy, source fieldTwo-field solve: scene-only H for Langevin response, total H for force/stress.
Magnetic solverMPMH, |H|, grad |H|^2, occupancy-gradient cuesKelvin body force, chain force, surface Maxwell stress, demag pressure, pseudo-thickness support.
MPM charged particlesElectrostatic solvercharge densityPoisson solve gives E for Coulomb post-pass. Triboelectric charge generation is still a placeholder.
SDFMPM/SPHdistance, normal, friction, heat, material presetKinematic boundary. SDF does not receive momentum back from particles yet.
SPHMPMnearby occupancy and contact heatSoft coupling for contact and thermal exchange, not a fully unified pressure solve.
XPBDMPM particlesconstraint corrections on selected particle graphsDistance constraints for rope and future foot/cloth style rigs layered after MPM motion.

Ferrofluid Lens

cursor / scene pole Kelvin lift: grad |H|^2 surface Maxwell stress Tait pressure + demag pressure pseudo-thickness bridge
What changed in this checkpoint
  1. Packed magnetic cells add pressure.
  2. Thin connected sheets get mild bridge tension.
  3. Cursor-follow lift keeps more source force.
  4. Spike stress is more surface-weighted.

What should look physical

Large volumes should climb when the source creates a broad upward gradient. The climb should be a column or wick, not a rigid hook. Stronger fields should increase surface corrugation and spike height before they merely fling isolated grains.

What is still approximate

The ferro free surface is not a full Rosensweig instability solve. It is a stack of practical terms: weakly compressible Tait pressure, Kelvin body force, field-aligned stress, demag pressure, occupancy capillarity, and pseudo-2.5D thickness.

Reliability of thickness

Thickness is reliable as an art-directable closure for a 2D slice. It helps with tunnels, columns, and fluffy/porous materials. It is not a conserved hidden-volume model, so extreme values can hide real separation or make sheets feel too sticky.

Thermal, Explosion, and Regrowth Lens

Thermal chain

Particles carry temperature and material-specific thermal coupling. Hot particles inject heat, vapor, smoke, and sometimes combustion into air. Air temperature then cools or heats particles on the next G2P pass.

particle heat -> air -> cooling / pressure

Explosion chain

Combustion and sealed-charge materials feed vapor, heat, airtight pressure, and blast impulses. The cavity mask decides whether gas can vent or builds pressure into a local explosion.

fuel + trapped vapor -> pressure impulse

Regrowth chain

Ash now acts mostly as scaffold/support. Live regrowth seeds the bio and automata fields; ash alone no longer seeds a strong dark automata front. Recovery accelerates color restoration.

ash scaffold + live fronts -> restored color

Debugging Map

Useful views when a mechanic feels wrong

SymptomFirst view to checkLikely subsystem
Ferro moves like a filter over the fieldMagnetic field + material occupancyExternal-drive gate, scene-only field, Kelvin cap, field iterations
Ferro collapses to a dotMaterial occupancy and stressOverpacked cells, insufficient EOS pressure, too much self-field
Spikes are too weakMagnetic field gradient + surface force toggleSurface Maxwell stress, capillary relief, field broadness
Regrowth turns blackAutomata colony + material colorAsh seeding too much automata, recovery too slow, crumble shadow too strong
Explosions feel weak or too strongAirtight pressure + vaporVent mask, vapor source, combustion heat, blast pass

Page relationship to the in-app graph

The pipeline graph view is excellent for frame-order debugging. This page is meant to answer a different question: when a material does something surprising, which fields and couplings could be responsible?

Use the status report for implementation truth, this page for mental model, and the in-app views for live evidence. The useful workflow is: pick the symptom, identify the field path, toggle one force family, then compare against the expected visual from the diagrams.