Clustered Village Scale

cluster-village-10

Everybody lived. 150 ticks, 30 minds, clusters=10 share=1.

30
minds
150
ticks
80
exchanges
hand-overs that completed
2740
deliberations
1310
planner
expansions
18668780
resolver
transitions
0
truth violations
the world kept its own counsel

Relations

Rows give, columns receive. 80 exchanges between 30 of 30 villagers. The most connected is smith8, with 2 partners. In this engine the one who knows everybody pays for it: belief grows with meeting people rather than with population.

forager1digger1smith1forager2digger2smith2forager3digger3smith3forager4digger4smith4forager5digger5smith5forager6digger6smith6forager7digger7smith7forager8digger8smith8forager9digger9smith9forager10digger10smith10
forager17
digger1
smith11
forager27
digger2
smith21
forager37
digger3
smith31
forager47
digger4
smith41
forager57
digger5
smith51
forager67
digger6
smith61
forager77
digger7
smith71
forager87
digger8
smith81
forager97
digger9
smith91
forager107
digger10
smith101

Economy

Every completed hand-over, in time. The first was at t7 (smith8 to digger8) and the last at t133. A chain that closes once is a demonstration; a chain that keeps closing is an economy.

t7: smith8 to digger8 (nugget8)t7: smith9 to digger9 (nugget9)t7: smith10 to digger10 (nugget10)t7: smith1 to digger1 (nugget1)t7: smith2 to digger2 (nugget2)t7: smith3 to digger3 (nugget3)t7: smith4 to digger4 (nugget4)t7: smith5 to digger5 (nugget5)t7: smith6 to digger6 (nugget6)t7: smith7 to digger7 (nugget7)t14: forager5 to smith5 (berries135)t14: forager6 to smith6 (berries136)t14: forager7 to smith7 (berries137)t14: forager8 to smith8 (berries138)t14: forager9 to smith9 (berries139)t14: forager10 to smith10 (berries140)t14: forager1 to smith1 (berries131)t14: forager2 to smith2 (berries132)t14: forager3 to smith3 (berries133)t14: forager4 to smith4 (berries134)t23: forager4 to smith4 (berries144)t23: forager5 to smith5 (berries145)t23: forager6 to smith6 (berries146)t23: forager7 to smith7 (berries147)t23: forager8 to smith8 (berries148)t23: forager9 to smith9 (berries149)t23: forager10 to smith10 (berries150)t23: forager1 to smith1 (berries141)t23: forager2 to smith2 (berries142)t23: forager3 to smith3 (berries143)t33: forager4 to smith4 (berries164)t33: forager5 to smith5 (berries165)t33: forager6 to smith6 (berries166)t33: forager7 to smith7 (berries167)t33: forager8 to smith8 (berries168)t33: forager9 to smith9 (berries169)t33: forager10 to smith10 (berries170)t33: forager1 to smith1 (berries161)t33: forager2 to smith2 (berries162)t33: forager3 to smith3 (berries163)t73: forager4 to smith4 (berries224)t73: forager5 to smith5 (berries225)t73: forager6 to smith6 (berries226)t73: forager7 to smith7 (berries227)t73: forager8 to smith8 (berries228)t73: forager9 to smith9 (berries229)t73: forager10 to smith10 (berries230)t73: forager1 to smith1 (berries221)t73: forager2 to smith2 (berries222)t73: forager3 to smith3 (berries223)t83: forager4 to smith4 (berries234)t83: forager5 to smith5 (berries235)t83: forager6 to smith6 (berries236)t83: forager7 to smith7 (berries237)t83: forager8 to smith8 (berries238)t83: forager9 to smith9 (berries239)t83: forager10 to smith10 (berries240)t83: forager1 to smith1 (berries231)t83: forager2 to smith2 (berries232)t83: forager3 to smith3 (berries233)t123: forager4 to smith4 (berries284)t123: forager5 to smith5 (berries285)t123: forager6 to smith6 (berries286)t123: forager7 to smith7 (berries287)t123: forager8 to smith8 (berries288)t123: forager9 to smith9 (berries289)t123: forager10 to smith10 (berries290)t123: forager1 to smith1 (berries281)t123: forager2 to smith2 (berries282)t123: forager3 to smith3 (berries283)t133: forager4 to smith4 (berries294)t133: forager5 to smith5 (berries295)t133: forager6 to smith6 (berries296)t133: forager7 to smith7 (berries297)t133: forager8 to smith8 (berries298)t133: forager9 to smith9 (berries299)t133: forager10 to smith10 (berries300)t133: forager1 to smith1 (berries291)t133: forager2 to smith2 (berries292)t133: forager3 to smith3 (berries293)

