CS2 mechanicVERIFIEDUpdated 2026-07-14

CS2 smokes are a 32×32×32 voxel grid of 20-unit cells

A CS2 smoke is a 32 × 32 × 32 voxel grid of 20-unit cells — 640 units per side — Morton-coded and networked in the demo itself, not a sphere and not a particle cloud. That is why a CS2 smoke pours down stairs and around corners: its shape is real occupancy data computed by the server, and it is recorded, so a replay can reproduce the exact volume that was on screen rather than approximate it with a ball.

Reverse engineered from raw demo bytes in July 2026 on current-build recordings; the rendering law decompiled from the current build's own shader package and the client binary (Linux libclient SHA 29ad0f8…).

Grid
32 × 32 × 32 voxels
Cell size
20 u
Volume covered
640 u per side
Encoding
Morton (Z-order) coded
HE opened core radius
200 u
HE feather
smoothstep 200 → 240 u
HE influence limit
250 u
Residual density in the hole
2%
Hole recovery
smoothstep(0.5 s, 5 s) ^ 1.8
HE trail entries tracked
5
Watch a real pro CS2 match in 3D

Plays in your browser · no download · no account

How it was measured

Most replay tools draw a CS2 smoke as a sphere because a sphere is what the entity looks like from the outside. The game does not work that way: the server computes which cells of a fixed grid are filled, and it networks that occupancy field. Reading it out of the demo bytes gives the exact shape the players saw — including the parts that flowed down a staircase or refused to fill a doorway.

The grid is fixed at 32 cells per axis with 20-unit cells, and cell indices are Morton-coded so that spatially close cells stay close in memory. Nothing about that is inferred: it was recovered by reading the raw frame data in the demo and validating the decode against rendered volumes.

The rendering side was taken from the game's own compiled pixel shader, decompiled and ported one-to-one rather than approximated, so the density falloff and lighting response are the game's and not a lookalike.

The most interesting single finding is what an HE does to a smoke. It is not a bullet capsule and not a generic disturbance — the client keeps a five-entry circular buffer of HE blasts and uploads their positions and times to the shader separately. Only samples within 250 units participate; the opened core is 200 units with a smoothstep feather out to 240; density in the hole drops to 2% rather than to nothing; and the hole closes on a smoothstep from 0.5 s to 5 s raised to the power 1.8, with the residual transient reaching zero at 7 seconds.

Every fact on this page, with its tier

CS2 smoke voxel format: 32³ grid, 20 u cells, Morton-coded

Value
32³ cells of 20 u
Confidence tier
VERIFIED
How it was derived
Reverse engineered from raw demo bytes and validated by decoding recorded smokes back into rendered volumes.
Evidence
The decoded occupancy reproduces recorded smoke shapes, including non-spherical fills, on current-build demos.

The smoke volume pixel shader

Value
ported 1:1
Confidence tier
VERIFIED
How it was derived
Decompiled from the current build's compiled shader package and ported without re-tuning.
Evidence
The shipped volume shader is the decompiled one; it is explicitly not to be re-tuned by eye.

HE opens a smoke through a separate five-entry trail: 200 u core, 240 u feather, 250 u influence, 2% residual density, recovery 0.5 → 5 s

Value
200 / 240 / 250 u, 2%
Confidence tier
T3 VERIFIED
How it was derived
Located by RTTI anchors on the client's smoke-volume scene object and its fixed-size circular buffer, then read out of the constant-buffer writer and cross-checked against the decompiled shader.
Evidence
The pixel law is exact: only samples within 250 u participate, the core is 200 u with a smoothstep(200, 240) feather, opacity reaches 2%, and recovery is pow(smoothstep(0.5, 5, age), 1.8) with the transient term reaching zero at 7 s.

Open questions — what is not known

Smoke detonation timing is not captured.

The grenade's flight, bounce and rest are reproduced tick-exactly on the current build. The delay between the projectile resting and the volume beginning to fill is not part of that gate and is not claimed.

Other CS2 mechanics

Last updated 2026-07-14 — the date of the measurement, not of this page's rendering. What the confidence tiers mean. Memorin is not affiliated with or endorsed by Valve; Counter-Strike 2 is a trademark of Valve Corporation.