ladder
a fish ladder is a row of stepped pools: the slowest pool caps the rate of the whole thing. this is sawyer's 30 task line, a benchmark from 1993. drag tasks between stations (or tab to a task and use the arrow keys). a task cannot sit upstream of anything it depends on. keep every station under the takt, use as few stations as you can, then see how close you got to the proven optimum.
block height is task time. the dashed line is the takt (cycle time); a station over it turns red.
now run it
a balance is balanced on paper. real station times vary. this simulates your balance with lognormal station times at the variability you pick, a buffer of the size you pick between neighbouring stations, and stations that block when the next buffer is full and starve when the previous one is empty. 3000 units after a 300 unit warm-up, in your browser.
part of noorps/ladder: solvers benchmarked against published optima, a simpy simulator (this browser one is checked against it, same random streams, identical throughput to floating point precision on a 20 cell grid), and the numbers behind the claims. the optimal balances were proven by or-tools cp-sat.