Files
Soul_Game/FINDINGS.md
T
mmcghen 676a9f3f31 Organic construction v2: three verified fixes, one open problem
Fixes (headless-verified): homes founded at the habitual sleeping spot
within reach of the community (not at distant stone mines); night sends
everyone to bed so beds are used and rough nights actually occur; a bed
must exist at arrival - floor-sleepers at full shelters now count as
unsheltered. Diagnostics added: incomplete_sites stat column, founding
logs.

Open (documented in FINDINGS.md, paused by request): the loop builds
forward but cannot rebuild after loss - winter crises ruin shelters and
recovery stalls (4 foundings in 240 days, no granary after two famines).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 14:58:43 -04:00

207 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 34 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 490553).
---
## 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 3164 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 89 — 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 (paused here):** the loop cannot recover from loss. The
winter crisis (food labor starving firewood logistics) ruins shelters,
and rebuilding then stalls — 4 foundings in 240 days, sites incomplete
for months, no granary despite two famines. Organic construction works
forward but not backward; post-collapse recovery needs its own
diagnosis. Suspects: founding cadence still too rare under post-famine
food pressure; construction-material demand losing priority to the
food reserve during recovery.
---
Soul layer: done and validated (runs 56). 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.