Clustering

The most crowded place, tick by tick. Density is what this engine charges for. Population is nearly free when the work is spread, and an agent with thirty neighbours costs about five times one with none. The peak here is 1 in one place at once.

Everyone

The spread a mean would hide. In one run of the winter the best hunger rate belonged to the strategy that also had a corpse.

whostrategyhungry/tickcold/tick worstactedwintersstore by yearend
forager1-0.354-0.9634--lived 150
forager2-0.354-0.9634--lived 150
forager3-0.354-0.9634--lived 150
forager4-0.354-0.9634--lived 150
forager5-0.354-0.9634--lived 150
forager6-0.354-0.9634--lived 150
forager7-0.354-0.9634--lived 150
forager8-0.354-0.9634--lived 150
forager9-0.354-0.9634--lived 150
forager10-0.354-0.9634--lived 150
smith1-0.467-1.0025--lived 150
smith2-0.467-1.0025--lived 150
smith3-0.467-1.0025--lived 150
smith4-0.467-1.0025--lived 150
smith5-0.467-1.0025--lived 150
smith6-0.467-1.0025--lived 150
smith7-0.467-1.0025--lived 150
smith8-0.467-1.0025--lived 150
smith9-0.467-1.0025--lived 150
smith10-0.467-1.0025--lived 150
digger1-0.762-1.008--lived 150
digger2-0.762-1.008--lived 150
digger3-0.762-1.008--lived 150
digger4-0.762-1.008--lived 150
digger5-0.762-1.008--lived 150
digger6-0.762-1.008--lived 150
digger7-0.762-1.008--lived 150
digger8-0.762-1.008--lived 150
digger9-0.762-1.008--lived 150
digger10-0.762-1.008--lived 150

Thinking

What 2740 funded deliberations came to. content is having what you want; exhausted is a proof that nothing achieves it. They used to share a word.

exhausted
186068%
plan
67024%
no-goal
2108%

Minds ran short of avoids (130). Doing less than asked is sayable here on purpose. Every silent truncation this project has had to dig out had the same shape: a cap that did less and reported success.

Scale

The question the design has to answer before share means anything: at 10 clusters (30 agents), how much of the smith’s 64-bit working memory does one cluster cost on its own, and what happens when share clusters are told to meet at one square? Measured directly against compileFrame and a full start() run of the scenario above — not estimated.

29/64
smith frame bits
share=1, flat from 3 to 100 clusters
~310
ms / agent
flat across 3, 10, 30 clusters
share=2
first overflow
naive per-group trades-with
share=5
first overflow, tuned
trades-with scoped to own triple only

Frame width at clusters=10, by share — the smith’s frame, the tightest of the three roles in the baseline. Two implementations of the same knob, because the naive reading of “generated by index” and a deliberately scoped one land in different places:

sharegroup size bits — naive bits — own-triple trades-with
11 29/64 29/64
22 no-frame 38/64
33 no-frame 47/64
44 no-frame 56/64
55 no-frame no-frame
66 no-frame no-frame

Requested at the top of this run: share = 1, 3, 6. At 3 and 6, both implementations overflow — the naive one immediately (share=2), the deliberately-scoped one by share=5. share is not free headroom to dial: it is a cliff, not a slope, because grounding reads objects within kHops of the shared square whether or not anyone is physically standing there this tick. A believed workplace two hops from a shared square is still two hops away — which means the survey’s own “an acquaintance not co-located costs 0 bits” finding does not transfer here: co-located and within-kHops are not the same test, and a share-group puts every member’s workplace inside kHops=2 by construction, every tick, whether anyone trades that tick or not.

Population, on its own, is exactly as cheap as the households anchor predicts. clusters from 3 to 100 at share=1 left the smith’s frame unchanged — still 29/64 bits, 24 ops — because ownMap plus a scenery() scoped to one cluster means a mind never hears about a cluster it doesn’t belong to. Wall time over a real start() run tracked the same story: 332.6 ms/agent at 3 clusters, 307.1 at 10, 303.2 at 30 — flat, the households shape, not the fort’s. This design sits squarely on the households side of the ladder: share is the fort’s hub risk reintroduced on purpose, and clusters alone is free the way isolated corners always are.

Frame numbers from a probe against the real compileFrame/KB/schema machinery (not the ECS loop); population and wall-clock numbers from a full start() run of the scenario built above. Neither edited village.ts or any other repo file.

Every figure here is derived from the run's own event stream and ledgers. Nothing on this page is computed that the run did not already say, so if a section looks wrong, the run is wrong.