Lily MarketDocumentation
MARKET OPEN
DOCSThe lab

The lab

Same seed, same errand stream, three ways to run a pond. The lab exists to ask whether the market actually earns its keep.

Three mechanisms

CENTRAL SCHEDULER
An omniscient dispatcher assigns each errand to the nearest free frog with enough stamina, at a fixed contract price of 75% of the reward. The best case for top-down control.
FIXED QUEUE
Errands form a FIFO line. The first free frog takes the oldest errand no matter how far away it is, and gets the full reward. Simple, fair, and blind to geometry.
AUCTION MARKET
The mechanism the rest of this site runs on. Frogs price each errand themselves and undercut each other in a descending auction. No dispatcher anywhere.
The three allocation modes. Everything else, from the pond plan to how fast a frog tires, is identical across runs.

Because the errand stream is seeded, all three mechanisms face the exact same demand at the exact same moments. Any difference in the results comes from coordination alone.

What gets measured

METRICMEANING
ThroughputErrands completed as a share of errands created.
Sunlight cost / valueCredits spent on sunlight per credit of value produced. Lower is more disciplined.
Fairness100 × (1 − wealth Gini). How evenly the earnings spread across the colony.
ResilienceCompletion rate during and after the overcast spell, relative to before it.
Avg errand priceThe average winning bid. What labor cost under this mechanism.
Failed / expiredDeadline misses and abandonments; errands that never found a taker.
Value producedTotal credits paid out for completed work.

The outage test

With the overcast crisis enabled, a basking stone clouds over partway through every run. Resilience compares the colony's completion rate before the 150 second mark against everything after it, so a mechanism that shrugs off the outage scores near 100% and one that collapses into a basking queue scores much lower. This is where the mechanisms separate most sharply: the central scheduler has perfect knowledge but a fixed contract price, while the auction reprices the shock into every bid within seconds.

No mechanism wins everything. Central scheduling is hard to beat on raw throughput when nothing goes wrong, and the queue's naive fairness is real. The interesting output is the tradeoff surface. Change the sliders and the scarcity, and watch where each mechanism cracks.

How it runs

The lab runs the engine headless: no rendering, no interpolation, just step() in a tight loop inside a Web Worker. A few milliseconds of wall time buys a couple of sim-minutes of pond time, so a 3 × 10 minute comparison returns in about a second, and the live pond keeps ticking undisturbed while it works.