You throw a grenade into the corner of a warehouse. Concrete chunks scatter left. Smoke curls toward the ceiling. A brick lands about four feet out. You reload the save and do it again, same spot, same grenade. The brick lands six feet out. The smoke goes right. Nothing in the room changed.
So what moved?
Game engines deliberately inject randomness into their physics simulations. Not sloppiness, not a bug. A feature, built with some care, because perfectly identical explosions feel viscerally wrong to the human brain in a way that's hard to articulate but impossible to ignore.
The seed that starts the chaos
Every modern physics engine, whether Unreal Engine 5's Chaos system, Unity's PhysX integration, or a bespoke in-house solver, runs its explosion calculations through a pseudorandom number generator. When a grenade detonates, the engine doesn't retrieve a stored animation. It generates a seed, a number that kicks off a chain of calculations, tied to variables that shift constantly: the exact millisecond of detonation, the player's current position in memory, how many other physics objects are active in the scene at that frame. Change any one of those inputs and the seed changes. Change the seed and the whole cascade of debris, force vectors, and particle trajectories changes with it.
Think of it like a handful of dice. Same dice every time. Same rules governing them. Completely different outcome.
The engine assigns each debris fragment a randomised initial velocity within a defined range. A brick might receive between 8 and 14 metres per second of outward force, drawn randomly from that band. Its angular spin gets its own random value. Smoke particles spawn at slightly varied positions within the blast radius, each inheriting a velocity with a small stochastic offset. None of these numbers are wild. They're bounded. The engine is less a chaos machine than a tightly managed lottery, which is honestly the more impressive trick.
Why pure physics wouldn't work instead
You might ask why engines don't just simulate the actual physics with full fidelity: pressure waves, thermodynamics, fluid dynamics for the smoke.
Because a full-fidelity explosion would take roughly 200 milliseconds to calculate on high-end hardware, and a game running at 60 frames per second has about 16 milliseconds per frame to do everything. The entire scene. The answer is approximation: simplified force models, pre-authored particle systems with randomised parameters, and rigid-body physics for the larger debris only. The randomness isn't a workaround for bad physics. It's what makes simplified physics feel like something.
Consider two players, Maria and James, who both buy the same shooter. Maria plays cautiously and rarely triggers the same explosion twice in quick succession. Every detonation feels fresh, slightly surprising. James speedruns the opening level and triggers the same barrel explosion dozens of times in the same spot. Without seeded randomness, he'd see an identical choreographed event every single time, and his brain would clock it as a looping animation within three repetitions. The illusion would collapse. The randomness is specifically protecting James from his own habits.
Smoke behaviour deserves its own mention. Volumetric smoke in modern engines uses a simplified fluid simulation, sometimes called a voxel-based solver, where each voxel exchanges velocity and density with its neighbours every frame. The initial conditions fed into that solver include randomised turbulence values, and small differences in those starting numbers compound over dozens of frames into smoke that curls in genuinely distinct shapes each time. It's the butterfly effect, engineered on purpose and kept on a leash.
The one thing most players misread
People assume the variation they see comes from environmental interaction: the explosion bouncing off different surfaces, some simulated wind, something tangibly physical. Sometimes that's true. Mostly it isn't.
The bulk of the variation is upstream of any environmental interaction. Baked into the initial conditions before the first piece of debris touches anything. The environment does matter for secondary effects, a fragment ricocheting off a wall will follow a genuinely different path than one travelling unobstructed, and that's real-time collision detection doing real work. But two identical explosions in an empty flat field still look different, and that's purely the seeded randomness at the moment of detonation.
What's worth sitting with is that the whole system is built on a kind of engineered honesty about imprecision. The people who built these simulations made peace with the fact that physically wrong but variably wrong beats physically wrong and repetitively identical. Your eye forgives inaccuracy. It does not forgive a loop. That's not a technical limitation they worked around. It's a design principle they leaned into, and the explosions are better for it.