# Start here: from a seed to a walkable world in twenty minutes

For people and for models. Everything below runs on a fresh checkout with Python 3.10+ and Node 22, no other installs.

## Minute 1: prove it works

```bash
python3 tools/everything.py --quick      # every Python test and every twin suite, one table
python3 tools/audit.py                   # the constitution as a linter: every engine's card, twins, fixture, test, credit
```

Every row is a law written twice (Python and JavaScript) and checked against one fixture. If the table is all PASS, every number the kit gives you is the same on every machine.

## Minute 3: the ruler

```python
import sitoolz as si
R = si.rulerland
[R.v2(g + 1) for g in range(2600000, 2600016)]      # the rank of each column: a rank-k column every 2^k
R.hill_at(2600959)                                    # {'g': 2600959, 'k': 12, 'h': 75, 'r': 384}: the biggest hill of the region
R.prize_columns(2600000, 2604095)[:3]                 # rank >= 5 and an even square remainder: about one column in 64
R.warp_code("rulerhills", 2600959, -120)              # an address anyone can type into Wander
```

One integer, the column number, and everything in the world hangs off it. (`cards/rulerland.md`)

## Minute 6: a range

```python
T = si.terrain
w = T.window("ruler-hills", 4000, -48, 192, 96)       # heights, colour classes, the light cone's spans, prizes, the gate
w["H"][10][10], w["C"][10][10], len(w["prizes"]), w["gate"]["code"]
list(T.WORLDS)                                        # eighteen worlds; the levelled-up ones register themselves:
import sitoolz.primerails, sitoolz.folds, sitoolz.cascade, sitoolz.octaves
T.height("vortex-sea", 100, 50), T.height("prime-rails", 959, -24)
```

A world is a law and a table of knobs; make your own by passing a dict in `WORLDS`' shape. (`cards/terrain.md`, `demo/BUILD_YOUR_OWN.md`)

## Minute 10: the people, the dice, the proof

```python
C = si.citylaw; C.sites_in(T.G0, 0, 4095)[:3]         # settlements on rank-7+ columns, in the same places for everyone
P = C.plan("city", 2600959); P["n"], P["tallest"]     # the whole plan is a formula of g
rng = si.indexrng.Index("my world"); rng.roll("foe", 300, 6)   # the same roll on every machine, no state
N, cert = si.primes.create_prime(64); si.primes.verify_certificate(cert)   # a prime built, not hunted, with its proof
si.puzzles.hint("530070000600195000098000060800060003400803001700020006060000280000419005000080079")
```

## Minute 14: draw it, twice

```bash
python3 ../sitoolz-showcase/maps.py                  # every law as a PNG from the Python
node ../sitoolz-showcase/snap.cjs                    # the same maps from the JavaScript, compared pixel for pixel (needs a headless Chrome on 9223)
```

## Minute 17: walk it

Open `../sitoolz-showcase/demo/walkable-world/` from a static server over `~/mywork`: Wander's laws for the ground (`js/wander.src.js`), the kit's mesher for the triangles (`js/mesh.js`), two hundred lines of WebGL for the view, a worker for the far tiles, the celestial sky by the hour. The page's `HOWTO.md` has the twenty lines that make it; `demo/how-wander-is-built/` explains the seven layers.

## Minute 20: read it back

```bash
python3 experiments/unblackbox_terrain.py            # a forest, told no law, finds the prize rule as rank >= 4.29 and sqrem_even
```

Then pick anything in `ROADMAP.md`'s open lines, or a law of your own: `cards/HOW_TO_ADD_A_LAW.md` is the whole procedure. The laws are Lars Rocha's (`CREDITS.md`).
