RangeBlends · Time is just another index

Ruler Flow

Water moving down the basin from Ruler Rivers. Nothing here is simulated. Every droplet's position is a pure function of (seed, droplet, t) — so you can jump to t = 1,000,000 and it arrives there instantly, with no frames to catch up on, and two people watching the same seed at the same t see the same water in the same place.

Walk this world in Wander ↗

flow

The basin, running

Droplets accelerate as they merge, because a bigger stream carries water faster — the speed comes off the stream's own order.

t = 0.00 droplets 0 streams 0 state stored 0 bytes

Why the jump button is the point

A particle simulation cannot answer “where is everything at t = 10⁹?” without running a billion steps to get there. This one answers it in the time it takes to draw one frame, because the position was never the result of the previous frame — it is a lookup at an address.

Same argument as the terrain: walk 40 km away and back and the mountain is byte-identical, because it was never stored. Here the same trick is turned on time instead of space.

What that buys a game. A river that is identical on every client with no packets sent about it. Rejoin a session an hour late and the water is exactly where everyone else sees it. Rewind, replay, fast-forward — all the same lookup.

How a droplet finds the sea

Each stream knows only two things: which segments are its own, and where it joins its parent. That is enough — from any birth site, following parents down gives the whole route to the mouth. All 300 droplets in the first test reached it.

The route is stored as cumulative travel time, not distance, so speed can vary along the way. A droplet on an order-1 headwater moves at 0.71; by the time it is on an order-8 trunk it is at 1.83. Finding it at time t is a binary search on that time axis.

The one honest caveat. The paths are built once per seed, so the page holds them in memory. The droplet's position is what is indexed, and that is the part with no state.

Sibling worlds, same seed: Ruler Rivers →  ·  Ruler Range →

The basin is grown from run(g) and nothing else — confluence positions from v₂(g+1), tributary lengths off the spectrum ladder. Flow speed is 0.55 + 0.16·order. Droplet birth sites come from the same integer hash as everything else, so a seed reproduces the water as exactly as it reproduces the riverbed.