Impact Lab: Real-Time 3D Physics and Destruction

Impact Lab: Real-Time 3D Physics and Destruction

A follow-up to Cube Disintegration that added two distinct interaction modes — and pushed the physics engine harder.


After the cube destruction experiment confirmed that real-time browser physics was viable, Impact Lab was the next step: same physics foundation, more deliberate interaction design, more parameters to tune.

Two modes. Bullet Impact: a precision crosshair targets specific chunks. You aim, click, watch a small piece of the target be punched out. Grid Smash: a wholesale structural collision where a large mass hits the entire grid at once. Same physics engine, two different experiences of the same destruction. Click it here to access.

What it is

An interactive sandbox for high-velocity collisions. Both modes share the underlying engine — rigid-body dynamics, broadphase collision pruning, sleep states for stationary objects — but expose it through different controls. Bullet Impact rewards precision; Grid Smash rewards scale.

What stayed with me

The recognition that sleep states are the unsung optimisation in real-time physics. When five hundred chunks have settled to the ground, the engine doesn't need to recompute their positions every frame. Putting them to sleep — flagging them as dormant until something disturbs them — frees the CPU to handle the chunks that are actually moving. That single optimisation is why Impact Lab could push past Cube Disintegration in scale.

The other lesson, on the interaction side, was that the same physics can produce wildly different experiences with different controls. Bullet Impact and Grid Smash are technically identical underneath. They feel completely different. A reminder that physics is necessary but not sufficient — the interface to the physics is where the experience lives.

Part of the early experiments — pushing the physics envelope, finding out where it breaks.

Stay in the loop

Get notified when new simulations, tools, and technical deep-dives are published.