Commit Graph

8 Commits

Author SHA1 Message Date
mmcghen 0c0c7088f8 Known-structures memory + bigger map: fix the East re-founding loop
Root cause of the homeless East: FoundOwnShelter searched all buildings by
proximity (within 30 units), so a lone selfish builder who wandered off to
gather wood for the walls came back, missed their own foundation, and
founded a NEW one - 5,900+ abandoned foundations per run, none finished.

Fix (per the exploration architecture): structures are known like resource
nodes. NPCs gain a KnownStructures set; a builder registers the home they
lay and returns to it via known-structures memory however far they roamed,
instead of re-founding. Children inherit their family's known buildings.
Result: 5,953 -> 31 founding events, East now houses itself with COMPLETED
homes and is the best-fed town (0.84), still lowest-knowledge/highest-debris
as selfishness should be.

Also expanded the world 768 -> 1152 with towns pushed to wider cardinal
points and resources scaled to area, giving the four cultures more room and
less accidental center overlap. Full 240-day four-town run in 189s.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:11:59 -04:00
mmcghen 10e772d087 Run 15: known-nodes exploration (addendum stage 1), per-town debug, O(n^2) fix
Exploration addendum stage 1: per-NPC known-nodes. NPCs gather only from
resources they've personally sensed (radius 22) or been told about;
founders seed with home ground, children inherit parents' maps, node
knowledge diffuses between neighbors like skills. Starving NPCs venture
outward and sense as they go - non-random needs-driven exploration, the
seed of first contact. Repopulation preserved (seeding + survival food
fallback): all towns fed, population stable 86-109 over 240 days.

Debug screen rebuilt: the ~68-row per-villager roster (overflowing at
four-town scale) replaced with a per-town summary - pop, fed%, knowledge,
debris, state breakdown, buildings, culture-colored, plus world
births/deaths. Scales to any population.

Performance: added phase timers and measured instead of guessing - npc.Tick
was 94% of cost, O(n^2) via TickResting calling RestingOccupancy (full
population scan) per building per resting NPC. Fixed with a once-per-tick
occupancy cache on Building. npc phase ~4x faster and now linear; full
240-day four-town run in 180s, faster than the pre-exploration baseline.
Profiling scaffolding removed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 21:17:24 -04:00
mmcghen f9e22e872f Run 13: the full world - four towns, resources, bonds, spatial grid
World scaled 3x (768x768) with all four towns at compass points, each
running its own soul culture: North generational, South nature, West
materialist (new profile), East selfish. Two new resources: Ore (metal
tier) and Herb (medicine - mends health, reason to forage, trade good).
Spatial hash grid replaces O(n^2) proximity scans (soul pressure,
neighbor, teacher) - 3.6x headless speedup at ~80 NPCs. First social
verb beyond work: pair-bonds - settled adults who keep warm company pair
up; warmth now accrues from proximity not only gifts; bonds break at
death. Reproduction deferred (bonds-first per plan).

The four-town thesis fully realized on one engine (240-day run):
North know 1.27 clean, South nourish 0.85 clean, West prosperous but
debris 0.23, East hungriest 0.60 and lowest knowledge 1.08. Positive
cultures stay soul-clean, negative ones carry real debris, all from
behavior weights - nothing scripted. 99 bonds, 80 deaths, four living
societies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 17:04:19 -04:00
mmcghen 3ffde3d9e9 Run 11: satiation and quarry return - clean two-year stability
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>
2026-07-21 15:55:39 -04:00
mmcghen e661a3f739 Run 10: organic recovery achieved - minerals are not a commons
Recovery blocker was material, not motivational. Two fixes: (1) harvest
floors and commons debris apply only to living, regenerating resources -
stone does not regrow, so "leave half" merely stranded the world supply
and kept the homeless homeless forever; minerals now quarry to depletion
for every soul equally. (2) Matter conservation: idle variety-gathering
touches only renewables, and packs may only shed what the land replaces
- lossy make-room had milled 900+ stone to dust during demand flapping.

Verified over 260 headless days: year-1 winter still wrecks the naive
town, it rebuilds in 20 days, famine survivors found the first granaries
from hunger memory, and year-2 winter passes with zero ruins on stored
reserves. The town has a history now: naive youth, catastrophe,
learning, resilient maturity.

Remaining tuning in FINDINGS.md: granary sprawl, post-famine nourishment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 15:23:18 -04:00
mmcghen 8aab1a763b Calibrate the soul layer: innocent harvests, sane gifts, healing path
Run 5 findings: justice arrived (selfish health 31-64 vs nature 100, all
108 refusals theirs) but two pathologies emerged: the whole village maxed
others-regard debris because the commons penalty line (50%) sat above the
nature harvest floor (45%) and debris had no clearing path; and warmth-
weighted asking + near-total gift transfers produced a 2,501-gift winter
food-swapping loop.

Fixes: commons line lowered to 40% (respectful harvesting never grazes
it; strip-harvesting lives deep inside it); gifts capped at 3 with a
kept reserve of 5; asking gated on genuine hunger; and giving now heals
the giver slightly (-0.003 others-regard vs +0.02 per refusal) — harm
stays an order of magnitude easier than healing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:49:15 -04:00
mmcghen ed78d560ff Soul layer: imprints, warmth echoes, and consequences
Ports the Unity POC soul systems into the sim:
- Warmth echoes: villagers remember who fed them (+0.15) and who turned
  them away (-0.25). Ask-for-food targeting runs on memory, not
  omniscience; the remembered-cold are not asked. Echoes fade daily.
- Refusing the hungry while holding food marks the refuser (others-regard
  debris) and is logged; empty-handed is not refusal.
- Harvesting below the 50% commons line marks the taker per unit taken.
- Soul-to-soul atmospheric pressure (SoulFieldSystem port): encased souls
  darken nearby atmospheres, clear souls lighten them.
- Debris costs biologically: nourishment drains faster and meals restore
  less as the soul encases.
- Instrumentation: avg_debris + refusals in daily stats; per-villager
  nourish/health/debris; refusals in the contact log; map dots dim with
  encasement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:07:33 -04:00
mmcghen 721acbd1aa South town MVP: world sim, seasons, granary, contrast test + findings
Godot 4.7 C# world simulation per SPEC.md (with 2026-07-21 amendments).
15 NPCs, 5-state machine, demand-driven work, soul-imprint triad data
model, seasons with winter frost, granary, need-based gift economy,
selfish-soul contrast wiring, daily/per-villager/gift CSV logging.

FINDINGS.md documents the four soak experiments: the dead paradise,
the buffers winning, the emergent hungry gap, and the contrast test
proving the four-town thesis (and that selfishness wins until the
soul-consequence layer exists).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 12:55:30 -04:00