RangeBlends · One seed · one law · a whole drainage basin

Ruler Rivers

Stream order is already a ruler sequence. Two order-n streams meet to make an order-n+1, so order-n confluences thin out by a factor of two per order — which is v₂, exactly. This basin is grown from rule 30's edge run and nothing else, and then its Horton ratios are measured against what real rivers do.

Walk this world in Wander ↗

basin

The network

Every confluence is at a generation where run(g) rises; the tributary's order is v₂(g+1) and its length comes off the spectrum ladder.

trunk — high order, few, long headwaters — order 1, many, short click a row in the table to light up one order

Horton's laws, measured

Horton (1945) and Strahler (1952) found two ratios hold across real basins: the bifurcation ratio Rb (how many streams of one order per stream of the next) and the length ratio Rl. Nothing here was tuned to hit them — the numbers are whatever the sequence produced.

orderstreamsmean lengthRbRl

Numbers to check against: real drainage basins run Rb = 3–5 and Rl = 1.5–3.5.

Why this isn't a costume

Rb lands on 3.00 and stays there. Not near three — on it, to every decimal the count allows, at every order below the top few where the sample is too small to mean anything. That is not a fitted parameter. It is what a ruler schedule does, and it happens to be where real basins sit.

The honest one: Rl runs low. Around 1.3–1.8 through the middle orders, against 1.5–3.5 in the field — the low edge of natural, not the middle of it. And order 1 breaks the pattern outright (Rl under 1), because headwaters here are leaves with nothing above them to shorten them. A real basin's headwaters are cut by the hillslope they start on. This one's aren't cut by anything.

What the spectrum adds. Tributary length comes off the ladder, not off 2v, so the jumps at v=6, 8 and 12 show up as confluences where the river abruptly gets much bigger than the one before. Real geology does that too, and noise-based generators never do — they have no reason to.

Same seed, same library, different world: Ruler Range →

The topology — which stream joins which, at what order, at what length — is transcendental-free and identical on every machine. The drawing uses sin and cos to turn that topology into coordinates, and is not bit-exact across platforms. That is the right split: a game needs the network to agree, not the brush-strokes. Shares assets/rulerlib.js with Ruler Range.