Homeβ–ΈPhysics & Mechanicsβ–ΈSnow Globe Dynamics (2D)

Snow Globe Dynamics (2D)

A cross-section snow-globe lab: falling snow inside a circular glass boundary driven by gravity, swirl turbulence and a periodic (or manual) shake impulse, with live sliders and a numeric readout panel.

Physics & Mechanics2DModerate60 FPSπŸ“± Mobile-adapted⇄ 3D version
2d-interactive-snow-dynamics-simulation β†— Open standalone

This 2D companion keeps the same Euler-integrated physics as the 3D snow globe β€” gravity accumulating into velocity, velocity damping, and a circular "glass" boundary that reflects velocity on contact β€” but renders it as a flat cross-section so the mechanics stay easy to read: a side panel exposes gravity strength, swirl/wind strength and flake density, an auto-shake timer periodically fires an outward-and-upward impulse at every flake (or you can trigger it manually), and a live readout tracks particle count and average flake speed as the snow settles and swirls inside the globe.

βš™ Under the hood

2D cross-section snow-globe simulation with Euler-integrated gravity, swirl turbulence and circular-boundary collision response, plus a periodic or manual shake impulse.

snow dynamicsparticle interactionsfluid floweuler integrationcollision response

2D Β· HTML5 Canvas 2D Β· 60 FPS target Β· runs fully client-side, no install

Why does the snow settle instead of falling forever?

Each flake rests once it reaches the ground disk inside the globe β€” its downward velocity is clamped to a small bounce-back value, mirroring how real snow settles under gravity and drag rather than accelerating indefinitely.

What triggers the swirling motion?

A per-particle sine/cosine turbulence term, scaled by the Swirl/Wind slider and boosted right after a shake, pushes each flake sideways β€” the boost decays over a few seconds so the globe settles back to a gentle drift.

How is this different from the 3D version?

Same Euler integration, damping and shake-impulse physics, but projected onto a flat circular cross-section instead of a rendered 3D sphere β€” useful for reading the underlying motion without an orbiting camera.

What did you find?

Add reproduction steps (optional)