The Grapes of Wrath

The Frontier Record · Sheet XXXVII

The Grapes of Wrath

On two settlements that destroyed one thousand two hundred and sixty-four wood at their own doors while four of their people slept on the ground — read through Steinbeck, who wrote the chapter about oranges sprayed with kerosene in sight of the hungry.

California, 1939 · the claims, tick 48,117 Run mtbgptmz-5q
The finding The claims were not slow and they were not outvoted. A lean-to held eight and a house costs ten. Goods in this valley are one pool with a ceiling and anything that will not fit goes on the grass and is gone — so a settlement founded on a claim could cut timber for as long as it liked and never once have the price of a roof under cover at the same time. The landing never met it: it lands with a boat that holds twenty. No fork met it either, for as long as the boat called at one beach and a fork could not grow. The day Sheet XXXV pointed arrivals at the forks, it became the whole of their story.

I Four on the ground, and the wood at the door

The record at tick 48,117, after roughly ten thousand four hundred sim seconds — some fifty-two days — of nothing changing:

The coast as the state file has it
SettlementFolkHousesOn the groundWhat it can put things in
the landing2010050 places standing, a depot holding 140
Tove’s claim412a lean-to and one house
Bren’s claim302a lean-to

In the same window, at the doors of those two claims, 1,264 wood rotted on the grass. A house costs ten. That is a hundred and twenty-six houses’ worth of timber destroyed within sight of four people who had no roof.

Which is the shape of the thing, and it is not scarcity. It is destruction, next to want.

There is a crime here that goes beyond denunciation. There is a sorrow here that weeping cannot symbolize. There is a failure here that topples all our success. Steinbeck, 1939 · chapter twenty-five

II The arithmetic

HOLDS.claim was 8. BUILD_COST.house is 10 wood. roomInStores is the sum of what everything standing holds, scaled by condition, and the haul case tips whatever will not fit onto town.outside, where the weather takes it. Two numbers, and one of them is smaller than the other.

The lean-to against the price of a house At eight places, a load of ten wood overruns the shelf by two, and the two that overrun are destroyed — so ten is never banked. At twelve places the same load fits with two places spare. AS IT STOOD — A LEAN-TO HOLDS 8 ON THE GRASS. GONE. a house wants ten — so ten is never banked, and the claim never builds AS IT STANDS — A LEAN-TO HOLDS 12 TWO SPARE twelve, not ten — a lean-to that only just clears the price stops clearing it the first wet fortnight
Twelve rather than ten because placesIn scales what a building holds by its condition. The margin is the point of the number.

Right now Bren’s claim holds wood 1, ore 4, plank 1 — six things in a shed that holds seven, four of them ore it has no kiln to burn. src/sim.ts even carries a branch written to unjam exactly this state, and it is gated on town.stock.wood >= 10: the one number such a settlement can never reach. The escape hatch was fitted with the lock it was meant to open.

❧❧❧

III It was not the ballot

The obvious suspect is the vote, because houses past the first need one. The record clears it twice over.

Tove’s claim put the motion at tick 37,687, days after the newcomers landed, and carried it 4 to 0 — unanimous, every voice in the settlement. Fifty-two days later the house is not standing. mayHouse has been answering yes the whole time, on a single lookup, without ever needing to hold the meeting again.

Bren’s claim never needed a vote at all. wantsBuilding returns 'house' unconditionally while houses === 0. There has been nothing to refuse and nobody refusing it.

What the settlers were told instead, in the feed, in the game’s own words:

agents/log.jsonl Orla could not build: a house wants 7 more wood. Maeve could not build: a house wants 7 more wood.

Said to Orla with four people standing in that yard carrying fifteen wood between them and the lean-to holding five more. Hold that line; section VII comes back to it.

IV Why it surfaced now

Sheet XXXV pointed the boat at the forks. Before that a claim could shrink and could not grow, so nobody was ever housed badly enough at one to notice what its shed held. The moment arrivals were routed by roomFor, both claims filled to beds + ROUGH_SLEEPERS and stopped — leaving exactly two roofless at each, at settlements too small to hold the cure.

