Track (bead-on-wire)
Marble (color = individual)
Stalled (friction > gravity here)
This 2D companion strips the 3D marble run down to the physics that drives it: a bead-on-wire model where each marble's tangential acceleration is computed directly from the local slope of a closed, hill-modulated track and a tunable rolling-friction coefficient, so raising friction or lowering gravity can genuinely stall a marble mid-climb instead of just slowing an animation down.