Home▸Everyday Physics▸Beverloo Hourglass Sand Flow (2D)

⏳ Beverloo Hourglass Sand Flow (2D)

2D companion lab: the Beverloo discharge law computed live from neck width and grain size, an angle-of-repose sand pile that builds up bin by bin, and a flip you can trigger any time to watch the cycle restart.

Everyday Physics2DModerate60 FPS📱 Mobile-adapted⇄ 3D version
2d-beverloo-hourglass-sand-flow ↗ Open standalone

This 2D companion drives the same physics its 3D counterpart names but only implies: the Beverloo law, Q = k·√g·(W − c·d)1.5, is computed live from the neck-width and grain-size sliders and actually sets the discharge rate, instead of being a free-running speed slider. A bin-by-bin angle-of-repose algorithm builds the settling pile the same way the 3D version's radial one does, just along a single horizontal axis — click the glass, or the Flip button, to start a new cycle at any time.

⚙ Under the hood

2D hourglass sand-flow lab: the Beverloo discharge law computed live from neck width and grain size, an angle-of-repose sand pile, and a flip you can trigger any time.

beverloo lawgranular flowangle of reposehourglassdischarge rate

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

Why doesn't the flow rate slow down as the top empties?

That's the Beverloo effect itself: grains near the neck form small self-supporting arches, so the weight pressing down on the opening stays roughly constant no matter how much sand is stacked above it — the discharge rate depends on the neck opening and grain size, not on the remaining head of sand.

What does the neck-width slider actually change?

It changes the geometric opening W in the Beverloo formula Q = k·√g·(W − c·d)1.5, which is recomputed and displayed live — narrower necks (or larger grains relative to the opening) sharply cut the flow rate, matching the real nonlinear law rather than a simple proportional one.

How does the pile decide where each grain lands?

Each falling grain is assigned to the horizontal bin under it; if stacking there would exceed the sand's angle of repose (fine sand ~32°, coarse ~41°) or push past the container wall, the grain rolls one bin further out and the check repeats — the same overflow logic the 3D version's radial pile uses, run along a line instead of a ring.

What did you find?

Add reproduction steps (optional)