◆ THE LAW, FROM THE BEGINNING ◆
Ask most generated worlds that question and there is no answer to give. They are made of noise, which repeats reliably and explains nothing: the hill is there because a hash said so, and a hash has no reasons.
These worlds are made of a law instead. Four small numbers decide which places get built and which do not, and because the decision is arithmetic rather than a hash, it can always be shown. Every hill, every lit window, every room, every wall. This page is that law from the beginning, in about five minutes.
Start with five numbers ↓ or jump straight to the instruments ↗
Take the whole numbers from ten to thirty. Keep every third one, counting from ten. Then throw some of those away: exclusive-OR each with 2, and drop it if the answer divides by four. That is the entire law. Here is what it does.
every third from ten
10 → 10 XOR 2 = 8, and 8 ÷ 4 leaves 0 → dropped
13 → 13 XOR 2 = 15, and 15 ÷ 4 leaves 3 → kept
22 → 22 XOR 2 = 20, and 20 ÷ 4 leaves 0 → dropped
So the law keeps 13, 16, 19, 25, 28. Work it out on paper and you will get the same five, and so will anyone else, for ever. Nothing here is random and nothing is hidden. That is the whole trick, and everything below is this same decision at a different size.
Change the five numbers yourself ↗
Now ask it about a landscape. For a column of earth, count how many of the last few addresses the law kept. That count is how high the ground stands. Keep four of the last twelve and you are four tiers up; keep one and you are nearly at the bottom. No noise is added anywhere, so the terraces you walk on are the pattern of kept and dropped, stood on end.
Because the law repeats, the landscape repeats, and you can say exactly when. The Indexin Terraces come round every fifty-six columns. The Long Count takes 45,158,400, which is four small numbers and longer than anyone will ever walk.
Point the law indoors and the kept addresses become columns, walls, doorways and stairs instead of hills. That part is easy to claim and hard to trust, so it is not claimed: before a room is drawn, every route through it is walked, out and back, by the same collision and support a person would use. A building you cannot get through is worse than no building, so one is never placed.
Across a sweep of 1,280 buildings generated from every combination of floors, stair orientation, stride, mask and modulus, every route in every one of them passed. That is 5,760 routes and 3,139,680 steps, checked without a person watching.
A checker that only ever agrees is not a checker. The useful half is the refusal: ask for a building whose rooms the law leaves unreachable, and it does not quietly draw a broken one. It declines, and names the route that could not be completed. The same is true of the arithmetic — ask for a remainder the modulus cannot produce and the law raises rather than guesses.
This matters more than the successes. Eight demonstrations that work prove the demonstrations were chosen well. One honest refusal proves the checking is real.
So here is one, run rather than described. A stack of three floors is compiled from stride 3, mask 1, modulus 2. As built it is walkable: the objective route chamber-11 is reached and all five routes pass. Then a block of rock three wide, three deep and four high is dropped in at x16 z6 y2, square across the middle of that route, and the kit is asked the same question again.
objective_reached = False
floor-0 ok
floor-1 ok
floor-2 REFUSED from (7, 3.4, 7) to (17, 3.4, 7)
the walk stopped at x=15.720000000000008, hard against the block at 16
chamber-0 ok
chamber-11 REFUSED from (7, 3.4, 7) to (17, 3.4, 7)
the walk stopped at x=15.720000000000008, hard against the block at 16It does not draw a broken building. It names which routes failed, which leg of each could not be completed, and how far the walk actually got before the rock stopped it — 15.72, a body's width short of the block at 16. That is a walk under real collision and support, not a line traced on a map.
The two twins were asked the same thing and refused identically, down to the last bit of that 15.720000000000008 — a refusal that differed between the Python and the JavaScript would be a bug in one of them.
The arithmetic declines the same way. The modulus 4 can only ever leave a remainder of 0, 1, 2 or 3, so asking it to drop residue 7 is not a hard question but an impossible one:
a residue the modulus cannot produce refuses: invalid drop residue (both twins) a residue equal to the modulus refuses: invalid drop residue (both twins) a stride of nothing refuses: invalid stride, mask, or sieve period (both twins) every residue dropped allowed: keeps nothing at all
The last line is the one worth reading twice. Dropping every residue is a fair question with nothing in the answer, and an empty answer is not an error. The refusals are for requests that cannot be met, never for answers nobody wanted.
Reproduce all of it: python3 tools/show-refusal.py in sitoolz. It asks both twins, prints the refusals verbatim, and exits non-zero if the two ever disagree.
A laboratory rather than a tour, so here is the tour. These are the ones to open first; the inspector carries its own index across the top, and there are seventeen benches in there now.
The instruments use some vocabulary of their own. None of it is complicated; it just has not been said simply anywhere yet.
All of the above is the same body of work seen from different sides. The instruments prove the properties; the worlds are where you use them. Ten ranges are written by this law, and two games are played on ground it laid.
Everything new, in one page ↗ Play Silo Line ↗ Back to Range Arcade ↗