Skip to content
Trilithon Engine

Built for destruction

An in-house Swift and Metal engine for Mac that adds destruction to Jolt Physics, with a deterministic simulation at its core. It isn’t licensed to other developers; this page shows what it does.

Click the frame to apply load.

  1. Build, seed and inputsConnected to the next step by: run
  2. Simulationfixed stepConnected to the next step by: every time
  3. Same statesame digest
Same inputs, same collapse.
Determinism

Deterministic by design

Every fracture, every collapse and every piece of rubble comes out of a seeded simulation on a fixed step. The same build, seed and inputs reach the same state, checked step by step with a state digest.

Today that lets us replay any session exactly and compare balance changes run for run. It is also the foundation for destruction at this scale that more than one machine can agree on.

  1. Impactpoint and impulseConnected to the next step by: seeds
  2. Voronoi seedsaround the hitConnected to the next step by: clip
  3. Convex cellsone body each
One member, from hit to cells.
Fracture

Impact-driven Voronoi fracture

Structures are built from convex members. A hit seeds a Voronoi pattern at the impact point and the member splits into convex cells, each its own physics body. Cut faces show aggregate and rebar.

An office tower breaking apart floor by floor beside an intact high-rise
A tower failing in a test city.
Collapse

Progressive collapse along load paths

Each building knows what holds up what. When a member fails, its load moves to its neighbors, and the ones that can’t carry it fail next.

  1. Fragmenta body with massConnected to the next step by: falls
  2. Landsstays in the worldConnected to the next step by: adds
  3. Loadon what is belowConnected to the next step by: fails or holds
  4. Crush or settle
What happens to a piece of rubble.
Rubble

Rubble keeps its weight

Debris doesn’t fade out. It stays in the world as bodies with weight: it loads and crushes what it lands on, and you can fly into it, shoot it and knock it down again.

  1. GeometryG-buffer in tile memoryConnected to the next step by: same pass
  2. LightingConnected to the next step by: then
  3. PostConnected to the next step by: then
  4. Frame
One render pass on Apple silicon.
Renderer

Single-pass deferred renderer

Metal draws the G-buffer and lights it in one render pass, keeping the G-buffer in tile memory instead of writing it out. Shadows, ambient occlusion, AgX tone mapping and MetalFX upscaling follow.

Performance

Measured, with conditions

The engine is held to performance gates on an M5 in Low Power Mode, on purpose: a gate that passes there leaves headroom at full power. An M1 Max is the older-machine check.

Benchmark records
MeasureResultConditions
10,000 bodies asleep0.002 ms per physics step, p95Apple M5, Low Power Mode, 2026-09-29. Budget 0.75 ms.
2,000 awake convex hulls1.81 ms per physics step, p95Apple M5, Low Power Mode, 2026-09-29. Budget 6 ms.
Crater edit to the terrain0.076 ms, worst caseApple M5, Low Power Mode, 2026-09-29. Budget 1 ms.
Fracture fuzz test38,050 cells from 1,000 members, none failed2026-09-29
Four office buildings collapsing at once8.80 ms per frame, p95; 7,113 bodies at the endApple M5, Low Power Mode, high quality, v0.9.0, 2026-10-01
25 office buildings collapsing at once37.26 ms per frame, p95; 39,766 bodies at the endApple M5, Low Power Mode, high quality, v0.9.0, 2026-10-01
Play at Medium on an M1 Max31 frames per second; GPU 42 ms per frame6720 × 3780 display (25 million pixels), every pixel drawn, v0.14, 2026-10-05
Play at High on an M1 Max24 frames per second; GPU 50 ms per frame6720 × 3780 display (25 million pixels), every pixel drawn, v0.14, 2026-10-05

From the engine’s benchmark records and the game’s session telemetry. p95 is the 95th percentile over the run. The M1 Max figures predate the 4K render cap with MetalFX upscaling that followed them; it hasn’t been measured on the M1 since.

Trade-off

Not every rung passes. Nine office buildings collapsing at once is the first that goes over the frame budget in Low Power Mode, and we publish that too.

Built on

Jolt Physics, and what we add

Rigid bodies, collision and the solver are Jolt Physics, compiled from source behind a C++ bridge. Trilithon Engine adds fracture, the load graph and progressive collapse, rubble with weight, the deterministic replay, and the Metal renderer. It is Mac-only and isn’t offered to other developers.