Files
Soul_Game/FINDINGS.md
T
mmcghen 3f2c5e2f18 Expansion phase: settlements — the North joins the world
Runs 5-6 logged in FINDINGS.md (soul layer validated: nature debris
0.000 vs selfish 0.225 after two years; the ledger works).

Towns are now real spatial structure: TownDef seeds (South at the
bottom of the map, North at the top), NPCs affiliate with a home town,
communal duty serves your own settlement (buildings are town-tagged,
founding uses the town centroid and per-town shelter caps), and each
town raises its own shelters and granary. Generational (North) soul
profile added — temperament only until the knowledge system lands.
Map shows town labels; rosters and CSVs carry town columns.

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

155 lines
7.2 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
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.