3ffde3d9e9
Granary satiation: hunger scars motivate storage only until town capacity could carry a winter (pop x 45); sprawl of ~10 granaries falls to the sated level. Quarry return: packs stuck with undroppable stone after rebuilds made starving porters; unneeded stone goes back to the quarry (matter conserved, packs unclogged). Also corrects the record: run 10's zero-ruin year-2 claim came from CSV contamination by orphaned headless child processes (console wrapper kills didn't kill the tree). Clean verified result now: year-1 catastrophe and rebuild, then year-2 at 0.77 nourishment, zero new ruins, 100% condition, textbook granary sawtooth. Open in FINDINGS: accessible stone exhaustion plateaus housing below population - a Phase 3 economy question (deeper quarrying, stockpiles). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
249 lines
12 KiB
Markdown
249 lines
12 KiB
Markdown
# WorldSim — Soak Experiment Findings (July 2026)
|
||
|
||
Four long-run experiments against the South (Nature) town MVP. Each run:
|
||
15 NPCs, 256×256 world, seed 12345, ~240 simulated days (2 years) at
|
||
accelerated speed. Data: `soak_stats.csv` (daily), `soak_npc_days.csv`
|
||
(per-villager dominant states), `soak_gifts.csv` (every gift, with names).
|
||
|
||
---
|
||
|
||
## Run 1 — Baseline (no seasons): the dead paradise
|
||
|
||
**Setup:** constant regeneration, upkeep + food demand only.
|
||
|
||
**Result:** perfectly stable, perfectly inert. 200 days: wood held a ±1%
|
||
band, shelter condition pinned at 100%, **zero trades**, no roles — every
|
||
villager Socializing-dominant ~114 of 119 days, 78% of waking life idle.
|
||
The village completed all construction and expansion by day 3–4 and then
|
||
had nothing left to want.
|
||
|
||
**Lesson:** a village is a metabolism, not a project. Equilibrium without
|
||
pressure produces no society: no differentiation, no exchange, no
|
||
structure. Abundance makes generosity unobservable.
|
||
|
||
---
|
||
|
||
## Run 2 — Seasons (regen throttle only): the buffers win
|
||
|
||
**Setup:** 30-day seasons; winter cuts food regen to 5%, wood to 40%.
|
||
Granary added (clay walls — first clay use), need-based gift trigger.
|
||
|
||
**Result:** winter became a *worked* season — gathering 4,889 ticks/day vs
|
||
1,857 in summer, wild stocks visibly drained and refilled. But nourishment
|
||
ran the identical sawtooth year-round, the granary sat untouched at
|
||
150/150 through two winters, and trades stayed at **zero** across 240 days.
|
||
|
||
**Lesson:** three compounding buffers (the sustainability floor acting as a
|
||
~360-unit hidden savings account, personal pack reserves, wild food budget
|
||
exceeding winter need) meant scarcity never reached an individual. Pressure
|
||
that only raises labor doesn't create interdependence.
|
||
|
||
---
|
||
|
||
## Run 3 — Frost: the hungry gap
|
||
|
||
**Setup:** winter now *decays* standing food ~7%/day toward 15% (frost
|
||
kills the larder); granary draws deepened; anti-redeposit rule.
|
||
|
||
**Result:** the simulation came alive.
|
||
- **First trades in sim history: 21** (17 deep winter, 4 early spring) —
|
||
exactly when granary-empty met neighbor-with-food.
|
||
- **Granary sawtooth textbook**: full through autumn, empty by winter day
|
||
~25, refilled within 4 days of spring. Both years.
|
||
- **The sim reproduced the "hungry gap"** — a real agricultural phenomenon
|
||
neither designed nor named in the code: worst hunger (village nourishment
|
||
0.21) fell in *early spring*, after stores ran out but before the land
|
||
regrew past harvestable thresholds.
|
||
- Crisis cascaded: the food emergency pulled labor from heating (firewood
|
||
reserves dipped to 10, condition below 100% for the first time).
|
||
- Balanced: severe hunger, zero lasting health damage, both years.
|
||
|
||
**Lesson:** storage limits + decay + regrowth lag ⇒ emergent seasonality of
|
||
need. Sharing is a *response*, not a behavior: 480 days of abundance
|
||
produced zero exchanges; ten days of genuine need produced twenty-one.
|
||
Still missing: individual roles — identical souls in a global work queue
|
||
respond identically (winter gather ticks all within 490–553).
|
||
|
||
---
|
||
|
||
## Run 4 — The contrast test: 3 selfish souls among 12
|
||
|
||
**Setup:** villagers M/N/O run the East (Selfish) soul profile. Same
|
||
engine, same possibility space; only behavior weights differ: low
|
||
sustainability (strip nodes to ~15% vs the 50% commons floor), low
|
||
generosity (refuse gifts; excluded from asking), low community bias (no
|
||
communal work at all), high accumulation (double carry, standing hoard).
|
||
|
||
**Result — the four-town thesis validated:**
|
||
- Selfish villager-days: **0 build ticks** (vs 104/day for nature souls),
|
||
gather 69 vs 269, **rest 0** (never tired), socializing 1,369 vs 921.
|
||
A visible leisure class living off a working village.
|
||
- Gift network: 11 gifts, all nature→nature. The selfish never gave and
|
||
never needed to receive. First individual differentiation appeared:
|
||
**Villager_A gave 4 of 11 gifts** — the village's generous one.
|
||
- The 12 communal souls absorbed 15 souls' worth of burden without a
|
||
single ruin.
|
||
|
||
**The central finding: selfishness strictly won.** Most leisure, least
|
||
fatigue, fullest bellies, zero costs, no pushback. This is not a balance
|
||
bug — it is the empirical case for the game's soul layer. Economics alone
|
||
cannot make selfishness cost anything; that is the job of imprints,
|
||
debris, echoes, and social memory (the Unity POC's warmth-echo system).
|
||
The soul-consequence layer is not flavor on top of the economy — it is
|
||
the only thing standing between the South town and being farmed by the
|
||
East.
|
||
|
||
---
|
||
|
||
## Run 5 — The soul layer, uncalibrated: everyone a sinner
|
||
|
||
**Setup:** warmth echoes (memory replaces omniscience), refusal debris,
|
||
commons-line harvest debris, soul-to-soul atmospheric pressure, debris
|
||
metabolic tax (faster drain, weaker meals).
|
||
|
||
**Result:** justice arrived — all 108 refusals belonged to the selfish
|
||
three, whose health collapsed to 31–64 while nature souls held 100 (the
|
||
selfish never rest, so they have no healing loop — laziness blocking
|
||
recovery is fully emergent). But two pathologies: (1) the whole village
|
||
ratcheted to maxed others-regard debris, because the 50% commons penalty
|
||
line sat above the nature souls' own 45% harvest floor and debris had no
|
||
clearing path — harm without healing; (2) warmth-weighted asking plus
|
||
near-total gift transfers produced a 2,501-gift winter food-swapping
|
||
loop, and the universal debris tax turned the hungry gap into famine
|
||
(village nourishment 0.00).
|
||
|
||
**Lesson:** a moral system needs calibrated innocence and a redemption
|
||
path, or it converges to universal guilt and reads as noise.
|
||
|
||
## Run 6 — The soul layer, calibrated: the ledger works
|
||
|
||
**Setup:** commons line lowered to 40% (below any respectful floor);
|
||
gifts capped (keep 5, give ≤3, ask only when genuinely hungry); giving
|
||
heals the giver (−0.003 others-regard vs +0.02 per refusal — harm ~7×
|
||
easier than healing).
|
||
|
||
**Result — the design document, in numbers:**
|
||
- **Nature souls: debris 0.000 after two years.** The innocent are
|
||
innocent.
|
||
- **Selfish souls: 0.225 and climbing.** The debris gap is total and
|
||
driven entirely by how each soul lives.
|
||
- Gift ping-pong dead (2 gifts); the contact log is 18 refusals — in the
|
||
hungry gap the only villagers with surplus are the hoarders, so the
|
||
starving ask them, are refused, and learn. The village's warmth map is
|
||
a map of learned coldness pointing at three names.
|
||
- Material consequences within one lifetime are mild — the selfish stay
|
||
comfortable. **The sim's justice is written in the souls, not the
|
||
outcomes.** That is correct: in the full game, the ledger cashes out
|
||
at death (heavy debris carries forward; the rebirth verdict; the grave
|
||
nobody tends). The sim now produces exactly the input reincarnation
|
||
consumes.
|
||
|
||
---
|
||
|
||
## Next
|
||
|
||
## Run 7 — Organic construction v1: the stone-lock collapse
|
||
|
||
**Setup:** two towns (South nature+selfish, North generational); all
|
||
construction quotas removed. Shelters founded after three unsheltered
|
||
nights (beds are real: 3 + modules); granaries founded from surplus.
|
||
|
||
**Result:** a construction boom (8 shelters, multiple granaries by day
|
||
10), then **total civilizational collapse by day 40** — every building
|
||
ruined, and both towns spent the remaining 200 days homeless among the
|
||
monuments. Cause: a priority inversion. The homeless-gather-stone rule
|
||
preempted every other communal priority, so once ruins made everyone
|
||
homeless, all communal souls locked onto stone forever — foundations got
|
||
laid, walls (wood) never did, firewood hauling and granary stocking
|
||
ceased entirely, and the emergency rule prevented the emergency from
|
||
ever ending.
|
||
|
||
**Lesson:** in a needs-driven economy, priority ordering *is* the
|
||
constitution. An urgent rule that outranks the work needed to resolve it
|
||
deadlocks the society. (Also: surplus-founding without scarcity memory
|
||
produced granary sprawl by day 5 — buildings must be founded by lived
|
||
need, not by momentary abundance.)
|
||
|
||
**Fixes → run 8:** construction sites outrank homeless stone-gathering
|
||
(finish the walls before founding another foundation); homeless founding
|
||
defers while any shelter is under construction; granary founding
|
||
requires hunger memory + surplus, not surplus alone.
|
||
|
||
## Runs 8–9 — Organic construction v2: fixed forward, broken backward
|
||
|
||
Headless debugging (runs driven from the CLI) found and fixed three real
|
||
bugs: **wilderness homes** (founders built wherever their pack filled —
|
||
usually at a stone mine 100+ cells out; homes now rise at the founder's
|
||
habitual sleeping spot, within reach of the community), **sleepless
|
||
nights** (low-fatigue villagers socialized all night, so beds went unused
|
||
and rough nights — the founding trigger — never occurred; night now sends
|
||
everyone to bed), and **floor-sleeping** (arrivals at a full shelter
|
||
counted as sheltered; a bed must exist when you lie down in it).
|
||
|
||
**Verified working:** bootstrap founding near town, ~2,200 construction
|
||
deliveries, first roofs by day 3, three seasons of stability.
|
||
|
||
**Open problem (later resolved in run 10):** the loop cannot recover from
|
||
loss. The winter crisis ruins shelters and rebuilding stalls.
|
||
|
||
## Run 10 — The mineral question: recovery achieved
|
||
|
||
Demand diagnostics found the recovery blocker was *material*, not
|
||
motivational: homeless villagers correctly demanded stone (462/525
|
||
villager-days) but could not get it, twice over:
|
||
|
||
1. **The commons ethic stranded the stone.** Respectful souls won't take
|
||
the last half of any deposit — but stone doesn't regrow, so once all
|
||
deposits sat at the floor, the world's remaining stone was morally
|
||
untouchable and the homeless stayed homeless forever. *Fix: the
|
||
harvest floor is an ethic of regrowth — floors and commons debris now
|
||
apply only to living, regenerating resources. Minerals quarry to
|
||
depletion, for every soul equally.*
|
||
2. **Lossy packs milled the mountains to dust.** Idle variety-gathering
|
||
mined stone as busywork, and the make-room rule vaporized cargo on
|
||
every demand flap — 900+ stone destroyed in packs. *Fix: idle
|
||
gathering touches only what regrows, and packs may only shed what the
|
||
land replaces. Minerals are mined on purpose and conserved.*
|
||
|
||
**Correction:** run 10's original "zero year-2 ruins" claim was
|
||
contaminated — the headless console wrapper orphaned child sim processes
|
||
that kept writing to later runs' CSVs. (Instrumentation lesson: kill
|
||
process trees; distrust out-of-order data.) Clean reruns showed the
|
||
recovery loop worked but the town *cycled* — collapse each winter,
|
||
rebuild each spring — with chronic post-famine hunger.
|
||
|
||
## Run 11 — Enough, and the stone-mules: clean stability
|
||
|
||
Two fixes closed it: **granary satiation** (hunger scars motivate
|
||
storage only until the town's capacity could carry a winter — enough is
|
||
a real quantity; sprawl of ~10 granaries fell to the sated level), and
|
||
**quarry return** (villagers whose packs filled with undroppable stone
|
||
after rebuilds became starving porters, unable to gather food while
|
||
carrying a house on their backs; unneeded stone now goes back to the
|
||
quarry).
|
||
|
||
**Clean verified result:** year-1 catastrophe and rebuild as before;
|
||
then year-2 nourishment steady at 0.77, **year-2 winter with zero new
|
||
ruins and 100% condition**, textbook granary sawtooth (1,200 → 0 →
|
||
refilled). Organic civilization: naive youth, catastrophe, learning,
|
||
stable maturity — now on trustworthy data.
|
||
|
||
Open (Phase 3 economy, not a bug): accessible stone ran dry during the
|
||
rebuild (construction + quarry-return overflow at full nodes + selfish
|
||
hoards), so housing plateaus below population — a stable, fed town with
|
||
a permanently under-roofed minority. Wants deeper quarrying/metal and
|
||
real stockpiles.
|
||
|
||
---
|
||
|
||
Soul layer: done and validated (runs 5–6). The expansion phase begins:
|
||
|
||
1. **Towns as spatial structure**: multiple settlements with their own
|
||
centroids, buildings, and granaries; NPCs affiliated with a home town
|
||
but free to roam — the blend space between towns becomes real.
|
||
2. **The North (Generational) town**: second settlement; its signature
|
||
knowledge/teaching system (SPEC §5) is the largest unbuilt spec piece.
|
||
3. Inter-town contact and trade routes (Phase 3); object-level soul
|
||
residue traveling with traded goods.
|
||
4. Save/load round-trip (SPEC §9 amendment) — still outstanding.
|