Particles suspended in a viscous fluid
A snow globe's flakes are small, low-density particles suspended in a liquid far more viscous than air — traditionally glycerine-and-water or a similar mix — and their motion is dominated by drag, not free fall. For a small sphere moving slowly through a viscous fluid, Stokes' law gives the drag force directly proportional to velocity:
F_drag = -6π·μ·r·v (Stokes' law, low Reynolds number) at terminal velocity, drag balances gravity minus buoyancy: v_terminal = 2r²(ρ_particle − ρ_fluid)·g / (9μ)
μ is the fluid's viscosity, r the particle radius, ρ the densities of particle and fluid. Because v_terminal scales with r², small flakes settle far more slowly than the eye expects — halve the particle radius and it falls four times slower — which is exactly why the "snow" in a snow globe drifts down over tens of seconds instead of dropping like sand.
Simulating the shake
At rest the flakes have settled to the bottom under gravity, damped by drag until their velocity is effectively zero. A shake is modelled as an impulsive velocity kick applied to every particle at once — a burst of random or correlated motion large enough to lift the settled flakes back into suspension — combined with turbulent swirl terms so the flakes don't all move in perfect lockstep. After the impulse, the same drag law that governs settling takes back over: velocities decay exponentially toward the (much slower) terminal fall speed, so the simulation naturally produces the characteristic snow-globe arc — a fast initial swirl that smooths out and gradually slows into a gentle, near-vertical drift.
on shake:
for each particle: v += randomImpulse() + swirlField(position)
each frame:
v += gravity * dt
v -= dragCoefficient * v * dt // exponential decay toward v_terminal
position += v * dt
collide against the glass sphere boundary
Why it settles the way it does, not instantly
If flakes fell in a vacuum they would accelerate under gravity alone and hit the bottom in well under a second. Two things slow that down here: the drag term above, which caps the fall speed at v_terminal almost immediately (the time to reach 90% of terminal velocity for a Stokes-drag particle is a fraction of a second, but that terminal speed itself is tiny for small, near-neutrally-buoyant flakes), and simple buoyancy — because the flakes are only slightly denser than the surrounding fluid, the effective gravitational force pulling them down (ρ_particle − ρ_fluid)·g is much smaller than gravity alone would suggest. Real snow-globe flake material is deliberately chosen close to neutral buoyancy for exactly this reason: the closer the two densities, the longer and more dreamlike the settling looks.
Collisions with a curved boundary
The particles are confined inside a sphere, so every step must test each particle's distance from the globe's centre against the interior radius and, if it has exceeded it, reflect the velocity component along the surface normal and reposition the particle just inside the boundary. This is a simple sphere-vs-point collision — cheap enough to run for hundreds of particles every frame — but it is what keeps the flakes visually contained rather than drifting through the glass, and it's also what produces the subtle pile-up of flakes along the lower inside curve of the globe once they've mostly settled.
Frequently asked questions
Why do the flakes fall so slowly compared to real snow or dust in air?
They're suspended in a liquid far more viscous than air, so Stokes drag dominates their motion. Terminal velocity under Stokes drag scales with the square of the particle radius and with the density difference between particle and fluid, both of which are small here — small flakes in a near-neutrally-buoyant liquid simply have a very low terminal fall speed.
What actually happens physically when you shake the globe?
The shake applies a sudden impulse to every particle's velocity, lifting the settled flakes back into suspension and stirring the fluid into turbulent swirls. As soon as the impulse ends, drag immediately starts pulling the velocities back down toward the fluid's slow terminal settling speed, which is what produces the initial fast swirl that gradually smooths into a gentle drift.
Why are the flakes denser than the fluid but still fall slowly?
Because the relevant driving force is the density difference, not the density itself. Snow-globe flake material is chosen close to the fluid's own density, so buoyancy cancels out most of gravity's pull, leaving only a small net force — combined with drag, that produces the long, lazy settling time.
Try it live
Everything above runs in your browser — open Snow Globe and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.
▶ Open Snow Globe simulation