The amendment did not create the fault. It delivered people to it. That is the ordinary way a sealed thing is discovered: not by inspection, but by somebody being made to live in it.

V What was changed

  1. The lean-to now holds twelve

    HOLDS.claim, 8 → 12. One number, and it is the whole finding.

  2. A new rung in the ladder check — the shed against the price

    check-economy.mjs now reads HOLDS, BUILD_COST and newSettlement’s own unlocked list, and refuses any founding seat that holds less than the cheapest thing a settlement founded on one may build. Its wording against the old value is set out below.

  3. The check that should have caught it was blind

    /function applyStep\(([\s\S]*?)\n\}\n/ cannot match \r\n}\r\n, and git hands this tree back with CRLF endings. The capture came back empty, so all twenty-nine actions were reported as words applyStep has no case for — thirty-two dead ends, none of them real, and npm run check exited 1 before it ever reached the checks that matter. The fix is one \r?.

  4. A builder was charged twice for a distant site

    The build case debited the stores even for a site the stores cannot reach, so somebody who had carried the whole cost out to the far shore paid for it once out of their pack and once out of a shed sixteen tiles behind them. atHand was already computed two lines above; it simply was not asked.

the new rung, against the old value claim: holds 8, and the cheapest thing a settlement founded on one may build is a house at 10 — it can never bank the price of anything

A check that fails wrongly on half the machines it runs on is worse than no check, because it stops being read. This was the file that would have named a lean-to too small to hold the price of a house, and on the machine where that was happening it was not running. npm run check now passes end to end for the first time in this working tree.

VI Measured

Headless, fixed seed, the same coast left to itself:

At tick 6,000, across all settlements
SettlersHousesOn the groundLost to the grass
before26223570
after30291148

And the repo’s own gate, which runs the real stepSim for twelve thousand ticks with no model holding its hand:

before 12000 ticks · 32 settlers · 3 settlement(s) after 12000 ticks · 39 settlers · 3 settlement(s)

VII Built, measured, withdrawn

Return to the line in section III. Four places in sim.ts ask whether one person can pay for a building — the stores plus that settler’s own pack — and two of the four are what a model is briefed with and answered by. But a raising is not a withdrawal from a warehouse. It is a day when the people who live here turn up at a patch of ground with what they have on their backs, and the thing goes up out of that.

So it was built: handsAt and toHandFor, the yard counted at all four sites, each neighbour’s contribution recorded as a bond and a memory. Then it was measured across five variants against the same seed, and it does not earn its place.

The sweep — tick 6,000, one seed each
VariantSettlersHousesOn the groundLost to the grass
as found26223570
lean-to only — shipped30291148
hands only28253250
lean-to + hands26223160
everything on2719691
Withdrawn

With everything on, waste collapses — 570 to 91, the best figure in the sweep — and houses fall from 29 to 19 while people sleeping on the ground rise from 1 to 6. Roofless is the metric that opened this sheet. The narrower version, without the shed rule, came out level with doing nothing at all.

So it is out, and this paragraph is the record of it rather than a comment in the file. It is a good idea that measured badly, which is the only kind worth writing down.

One thing that sweep exposed and nothing here fixes: in two runs of three, a penned claim weathers its only lean-to below the price faster than it can repair it — too poor to keep the shed that would let it stop being poor. Different fault. Same family.

❧❧❧

VIII The register

Two settlements agreed on a house. One of them agreed unanimously. Neither was refused anything, by anybody, at any point. The wood was cut, carried home, found no room, put down beside the door, and taken by the weather — one thousand two hundred and sixty-four times, at the feet of four people with nowhere to sleep.

Nothing in the valley was against them. The shed was eight and the roof was ten.

src/sim.ts · tools/check-economy.mjs · npm run check green · two files, one number, and a check so it cannot come back.

The Frontier Record · Sheet XXXVII · 28 August