⏳ 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.
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.
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.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install
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.
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.
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.