Home▸Everyday Physics▸Push Box Simulator (2D): Force, Friction & Momentum

🧪 Push Box Simulator (2D): Force, Friction & Momentum

Top-down 2D companion to the 3D warehouse crate-pusher: drag the mass, floor-friction and push-force sliders, then walk your avatar into the crate to shove it across the floor into the delivery zone.

Everyday Physics2DEasy60 FPS📱 Mobile-adapted⇄ 3D version
2d-push-box-simulator ↗ Open standalone

This 2D companion strips the 3D warehouse scene down to a top-down view built for reading the physics rather than orbiting a camera around it: you walk an avatar directly into the crate, and whether it budges depends on a genuine force balance — push force has to clear the static-friction threshold μ·m·g before the crate accelerates, and once it's coasting a kinetic-friction term bleeds its speed back to zero the moment you stop pushing. Crank the mass up or the floor grip down and the same push force that used to send the crate gliding into the green delivery zone suddenly can't budge it at all — the same Newton's-second-law-plus-friction relationship the 3D version demonstrates, just easier to watch happen in a straight line.

⚙ Under the hood

Top-down 2D box-pushing lab: adjust crate mass, floor friction and push force, then walk your avatar into the crate to deliver it to the target zone — with a live distance/speed readout and a real static-vs-kinetic friction threshold gating whether the crate moves at all.

forcefrictionmomentumnewton's laws

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

Why won't the crate move even though I'm pushing?

Your push force has to exceed the static-friction threshold (roughly μ × mass × 9.81) before the crate breaks loose. Raise the push-force slider, drop the mass, or lower the floor-friction slider until the force wins.

Why does the crate keep sliding after I stop pushing?

Once the crate has velocity, kinetic friction decelerates it gradually rather than stopping it instantly — the same reason a shoved box on a smooth floor coasts a little before it settles, just scaled by whatever friction value you've set.

How is this different from the 3D version?

Same force/friction/mass relationship, but viewed from directly above on a flat canvas instead of a rendered 3D warehouse — easier to see exactly how far the crate travels per push.

What did you find?

Add reproduction steps (optional)