What determines a river? A drop lands on a patch of ground and the ground has two options: absorb it, or decline and hand it to gravity, which happens once the soil is saturated. And the same transaction repeats upward through scale: hillslopes draining across their width, subbasins across their length, basins to the river, the river to the sea. Which is why this is really percolation theory, how purely local random connections become global pathways, and the whole continent's drainage assembled out of decisions made by dirt.
Below is that transaction on a lattice. Rain lands on each cell with probability \(p\), the ground holds back a fixed amount \(C\), and the excess is handed to one of the two cells diagonally downhill, left or right, decided at random once and then fixed for good. That is Scheidegger's landscape, about the least you can assume about a tilted rough surface and still get branching, merging streams that scale like real ones.
What makes it interesting is that the handoffs accumulate. Two trickles too small to escape their own cells can meet at a confluence and clear the threshold together, so a cell can carry a river without a single drop having landed on it. Raise \(p\) or lower \(C\) and those overflowing cells link up until the basin flips from disconnected puddles to one river reaching the sea, along a critical curve \(p_c(C)\). Sit right at that edge and resample the rain: the same \((p, C)\) sometimes spans and sometimes does not.
Overflow on an \(L\times L\) Scheidegger basin at rainfall \(p\) and storage \(C\). Background shades the cumulative water \(w(y,x)\) arriving at each cell on a logarithmic scale, dark where the ground is dry and pale where many streams have merged. spanning river, a connected overflow path from top to bottom. Resample \(r\) draws a fresh rain field, wet with probability \(p\) at every cell, and resample \(D\) draws fresh Scheidegger flow directions. Both leave \((p, C)\) untouched, so what changes is the realization, not the parameters.