Kōeki MarketDocumentation
MARKET OPEN
DOCSThe lab

The lab

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

Three mechanisms

CENTRAL SCHEDULER
An omniscient dispatcher assigns each task to the nearest free robot with enough battery, at a fixed contract price of 75% of the reward. The best case for top-down control.
FIXED QUEUE
Tasks form a FIFO line. The first free robot takes the oldest task 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. Robots price each task themselves and undercut each other in a descending auction. No dispatcher anywhere.
The three allocation modes. Everything else, from the floor plan to the battery chemistry, is identical across runs.

Because the task 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
ThroughputTasks completed as a share of tasks created.
Energy cost / valueCredits spent on electricity per credit of value produced. Lower is more disciplined.
Fairness100 × (1 − wealth Gini). How evenly the earnings spread across the fleet.
ResilienceCompletion rate during and after the charger outage, relative to before it.
Avg task priceThe average winning bid. What labor cost under this mechanism.
Failed / expiredDeadline misses and abandonments; tasks that never found a taker.
Value producedTotal credits paid out for completed work.

The outage test

With the charging crisis enabled, a charger fails partway through every run. Resilience compares the fleet'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 charging 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 warehouse time, so a 3 × 10 minute comparison returns in about a second, and the live floor keeps ticking undisturbed while it works.