← Blog Feed (Atom)

Post two · a project write-up

AI World Gen: thousands of decisions, and a loop that graded them

A map generator that asks a model one question per tile. A new kind of model that answers in milliseconds for a fraction of a cent. And the evaluation loop that took it from a green blur to a village, one measured change at a time, most of them written by an agent.

Try AI World Gen →

A 16 by 16 pixel-art village: a stone chapel with an orange door in the top left, a wooden cottage with a door in the middle, trees along the top, a dirt path across the bottom, a villager and two haystacks.
Version 11 drawing the "medieval village" preset on a 16 by 16 grid. Every tile was one question to a decision model. Code planned first where the chapel, the cottage and their doors go; the model then decided every tile, walls and doors included.

The short version, if you only have a minute:

Contents
↑ Contents

A model that decides instead of writes

AI World Gen started as a way to test Jev, a new kind of model made by TypeSafe. I wanted answers to three questions. How much of the context can it take into account? How much does it really cost? And can you tune its prompt, the way you tune the prompt of a large language model (LLM)?

The idea is simple: describe a place, and watch an AI build its map one tile at a time. The hard question was never “can a model draw a map?”. It was “can it draw a map that is useful and logical?”.

Asking a typical chat model (an LLM) for every tile is slow and expensive, and you get a sentence back when you only want one word. Jev works differently. You send it a state (a JSON object that describes the situation) and a typed question: “pick one of these options”. It answers with a probability for each option, and it writes no text at all. It is built for speed: TypeSafe quotes tens of milliseconds for the model itself. It also costs about $0.04 per million input tokens (a token is a piece of a word, about four letters), roughly fifty times less than the chat models that I would otherwise use. The real bill has its own section below.

One decision: state in, typed answer out A box on the left holds the state: the world, the cell and its part of the plan, the whole map as letters, the neighbours, a balance sheet, what is missing and a suggestion. A box at the top holds the question: which type goes here, with the options grass, path, oak and fence. Both go to Jev, in the middle. An arrow leaves Jev to a box holding the answer: the choice "path", a confidence of 0.62, and one probability per option, drawn as bars. A dot carries the state and the question to Jev, Jev lights up, and a dot carries the answer out, where the bars grow. state world: medieval village cell: (9, 12) · outside map: 16×16 letters neighbours: grass ×5, path ×2 balance: path 18% of 15% missing: well, villager suggested: path (door nearby) question which type goes here? grass · path · oak · fence Jev one choice answer choice: path confidence: 0.62 path grass fence oak 0.62 0.28 0.07 0.03
One tile, one request. Code sends Jev the state and one question, about two thousand tokens in all. Jev answers with a probability for each option. The generator then picks the tile at random, weighted by those probabilities, but it drops every option below a third of the best one. So here the tile is usually path and sometimes grass, while fence and oak are never picked.

The generator splits the work in two. First, one call to a language model invents the vocabulary: the six to twenty-four kinds of tile that this place is made of, and the rules for each one. Then Jev decides each tile, with the vocabulary as the options and the map so far as the state.

The whole generator: one vocabulary call, then one Jev decision per cell Four boxes from left to right. A description, such as "medieval village", goes to a language model, which is called once. The language model writes the vocabulary: 6 to 24 tile types and their rules. The vocabulary goes to Jev, which is asked one question for every cell. An arrow loops back from Jev to itself: it repeats until the map is full. once, at the start for every cell A description “medieval village” Language model one creative call Vocabulary 6 to 24 tile types and their rules Jev one question per cell repeats until the map is full
The whole generator. The language model is called once, at the start, and writes the vocabulary. Jev is then called once for every cell: 64 times for an 8 by 8 map, and 256 times for a 16 by 16 map.

After that, the generator decides what goes in each cell, one cell at a time, and so builds the entire map. It selects an empty cell, reads the full map state (the contents of all the cells filled so far), and asks Jev: “What is the most probable content for this empty cell?” The model decides, the cell is filled, and the generator moves on to the next empty cell. I call this way of drawing a map cell by cell.

The generator fills a map one cell at a time On the left, an empty 8 by 8 grid draws itself cell by cell, starting at the middle and spiralling outwards: a village green, two cottages with doors, a dirt path, oaks, a river and a bridge. An orange outline marks the cell being decided; when the outline moves on, that cell shows its tile and keeps it. The finished map holds for a moment, clears, and draws itself again. On the right, three boxes in a cycle: the map so far is the state, Jev answers for one cell, the answer is written into the map, and the cycle starts again for the next cell until no cell is left. The map, one cell at a time Old oak Old oak Old oak Old oak Barley field Village green Old oak Village green Village green Villager Village green Village well Market stall Village green Village green Village green Cottage wall Cottage wall Cottage wall Village green Village green Village green Village green Village green Cottage wall Cottage floor Cottage wall Village green Cottage wall Cottage door Cottage wall Village green Cottage wall Cottage door Cottage wall Village green Cottage wall Cottage floor Cottage wall River Dirt path Dirt path Village green Village green Cottage wall Cottage wall Cottage wall Wooden bridge Dirt path Dirt path Village green Village green Village green Village green Village green Village green Dirt path Dirt path Dirt path Village green Village green Village green Barley field Village green 64 cells, 64 questions, about 21 seconds The map so faris the state Jevanswers for one cell Write itinto the map and again for the next cell, until no cell is left
The village of one real test case, drawn again in the order that the generator asked about its cells: from the middle outwards. The orange outline marks the cell that Jev is deciding. A cell never changes after it is filled.

What it costs, and how that grows

The bill for the whole project comes from the usage page of OpenRouter, the service that sells access to Jev and to the other models. It is $5.72 in total. Jev cost $3.85: $3.11 for the 39.2 thousand decisions of cell by cell, $0.51 for the five batched runs in this post, and $0.23 for a repeat run and tests. Claude Sonnet 5 cost $1.84: $1.24 for the five LLM runs, $0.33 for the 7 calls that wrote vocabularies, and $0.27 for tests. The last $0.03 was two calls to a third model, DeepSeek V4 Pro. So one cell by cell decision costs eight thousandths of a cent, and one vocabulary costs $0.047.

Two other questions matter more than the total: what does one map cost, and how does that cost change when the map gets bigger? This post draws a map in three ways, and their costs grow differently.

The cost of one map, by the size of the map, three ways Three lines on a logarithmic scale, from an 8 by 8 map to a 64 by 64 map. Cell by cell, Jev with one request per cell, starts at $0.005 and rises steeply to $0.68. Batched, Jev with all the cells in one request, starts at $0.0016 and rises to $0.13. LLM, a language model that draws the whole map, starts at $0.005 and stays almost flat, reaching $0.042. Cell by cell and LLM cost about the same at 8 by 8. Batched and LLM cost about the same at 16 by 16. Above that, LLM is the cheapest. What one map costs, by the size of the map logarithmic scale: each step up is 10 times more $0.001 $0.01 $0.10 $1.00 8×8 16×16 24×24 32×32 40×40 48×48 56×56 64×64 the size of the map cell by cell and LLM cost the same at about 8×8 batched and LLM cost the same at about 16×16 Cell by cell: Jev, one request per cell Batched: Jev, all the cells in one request LLM: a language model draws the whole map
Only the 8 × 8 and 16 × 16 maps were drawn for real, and there the prices are close to the runs. For the larger sizes, I built every request that each way would send, with the real code and without calling a model, and priced its tokens. For Jev, the tokens per character come from real requests in the OpenRouter logs. LLM is priced for one attempt; in the real runs, retries added 20% to 50%.

Cell by cell and LLM cost about the same at 8 by 8. Above that size, LLM is cheaper, and the difference grows with the map: LLM is 8 times cheaper at 32 × 32, and 16 times cheaper at 64 × 64.

Batched costs three to five times less than cell by cell at every size, because it sends the shared state once per request instead of once per cell. Up to about 16 by 16, it is the cheapest of the three ways. Above that, it grows faster than LLM. Each cell’s question still carries its own list of options with their rules, about 600 to 750 tokens per cell, while LLM writes about one token per cell. So at 64 × 64, a batched map costs $0.13 (in 59 requests), against $0.042 for LLM.

Jev is fifty times cheaper per token, but cell by cell sends the map again with every question, so it spends most of that saving on repetition. Still, Jev's price is what makes cell by cell possible at all. The same cell by cell method with Claude Sonnet 5 instead of Jev would cost $1.22 for one 16 × 16 map.

A new description also pays $0.047 once, at the start, for its vocabulary, whichever way draws the map. For a small map, that is more than the drawing itself costs. A preset ships its vocabulary and pays nothing, and every test case in this post uses a preset.

One map, drawn three ways. The vocabulary is left out: a new description pays it once, whichever way draws the map.
MapCellsCell by cellBatchedLLM
8 × 864$0.0054$0.0016$0.0051
16 × 16256$0.023$0.0074$0.0069
32 × 321,024$0.11$0.031$0.014
64 × 644,096$0.68$0.13$0.042

Version one was a green blur

The first version came from an afternoon of vibe coding (fast building with an AI assistant, with little planning). You describe a place, press the button, and watch the tiles appear one by one. It worked, in the sense that every call got an answer and a map came out at the end. Then I looked at the map.

A 16 by 16 grid entirely of dark grass tiles, with one green tree near the top.
v1, the same village seed. One tree, 255 grass.
The same seed drawn by version 11: two cottages with doors, trees, a path, haystacks and a villager.
v11, the same seed, after the changes that this post describes.

The map was useless. In the first test set, thirteen of the fifteen maps used one tile type for more than 85% of the cells: a village that was all grass, a station that was all corridor.

The cause is simple. The model decides a cell mostly from its neighbours. If the neighbours are grass, it picks grass. Each decision is reasonable on its own, but together they make a map with nothing in it.

I could have looked at three maps, changed the prompt, and looked at three more. I have done that before, and it usually ends the same way: the change that fixes the village breaks the station. So before I changed the generator, I built a way to measure it. Then I built a loop around that measurement: change the code, measure every map, compare with the last version, and change again. Every version is scored on the same maps, so an improvement cannot quietly undo an older one.

Measuring instead of looking

The measurement lives in Galtea, an evaluation platform for AI products. I work there, so read this as a demonstration as much as a recommendation. In Galtea, AI World Gen is a product, and everything below belongs to it:

What one score is made of A version, which is one change to the generator, and a test case, which is a preset, a size, an order and a seed, meet in a session: one map, kept with everything it scored. An arrow leads from the session to a specification, "a place reads as a place", which holds its metrics: doors in a wall 0.87, an enclosed room 0.92, ground in patches 0.65, and two more, all computed by code in the project. What one score is made of A versionone change to the generatormeasured on every test case A test casepreset, size, order, seedthirty-eight, always the same A sessionone map, kept witheverything it scored A specification “a place reads as a place” doors in a wall 0.87 an enclosed room 0.92 ground in patches 0.65 and two more, all computed by code in the project
Eleven versions times thirty-eight test cases is 418 maps. Each map is scored by 28 metrics and the judge. The numbers in this picture are version 11's.

I added specifications as new failures appeared. At the start there were three: barriers form structures, paths form routes, and every walkable cell is reachable. After version 4, the maps were no longer random, but they were wrong in a new way, so I added a fourth: a place reads as a place. After version 7, I added three more: the vocabulary's own rules hold, routes lead to doors and off the map, and each landmark appears once, without filling the map.

The evaluation and improvement loop Six steps in a ring, each lighting up in its turn: change the generator with one idea; run every test case on the same seeds; score every map with the metrics and the judge; compare with the version before; read the failures in the maps and in the numbers; form the next hypothesis, which leads back to the change. Each turn of this loop makes one version. 1 · Change one idea, in code 2 · Run every test case, same seeds 3 · Score metrics in code, one judge 4 · Compare against the version before 5 · Read the failures in the maps and in the numbers 6 · Hypothesis what to change next One version per turn
One turn of this loop is one version. The agent, Claude Code, runs the steps. I chose which theory to test first, read the pull requests, added a specification when I saw a failure that the numbers missed, and decided when the loop could stop.

How the generator evolved

Each chart below is one specification. Each point is the mean score of one version over the same 38 seeds. The exact numbers are in the folded table under the charts.

The solid orange line is cell by cell, and it is the main story. The two dashed lines are the two other ways to fill the map, which I tried after the last version. LLM (green squares): a language model draws the whole map in one answer. Batched (blue diamonds): Jev gets the questions for all the cells in one request. I ran both with the code of five versions (v1, v4, v7, v8 and v11). So each dashed point shows what that method did with what cell by cell knew at that version. Their own sections come later. Hover a version to read its values.

Structures, by version: cell by cell, LLM and batchedStructures: cell by cell goes from 0.18 to 0.98 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.92, 0.91, 0.92, 0.94, 0.94. Dashed, batched, with the same five: 0.58, 0.78, 0.64, 0.98, 0.97. Structures 0.18 → 0.98 1 0 v1v5v8v11 Paths, by version: cell by cell, LLM and batchedPaths: cell by cell goes from 0.74 to 0.77 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.75, 0.79, 0.76, 0.76, 0.75. Dashed, batched, with the same five: 0.61, 0.55, 0.57, 0.66, 0.47. Paths 0.74 → 0.77 1 0 v1v5v8v11 Reachable, by version: cell by cell, LLM and batchedReachable: cell by cell goes from 0.69 to 0.88 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.87, 0.89, 0.90, 0.82, 0.85. Dashed, batched, with the same five: 0.79, 0.79, 0.80, 0.85, 0.87. Reachable 0.69 → 0.88 1 0 v1v5v8v11 Reads as a place, by version: cell by cell, LLM and batchedReads as a place: cell by cell goes from 0.48 to 0.88 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.65, 0.66, 0.62, 0.78, 0.74. Dashed, batched, with the same five: 0.45, 0.38, 0.39, 0.87, 0.91. Reads as a place 0.48 → 0.88 1 0 v1v5v8v11 Rules hold, by version: cell by cell, LLM and batchedRules hold: the typed rules it checks start at v7, so there is no score before it; cell by cell holds 0.98 to 0.99 from v7 to v11. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: no score, no score, 0.80, 0.76, 0.76. Dashed, batched, with the same five: no score, no score, 0.94, 0.99, 0.83. Rules hold v7 → v11: 0.99 no data 1 0 v1v5v8v11 Why v1 to v6 have no data: typed rules came with v7, so before it there was nothing for this score to check.?Typed rules came with v7.Before it, nothing to check. Routes to doors, by version: cell by cell, LLM and batchedRoutes to doors: cell by cell goes from 1.00 to 0.82 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.54, 0.51, 0.65, 0.65, 0.61. Dashed, batched, with the same five: 1.00, 0.79, 0.64, 0.82, 0.78. Routes to doors 1.00 → 0.82 1 0 v1v5v8v11 Landmarks, by version: cell by cell, LLM and batchedLandmarks: cell by cell goes from 0.07 to 0.83 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.91, 0.93, 0.90, 0.84, 0.90. Dashed, batched, with the same five: 0.21, 0.70, 0.47, 0.71, 0.66. Landmarks 0.07 → 0.83 1 0 v1v5v8v11 Judge (GPT-5.2), by version: cell by cell, LLM and batchedJudge (GPT-5.2): cell by cell goes from 0.09 to 0.69 over the eleven versions. Dashed, LLM, with the code of v1, v4, v7, v8 and v11: 0.68, 0.68, 0.68, 0.65, 0.65. Dashed, batched, with the same five: 0.20, 0.32, 0.25, 0.57, 0.57. Judge (GPT-5.2) 0.09 → 0.69 1 0 v1v5v8v11
The numbers behind the charts
Mean score per specification over the same 38 test cases, for every run. A dash is a version with no typed rules to check.
RunStructuresPathsReachableReads as a placeRules holdRoutes to doorsLandmarksJudge (GPT-5.2)
v1, cell by cell0.180.740.690.48–1.000.070.09
v2, cell by cell0.390.530.750.43–0.770.610.24
v3, cell by cell0.680.660.820.50–0.620.790.45
v4, cell by cell0.820.800.770.50–0.660.660.48
v5, cell by cell0.930.820.810.53–0.700.760.54
v6, cell by cell0.950.810.810.51–0.600.680.48
v7, cell by cell0.950.800.820.520.990.610.780.48
v8, cell by cell0.990.750.840.890.990.780.770.65
v9, cell by cell0.980.800.870.870.980.870.840.69
v10, cell by cell0.980.780.870.880.990.860.830.71
v11, cell by cell0.980.770.880.880.990.820.830.69
v1-llm, LLM0.920.750.870.65–0.540.910.68
v4-llm, LLM0.910.790.890.66–0.510.930.68
v7-llm, LLM0.920.760.900.620.800.650.900.68
v8-llm, LLM0.940.760.820.780.760.650.840.65
v11-llm, LLM0.940.750.850.740.760.610.900.65
v1-batch, batched0.580.610.790.45–1.000.210.20
v4-batch, batched0.780.550.790.38–0.790.700.32
v7-batch, batched0.640.570.800.390.940.640.470.25
v8-batch, batched0.980.660.850.870.990.820.710.57
v11-batch, batched0.970.470.870.910.830.780.660.57

The judge never sees the metrics, but it agrees with them. Its score goes from 0.09 at version 1 to 0.69 at version 11. It rises most at the same versions where the metrics rise most: versions 2 and 3 (0.09 to 0.45), and version 8, when code started to draw the rooms (0.48 to 0.65).

The table below shows one version per row: what changed, and the maps it drew. It shows one test case at a time; use the buttons to move to the next one. Under each version where LLM and batched ran, a folded note describes those runs. LLM and batched, at every stage has their numbers.

rules-village-clusteredmedieval village, clustered order, 8 by 8 cells · 1 of 38

paths-village-frontiermedieval village, frontier order, 8 by 8 cells · 2 of 38

story-village-frontiermedieval village, frontier order, 8 by 8 cells · 3 of 38

routes-village-spiralmedieval village, spiral order, 8 by 8 cells · 4 of 38

structures-village-spiralmedieval village, spiral order, 8 by 8 cells · 5 of 38

large-village-spiralmedieval village, spiral order, 16 by 16 cells · 6 of 38

paths-station-branchingspace station, branching order, 8 by 8 cells · 7 of 38

structures-station-frontierspace station, frontier order, 8 by 8 cells · 8 of 38

rules-station-randomspace station, random order, 8 by 8 cells · 9 of 38

reach-station-spiralspace station, spiral order, 8 by 8 cells · 10 of 38

story-station-spiralspace station, spiral order, 8 by 8 cells · 11 of 38

large-station-frontierspace station, frontier order, 16 by 16 cells · 12 of 38

routes-mansion-frontierhaunted mansion, frontier order, 8 by 8 cells · 13 of 38

reach-mansion-randomhaunted mansion, random order, 8 by 8 cells · 14 of 38

coherence-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 15 of 38

story-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 16 of 38

structures-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 17 of 38

large-mansion-clusteredhaunted mansion, clustered order, 16 by 16 cells · 18 of 38

paths-market-clusteredmarket, clustered order, 8 by 8 cells · 19 of 38

routes-market-clusteredmarket, clustered order, 8 by 8 cells · 20 of 38

coherence-market-frontiermarket, frontier order, 8 by 8 cells · 21 of 38

rules-market-frontiermarket, frontier order, 8 by 8 cells · 22 of 38

reach-jungle-clusteredjungle temple, clustered order, 8 by 8 cells · 23 of 38

story-jungle-clusteredjungle temple, clustered order, 8 by 8 cells · 24 of 38

paths-jungle-frontierjungle temple, frontier order, 8 by 8 cells · 25 of 38

rules-jungle-spiraljungle temple, spiral order, 8 by 8 cells · 26 of 38

rules-desert-branchingdesert outpost, branching order, 8 by 8 cells · 27 of 38

reach-desert-frontierdesert outpost, frontier order, 8 by 8 cells · 28 of 38

story-desert-frontierdesert outpost, frontier order, 8 by 8 cells · 29 of 38

coherence-desert-spiraldesert outpost, spiral order, 8 by 8 cells · 30 of 38

structures-arctic-clusteredarctic base, clustered order, 8 by 8 cells · 31 of 38

coherence-arctic-frontierarctic base, frontier order, 8 by 8 cells · 32 of 38

reach-arctic-randomarctic base, random order, 8 by 8 cells · 33 of 38

routes-arctic-spiralarctic base, spiral order, 8 by 8 cells · 34 of 38

structures-cyberpunk-branchingcyberpunk block, branching order, 8 by 8 cells · 35 of 38

coherence-cyberpunk-clusteredcyberpunk block, clustered order, 8 by 8 cells · 36 of 38

routes-cyberpunk-frontiercyberpunk block, frontier order, 8 by 8 cells · 37 of 38

paths-cyberpunk-spiralcyberpunk block, spiral order, 8 by 8 cells · 38 of 38

Version and changeCell by cellLLMBatched

v1 · baseline

The starting point: Jev sees only the neighbouring tiles, so each map comes out almost all one tile. The judge gives 0.09.

LLM and batched, with v1’s code

v1-llm · LLM. Claude Sonnet 5 draws the whole map, with only what version 1 gave Jev: the vocabulary and four sentences of rules. There are no target shares and no plan. The judge gives 0.68, against 0.09 for cell by cell. Many more types are on the map (coverage 0.83 against 0.15), and 42% of the maps have a closed room, with no plan in the prompt.

v1-batch · batched. Version 1's own questions, sent together. The 38 maps took 86 requests: every cell is offered every type, so an 8 by 8 map needs two requests. The judge gives 0.20, against 0.09. Version 1 failed because each cell copied its neighbours. In a batch, there are no neighbours to copy.

Cell by cell, version 1, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 1, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 1, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 1, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 1, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 1, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 1, space station, branching order, 8 by 8 cells.Cell by cell, version 1, space station, frontier order, 8 by 8 cells.Cell by cell, version 1, space station, random order, 8 by 8 cells.Cell by cell, version 1, space station, spiral order, 8 by 8 cells.Cell by cell, version 1, space station, spiral order, 8 by 8 cells.Cell by cell, version 1, space station, frontier order, 16 by 16 cells.Cell by cell, version 1, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 1, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 1, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 1, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 1, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 1, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 1, market, clustered order, 8 by 8 cells.Cell by cell, version 1, market, clustered order, 8 by 8 cells.Cell by cell, version 1, market, frontier order, 8 by 8 cells.Cell by cell, version 1, market, frontier order, 8 by 8 cells.Cell by cell, version 1, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 1, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 1, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 1, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 1, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 1, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 1, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 1, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 1, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 1, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 1, arctic base, random order, 8 by 8 cells.Cell by cell, version 1, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 1, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 1, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 1, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 1, cyberpunk block, spiral order, 8 by 8 cells.LLM, with version 1’s code, medieval village, clustered order, 8 by 8 cells.LLM, with version 1’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 1’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 1’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 1’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 1’s code, medieval village, spiral order, 16 by 16 cells.LLM, with version 1’s code, space station, branching order, 8 by 8 cells.LLM, with version 1’s code, space station, frontier order, 8 by 8 cells.LLM, with version 1’s code, space station, random order, 8 by 8 cells.LLM, with version 1’s code, space station, spiral order, 8 by 8 cells.LLM, with version 1’s code, space station, spiral order, 8 by 8 cells.LLM, with version 1’s code, space station, frontier order, 16 by 16 cells.LLM, with version 1’s code, haunted mansion, frontier order, 8 by 8 cells.LLM, with version 1’s code, haunted mansion, random order, 8 by 8 cells.LLM, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 1’s code, haunted mansion, clustered order, 16 by 16 cells.LLM, with version 1’s code, market, clustered order, 8 by 8 cells.LLM, with version 1’s code, market, clustered order, 8 by 8 cells.LLM, with version 1’s code, market, frontier order, 8 by 8 cells.LLM, with version 1’s code, market, frontier order, 8 by 8 cells.LLM, with version 1’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 1’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 1’s code, jungle temple, frontier order, 8 by 8 cells.LLM, with version 1’s code, jungle temple, spiral order, 8 by 8 cells.LLM, with version 1’s code, desert outpost, branching order, 8 by 8 cells.LLM, with version 1’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 1’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 1’s code, desert outpost, spiral order, 8 by 8 cells.LLM, with version 1’s code, arctic base, clustered order, 8 by 8 cells.LLM, with version 1’s code, arctic base, frontier order, 8 by 8 cells.LLM, with version 1’s code, arctic base, random order, 8 by 8 cells.LLM, with version 1’s code, arctic base, spiral order, 8 by 8 cells.LLM, with version 1’s code, cyberpunk block, branching order, 8 by 8 cells.LLM, with version 1’s code, cyberpunk block, clustered order, 8 by 8 cells.LLM, with version 1’s code, cyberpunk block, frontier order, 8 by 8 cells.LLM, with version 1’s code, cyberpunk block, spiral order, 8 by 8 cells.Batched, with version 1’s code, medieval village, clustered order, 8 by 8 cells.Batched, with version 1’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 1’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 1’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 1’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 1’s code, medieval village, spiral order, 16 by 16 cells.Batched, with version 1’s code, space station, branching order, 8 by 8 cells.Batched, with version 1’s code, space station, frontier order, 8 by 8 cells.Batched, with version 1’s code, space station, random order, 8 by 8 cells.Batched, with version 1’s code, space station, spiral order, 8 by 8 cells.Batched, with version 1’s code, space station, spiral order, 8 by 8 cells.Batched, with version 1’s code, space station, frontier order, 16 by 16 cells.Batched, with version 1’s code, haunted mansion, frontier order, 8 by 8 cells.Batched, with version 1’s code, haunted mansion, random order, 8 by 8 cells.Batched, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 1’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 1’s code, haunted mansion, clustered order, 16 by 16 cells.Batched, with version 1’s code, market, clustered order, 8 by 8 cells.Batched, with version 1’s code, market, clustered order, 8 by 8 cells.Batched, with version 1’s code, market, frontier order, 8 by 8 cells.Batched, with version 1’s code, market, frontier order, 8 by 8 cells.Batched, with version 1’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 1’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 1’s code, jungle temple, frontier order, 8 by 8 cells.Batched, with version 1’s code, jungle temple, spiral order, 8 by 8 cells.Batched, with version 1’s code, desert outpost, branching order, 8 by 8 cells.Batched, with version 1’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 1’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 1’s code, desert outpost, spiral order, 8 by 8 cells.Batched, with version 1’s code, arctic base, clustered order, 8 by 8 cells.Batched, with version 1’s code, arctic base, frontier order, 8 by 8 cells.Batched, with version 1’s code, arctic base, random order, 8 by 8 cells.Batched, with version 1’s code, arctic base, spiral order, 8 by 8 cells.Batched, with version 1’s code, cyberpunk block, branching order, 8 by 8 cells.Batched, with version 1’s code, cyberpunk block, clustered order, 8 by 8 cells.Batched, with version 1’s code, cyberpunk block, frontier order, 8 by 8 cells.Batched, with version 1’s code, cyberpunk block, spiral order, 8 by 8 cells.

v2 · confetti

Jev now also gets a balance sheet: how much of each tile type the map has, against its target. More types appear (coverage, the share of types that reach the map, goes from 0.15 to 0.44), but as scattered single tiles.

Cell by cell, version 2, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 2, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 2, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 2, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 2, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 2, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 2, space station, branching order, 8 by 8 cells.Cell by cell, version 2, space station, frontier order, 8 by 8 cells.Cell by cell, version 2, space station, random order, 8 by 8 cells.Cell by cell, version 2, space station, spiral order, 8 by 8 cells.Cell by cell, version 2, space station, spiral order, 8 by 8 cells.Cell by cell, version 2, space station, frontier order, 16 by 16 cells.Cell by cell, version 2, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 2, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 2, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 2, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 2, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 2, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 2, market, clustered order, 8 by 8 cells.Cell by cell, version 2, market, clustered order, 8 by 8 cells.Cell by cell, version 2, market, frontier order, 8 by 8 cells.Cell by cell, version 2, market, frontier order, 8 by 8 cells.Cell by cell, version 2, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 2, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 2, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 2, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 2, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 2, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 2, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 2, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 2, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 2, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 2, arctic base, random order, 8 by 8 cells.Cell by cell, version 2, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 2, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 2, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 2, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 2, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v3 · floods

Jev now gets hints such as “a wall line reaches this cell, continue it”. It follows them too far: one 8 by 8 station is 58 of its 64 cells corridor.

Cell by cell, version 3, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 3, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 3, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 3, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 3, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 3, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 3, space station, branching order, 8 by 8 cells.Cell by cell, version 3, space station, frontier order, 8 by 8 cells.Cell by cell, version 3, space station, random order, 8 by 8 cells.Cell by cell, version 3, space station, spiral order, 8 by 8 cells.Cell by cell, version 3, space station, spiral order, 8 by 8 cells.Cell by cell, version 3, space station, frontier order, 16 by 16 cells.Cell by cell, version 3, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 3, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 3, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 3, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 3, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 3, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 3, market, clustered order, 8 by 8 cells.Cell by cell, version 3, market, clustered order, 8 by 8 cells.Cell by cell, version 3, market, frontier order, 8 by 8 cells.Cell by cell, version 3, market, frontier order, 8 by 8 cells.Cell by cell, version 3, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 3, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 3, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 3, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 3, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 3, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 3, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 3, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 3, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 3, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 3, arctic base, random order, 8 by 8 cells.Cell by cell, version 3, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 3, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 3, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 3, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 3, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v4 · lines

Code now checks each hint before it is sent. Walls form lines and closed shapes, but only about a quarter of the doors stand in a wall (0.26).

LLM and batched, with v4’s code

v4-llm · LLM. Now with the target shares, the lines and the patches, but still no plan. The judge gives 0.68, against 0.48 for cell by cell. Every specification is within 0.05 of v1-llm: the balance sheet and the lines taught the LLM almost nothing new.

v4-batch · batched. Version 4's fix, a line that continues, needs the cells decided before, and a batch has none. Paths score 0.55 against 0.80, and only 5 of the 38 maps have a landmark. The judge gives 0.32, against 0.48.

Cell by cell, version 4, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 4, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 4, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 4, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 4, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 4, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 4, space station, branching order, 8 by 8 cells.Cell by cell, version 4, space station, frontier order, 8 by 8 cells.Cell by cell, version 4, space station, random order, 8 by 8 cells.Cell by cell, version 4, space station, spiral order, 8 by 8 cells.Cell by cell, version 4, space station, spiral order, 8 by 8 cells.Cell by cell, version 4, space station, frontier order, 16 by 16 cells.Cell by cell, version 4, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 4, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 4, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 4, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 4, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 4, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 4, market, clustered order, 8 by 8 cells.Cell by cell, version 4, market, clustered order, 8 by 8 cells.Cell by cell, version 4, market, frontier order, 8 by 8 cells.Cell by cell, version 4, market, frontier order, 8 by 8 cells.Cell by cell, version 4, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 4, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 4, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 4, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 4, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 4, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 4, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 4, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 4, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 4, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 4, arctic base, random order, 8 by 8 cells.Cell by cell, version 4, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 4, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 4, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 4, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 4, cyberpunk block, spiral order, 8 by 8 cells.LLM, with version 4’s code, medieval village, clustered order, 8 by 8 cells.LLM, with version 4’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 4’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 4’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 4’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 4’s code, medieval village, spiral order, 16 by 16 cells.LLM, with version 4’s code, space station, branching order, 8 by 8 cells.LLM, with version 4’s code, space station, frontier order, 8 by 8 cells.LLM, with version 4’s code, space station, random order, 8 by 8 cells.LLM, with version 4’s code, space station, spiral order, 8 by 8 cells.LLM, with version 4’s code, space station, spiral order, 8 by 8 cells.LLM, with version 4’s code, space station, frontier order, 16 by 16 cells.LLM, with version 4’s code, haunted mansion, frontier order, 8 by 8 cells.LLM, with version 4’s code, haunted mansion, random order, 8 by 8 cells.LLM, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 4’s code, haunted mansion, clustered order, 16 by 16 cells.LLM, with version 4’s code, market, clustered order, 8 by 8 cells.LLM, with version 4’s code, market, clustered order, 8 by 8 cells.LLM, with version 4’s code, market, frontier order, 8 by 8 cells.LLM, with version 4’s code, market, frontier order, 8 by 8 cells.LLM, with version 4’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 4’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 4’s code, jungle temple, frontier order, 8 by 8 cells.LLM, with version 4’s code, jungle temple, spiral order, 8 by 8 cells.LLM, with version 4’s code, desert outpost, branching order, 8 by 8 cells.LLM, with version 4’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 4’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 4’s code, desert outpost, spiral order, 8 by 8 cells.LLM, with version 4’s code, arctic base, clustered order, 8 by 8 cells.LLM, with version 4’s code, arctic base, frontier order, 8 by 8 cells.LLM, with version 4’s code, arctic base, random order, 8 by 8 cells.LLM, with version 4’s code, arctic base, spiral order, 8 by 8 cells.LLM, with version 4’s code, cyberpunk block, branching order, 8 by 8 cells.LLM, with version 4’s code, cyberpunk block, clustered order, 8 by 8 cells.LLM, with version 4’s code, cyberpunk block, frontier order, 8 by 8 cells.LLM, with version 4’s code, cyberpunk block, spiral order, 8 by 8 cells.Batched, with version 4’s code, medieval village, clustered order, 8 by 8 cells.Batched, with version 4’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 4’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 4’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 4’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 4’s code, medieval village, spiral order, 16 by 16 cells.Batched, with version 4’s code, space station, branching order, 8 by 8 cells.Batched, with version 4’s code, space station, frontier order, 8 by 8 cells.Batched, with version 4’s code, space station, random order, 8 by 8 cells.Batched, with version 4’s code, space station, spiral order, 8 by 8 cells.Batched, with version 4’s code, space station, spiral order, 8 by 8 cells.Batched, with version 4’s code, space station, frontier order, 16 by 16 cells.Batched, with version 4’s code, haunted mansion, frontier order, 8 by 8 cells.Batched, with version 4’s code, haunted mansion, random order, 8 by 8 cells.Batched, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 4’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 4’s code, haunted mansion, clustered order, 16 by 16 cells.Batched, with version 4’s code, market, clustered order, 8 by 8 cells.Batched, with version 4’s code, market, clustered order, 8 by 8 cells.Batched, with version 4’s code, market, frontier order, 8 by 8 cells.Batched, with version 4’s code, market, frontier order, 8 by 8 cells.Batched, with version 4’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 4’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 4’s code, jungle temple, frontier order, 8 by 8 cells.Batched, with version 4’s code, jungle temple, spiral order, 8 by 8 cells.Batched, with version 4’s code, desert outpost, branching order, 8 by 8 cells.Batched, with version 4’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 4’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 4’s code, desert outpost, spiral order, 8 by 8 cells.Batched, with version 4’s code, arctic base, clustered order, 8 by 8 cells.Batched, with version 4’s code, arctic base, frontier order, 8 by 8 cells.Batched, with version 4’s code, arctic base, random order, 8 by 8 cells.Batched, with version 4’s code, arctic base, spiral order, 8 by 8 cells.Batched, with version 4’s code, cyberpunk block, branching order, 8 by 8 cells.Batched, with version 4’s code, cyberpunk block, clustered order, 8 by 8 cells.Batched, with version 4’s code, cyberpunk block, frontier order, 8 by 8 cells.Batched, with version 4’s code, cyberpunk block, spiral order, 8 by 8 cells.

v5 · the model reads the sketch, a little

Jev now sees the whole map, one letter per cell. It helps only a little, because one cell cannot see where a rectangle should end.

Cell by cell, version 5, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 5, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 5, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 5, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 5, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 5, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 5, space station, branching order, 8 by 8 cells.Cell by cell, version 5, space station, frontier order, 8 by 8 cells.Cell by cell, version 5, space station, random order, 8 by 8 cells.Cell by cell, version 5, space station, spiral order, 8 by 8 cells.Cell by cell, version 5, space station, spiral order, 8 by 8 cells.Cell by cell, version 5, space station, frontier order, 16 by 16 cells.Cell by cell, version 5, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 5, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 5, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 5, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 5, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 5, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 5, market, clustered order, 8 by 8 cells.Cell by cell, version 5, market, clustered order, 8 by 8 cells.Cell by cell, version 5, market, frontier order, 8 by 8 cells.Cell by cell, version 5, market, frontier order, 8 by 8 cells.Cell by cell, version 5, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 5, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 5, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 5, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 5, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 5, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 5, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 5, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 5, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 5, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 5, arctic base, random order, 8 by 8 cells.Cell by cell, version 5, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 5, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 5, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 5, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 5, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v6 · less noise

The random pick from Jev’s probabilities now drops options below a third of the best one. Ground forms patches, but rare tiles almost disappear (coverage 0.76 to 0.55).

Cell by cell, version 6, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 6, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 6, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 6, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 6, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 6, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 6, space station, branching order, 8 by 8 cells.Cell by cell, version 6, space station, frontier order, 8 by 8 cells.Cell by cell, version 6, space station, random order, 8 by 8 cells.Cell by cell, version 6, space station, spiral order, 8 by 8 cells.Cell by cell, version 6, space station, spiral order, 8 by 8 cells.Cell by cell, version 6, space station, frontier order, 16 by 16 cells.Cell by cell, version 6, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 6, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 6, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 6, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 6, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 6, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 6, market, clustered order, 8 by 8 cells.Cell by cell, version 6, market, clustered order, 8 by 8 cells.Cell by cell, version 6, market, frontier order, 8 by 8 cells.Cell by cell, version 6, market, frontier order, 8 by 8 cells.Cell by cell, version 6, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 6, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 6, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 6, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 6, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 6, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 6, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 6, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 6, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 6, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 6, arctic base, random order, 8 by 8 cells.Cell by cell, version 6, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 6, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 6, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 6, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 6, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v7 · the local rules hold, the rooms do not

Typed rules, such as “never next to X”, now remove forbidden tiles before Jev answers. The rules hold (0.99), but rooms still do not form.

LLM and batched, with v7’s code

v7-llm · LLM. The typed rules are now written in the prompt. They hold at 0.80, against 0.99 in cell by cell, where code offers only the types that the rules allow. The judge gives 0.68, against 0.48.

v7-batch · batched. Code still applies the typed rules, so they hold at 0.94. But the neighbours they check are not there yet, and no door stands in a wall (0.00). The judge gives 0.25, against 0.48.

Cell by cell, version 7, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 7, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 7, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 7, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 7, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 7, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 7, space station, branching order, 8 by 8 cells.Cell by cell, version 7, space station, frontier order, 8 by 8 cells.Cell by cell, version 7, space station, random order, 8 by 8 cells.Cell by cell, version 7, space station, spiral order, 8 by 8 cells.Cell by cell, version 7, space station, spiral order, 8 by 8 cells.Cell by cell, version 7, space station, frontier order, 16 by 16 cells.Cell by cell, version 7, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 7, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 7, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 7, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 7, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 7, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 7, market, clustered order, 8 by 8 cells.Cell by cell, version 7, market, clustered order, 8 by 8 cells.Cell by cell, version 7, market, frontier order, 8 by 8 cells.Cell by cell, version 7, market, frontier order, 8 by 8 cells.Cell by cell, version 7, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 7, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 7, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 7, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 7, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 7, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 7, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 7, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 7, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 7, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 7, arctic base, random order, 8 by 8 cells.Cell by cell, version 7, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 7, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 7, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 7, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 7, cyberpunk block, spiral order, 8 by 8 cells.LLM, with version 7’s code, medieval village, clustered order, 8 by 8 cells.LLM, with version 7’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 7’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 7’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 7’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 7’s code, medieval village, spiral order, 16 by 16 cells.LLM, with version 7’s code, space station, branching order, 8 by 8 cells.LLM, with version 7’s code, space station, frontier order, 8 by 8 cells.LLM, with version 7’s code, space station, random order, 8 by 8 cells.LLM, with version 7’s code, space station, spiral order, 8 by 8 cells.LLM, with version 7’s code, space station, spiral order, 8 by 8 cells.LLM, with version 7’s code, space station, frontier order, 16 by 16 cells.LLM, with version 7’s code, haunted mansion, frontier order, 8 by 8 cells.LLM, with version 7’s code, haunted mansion, random order, 8 by 8 cells.LLM, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 7’s code, haunted mansion, clustered order, 16 by 16 cells.LLM, with version 7’s code, market, clustered order, 8 by 8 cells.LLM, with version 7’s code, market, clustered order, 8 by 8 cells.LLM, with version 7’s code, market, frontier order, 8 by 8 cells.LLM, with version 7’s code, market, frontier order, 8 by 8 cells.LLM, with version 7’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 7’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 7’s code, jungle temple, frontier order, 8 by 8 cells.LLM, with version 7’s code, jungle temple, spiral order, 8 by 8 cells.LLM, with version 7’s code, desert outpost, branching order, 8 by 8 cells.LLM, with version 7’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 7’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 7’s code, desert outpost, spiral order, 8 by 8 cells.LLM, with version 7’s code, arctic base, clustered order, 8 by 8 cells.LLM, with version 7’s code, arctic base, frontier order, 8 by 8 cells.LLM, with version 7’s code, arctic base, random order, 8 by 8 cells.LLM, with version 7’s code, arctic base, spiral order, 8 by 8 cells.LLM, with version 7’s code, cyberpunk block, branching order, 8 by 8 cells.LLM, with version 7’s code, cyberpunk block, clustered order, 8 by 8 cells.LLM, with version 7’s code, cyberpunk block, frontier order, 8 by 8 cells.LLM, with version 7’s code, cyberpunk block, spiral order, 8 by 8 cells.Batched, with version 7’s code, medieval village, clustered order, 8 by 8 cells.Batched, with version 7’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 7’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 7’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 7’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 7’s code, medieval village, spiral order, 16 by 16 cells.Batched, with version 7’s code, space station, branching order, 8 by 8 cells.Batched, with version 7’s code, space station, frontier order, 8 by 8 cells.Batched, with version 7’s code, space station, random order, 8 by 8 cells.Batched, with version 7’s code, space station, spiral order, 8 by 8 cells.Batched, with version 7’s code, space station, spiral order, 8 by 8 cells.Batched, with version 7’s code, space station, frontier order, 16 by 16 cells.Batched, with version 7’s code, haunted mansion, frontier order, 8 by 8 cells.Batched, with version 7’s code, haunted mansion, random order, 8 by 8 cells.Batched, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 7’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 7’s code, haunted mansion, clustered order, 16 by 16 cells.Batched, with version 7’s code, market, clustered order, 8 by 8 cells.Batched, with version 7’s code, market, clustered order, 8 by 8 cells.Batched, with version 7’s code, market, frontier order, 8 by 8 cells.Batched, with version 7’s code, market, frontier order, 8 by 8 cells.Batched, with version 7’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 7’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 7’s code, jungle temple, frontier order, 8 by 8 cells.Batched, with version 7’s code, jungle temple, spiral order, 8 by 8 cells.Batched, with version 7’s code, desert outpost, branching order, 8 by 8 cells.Batched, with version 7’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 7’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 7’s code, desert outpost, spiral order, 8 by 8 cells.Batched, with version 7’s code, arctic base, clustered order, 8 by 8 cells.Batched, with version 7’s code, arctic base, frontier order, 8 by 8 cells.Batched, with version 7’s code, arctic base, random order, 8 by 8 cells.Batched, with version 7’s code, arctic base, spiral order, 8 by 8 cells.Batched, with version 7’s code, cyberpunk block, branching order, 8 by 8 cells.Batched, with version 7’s code, cyberpunk block, clustered order, 8 by 8 cells.Batched, with version 7’s code, cyberpunk block, frontier order, 8 by 8 cells.Batched, with version 7’s code, cyberpunk block, spiral order, 8 by 8 cells.

v8 · rooms

The blueprint: before Jev starts, code places each building as a rectangle with a door. Doors in walls go from 0.15 to 0.96. The price: fewer tile types (coverage 0.51).

LLM and batched, with v8’s code

v8-llm · LLM. The blueprint goes into the prompt, room by room. This is the version that moved the LLM most: “a place reads as a place” rises from 0.62 to 0.78, and 74% of the maps have a closed room, against 34% at v7. The judge gives 0.65, the same as cell by cell.

v8-batch · batched. The blueprint is code, applied to each cell, so a batch gets all of it. Each cell is offered only the types of its part, so all 64 questions now fit in one request. Structures go from 0.64 to 0.98, and every door is in a wall. The judge gives 0.57, against 0.65.

Cell by cell, version 8, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 8, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 8, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 8, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 8, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 8, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 8, space station, branching order, 8 by 8 cells.Cell by cell, version 8, space station, frontier order, 8 by 8 cells.Cell by cell, version 8, space station, random order, 8 by 8 cells.Cell by cell, version 8, space station, spiral order, 8 by 8 cells.Cell by cell, version 8, space station, spiral order, 8 by 8 cells.Cell by cell, version 8, space station, frontier order, 16 by 16 cells.Cell by cell, version 8, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 8, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 8, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 8, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 8, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 8, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 8, market, clustered order, 8 by 8 cells.Cell by cell, version 8, market, clustered order, 8 by 8 cells.Cell by cell, version 8, market, frontier order, 8 by 8 cells.Cell by cell, version 8, market, frontier order, 8 by 8 cells.Cell by cell, version 8, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 8, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 8, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 8, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 8, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 8, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 8, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 8, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 8, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 8, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 8, arctic base, random order, 8 by 8 cells.Cell by cell, version 8, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 8, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 8, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 8, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 8, cyberpunk block, spiral order, 8 by 8 cells.LLM, with version 8’s code, medieval village, clustered order, 8 by 8 cells.LLM, with version 8’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 8’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 8’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 8’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 8’s code, medieval village, spiral order, 16 by 16 cells.LLM, with version 8’s code, space station, branching order, 8 by 8 cells.LLM, with version 8’s code, space station, frontier order, 8 by 8 cells.LLM, with version 8’s code, space station, random order, 8 by 8 cells.LLM, with version 8’s code, space station, spiral order, 8 by 8 cells.LLM, with version 8’s code, space station, spiral order, 8 by 8 cells.LLM, with version 8’s code, space station, frontier order, 16 by 16 cells.LLM, with version 8’s code, haunted mansion, frontier order, 8 by 8 cells.LLM, with version 8’s code, haunted mansion, random order, 8 by 8 cells.LLM, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 8’s code, haunted mansion, clustered order, 16 by 16 cells.LLM, with version 8’s code, market, clustered order, 8 by 8 cells.LLM, with version 8’s code, market, clustered order, 8 by 8 cells.LLM, with version 8’s code, market, frontier order, 8 by 8 cells.LLM, with version 8’s code, market, frontier order, 8 by 8 cells.LLM, with version 8’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 8’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 8’s code, jungle temple, frontier order, 8 by 8 cells.LLM, with version 8’s code, jungle temple, spiral order, 8 by 8 cells.LLM, with version 8’s code, desert outpost, branching order, 8 by 8 cells.LLM, with version 8’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 8’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 8’s code, desert outpost, spiral order, 8 by 8 cells.LLM, with version 8’s code, arctic base, clustered order, 8 by 8 cells.LLM, with version 8’s code, arctic base, frontier order, 8 by 8 cells.LLM, with version 8’s code, arctic base, random order, 8 by 8 cells.LLM, with version 8’s code, arctic base, spiral order, 8 by 8 cells.LLM, with version 8’s code, cyberpunk block, branching order, 8 by 8 cells.LLM, with version 8’s code, cyberpunk block, clustered order, 8 by 8 cells.LLM, with version 8’s code, cyberpunk block, frontier order, 8 by 8 cells.LLM, with version 8’s code, cyberpunk block, spiral order, 8 by 8 cells.Batched, with version 8’s code, medieval village, clustered order, 8 by 8 cells.Batched, with version 8’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 8’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 8’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 8’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 8’s code, medieval village, spiral order, 16 by 16 cells.Batched, with version 8’s code, space station, branching order, 8 by 8 cells.Batched, with version 8’s code, space station, frontier order, 8 by 8 cells.Batched, with version 8’s code, space station, random order, 8 by 8 cells.Batched, with version 8’s code, space station, spiral order, 8 by 8 cells.Batched, with version 8’s code, space station, spiral order, 8 by 8 cells.Batched, with version 8’s code, space station, frontier order, 16 by 16 cells.Batched, with version 8’s code, haunted mansion, frontier order, 8 by 8 cells.Batched, with version 8’s code, haunted mansion, random order, 8 by 8 cells.Batched, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 8’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 8’s code, haunted mansion, clustered order, 16 by 16 cells.Batched, with version 8’s code, market, clustered order, 8 by 8 cells.Batched, with version 8’s code, market, clustered order, 8 by 8 cells.Batched, with version 8’s code, market, frontier order, 8 by 8 cells.Batched, with version 8’s code, market, frontier order, 8 by 8 cells.Batched, with version 8’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 8’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 8’s code, jungle temple, frontier order, 8 by 8 cells.Batched, with version 8’s code, jungle temple, spiral order, 8 by 8 cells.Batched, with version 8’s code, desert outpost, branching order, 8 by 8 cells.Batched, with version 8’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 8’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 8’s code, desert outpost, spiral order, 8 by 8 cells.Batched, with version 8’s code, arctic base, clustered order, 8 by 8 cells.Batched, with version 8’s code, arctic base, frontier order, 8 by 8 cells.Batched, with version 8’s code, arctic base, random order, 8 by 8 cells.Batched, with version 8’s code, arctic base, spiral order, 8 by 8 cells.Batched, with version 8’s code, cyberpunk block, branching order, 8 by 8 cells.Batched, with version 8’s code, cyberpunk block, clustered order, 8 by 8 cells.Batched, with version 8’s code, cyberpunk block, frontier order, 8 by 8 cells.Batched, with version 8’s code, cyberpunk block, spiral order, 8 by 8 cells.

v9 · the world remembers what it lacks

Jev now sees what the map still lacks, a landmark stops being offered once it is placed, and a route is suggested outside each door. Every landmark appears once (1.00).

Cell by cell, version 9, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 9, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 9, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 9, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 9, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 9, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 9, space station, branching order, 8 by 8 cells.Cell by cell, version 9, space station, frontier order, 8 by 8 cells.Cell by cell, version 9, space station, random order, 8 by 8 cells.Cell by cell, version 9, space station, spiral order, 8 by 8 cells.Cell by cell, version 9, space station, spiral order, 8 by 8 cells.Cell by cell, version 9, space station, frontier order, 16 by 16 cells.Cell by cell, version 9, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 9, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 9, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 9, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 9, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 9, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 9, market, clustered order, 8 by 8 cells.Cell by cell, version 9, market, clustered order, 8 by 8 cells.Cell by cell, version 9, market, frontier order, 8 by 8 cells.Cell by cell, version 9, market, frontier order, 8 by 8 cells.Cell by cell, version 9, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 9, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 9, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 9, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 9, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 9, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 9, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 9, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 9, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 9, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 9, arctic base, random order, 8 by 8 cells.Cell by cell, version 9, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 9, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 9, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 9, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 9, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v10 · the cap that could not fire

A ground tile that covers twice its target is no longer offered. This changed nothing: in the station, the flooding tile was the corridor, which was also the only floor.

Cell by cell, version 10, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 10, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 10, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 10, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 10, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 10, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 10, space station, branching order, 8 by 8 cells.Cell by cell, version 10, space station, frontier order, 8 by 8 cells.Cell by cell, version 10, space station, random order, 8 by 8 cells.Cell by cell, version 10, space station, spiral order, 8 by 8 cells.Cell by cell, version 10, space station, spiral order, 8 by 8 cells.Cell by cell, version 10, space station, frontier order, 16 by 16 cells.Cell by cell, version 10, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 10, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 10, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 10, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 10, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 10, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 10, market, clustered order, 8 by 8 cells.Cell by cell, version 10, market, clustered order, 8 by 8 cells.Cell by cell, version 10, market, frontier order, 8 by 8 cells.Cell by cell, version 10, market, frontier order, 8 by 8 cells.Cell by cell, version 10, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 10, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 10, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 10, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 10, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 10, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 10, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 10, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 10, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 10, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 10, arctic base, random order, 8 by 8 cells.Cell by cell, version 10, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 10, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 10, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 10, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 10, cyberpunk block, spiral order, 8 by 8 cells.not runnot run

v11 · a floor that is not a road

The station gets an open deck and the city a plaza, so corridors and streets become lines. The corridors are now short stubs, which is the next problem.

LLM and batched, with v11’s code

v11-llm · LLM. The same seeds, vocabularies and blueprint, drawn by Claude Sonnet 5 in one answer per map. A 16 by 16 map takes 6 seconds instead of 90, and the whole run costs the same. But only 47% of the maps have a closed room, against 92%, and the typed rules hold at 0.76 against 0.99. Its own section has the details.

v11-batch · batched. Version 11’s questions, unchanged, sent together, in one request per map where it fits. That is 61 times fewer requests, at a third of the price. But each cell is decided without knowing what the other cells in the same request got: 181 cells sit next to a tile that their “never next to” rule forbids, and each of those broken pairs is inside one request, and one mansion has 39 staircases where the rules ask for one. Its own section has the details.

Cell by cell, version 11, medieval village, clustered order, 8 by 8 cells.Cell by cell, version 11, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 11, medieval village, frontier order, 8 by 8 cells.Cell by cell, version 11, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 11, medieval village, spiral order, 8 by 8 cells.Cell by cell, version 11, medieval village, spiral order, 16 by 16 cells.Cell by cell, version 11, space station, branching order, 8 by 8 cells.Cell by cell, version 11, space station, frontier order, 8 by 8 cells.Cell by cell, version 11, space station, random order, 8 by 8 cells.Cell by cell, version 11, space station, spiral order, 8 by 8 cells.Cell by cell, version 11, space station, spiral order, 8 by 8 cells.Cell by cell, version 11, space station, frontier order, 16 by 16 cells.Cell by cell, version 11, haunted mansion, frontier order, 8 by 8 cells.Cell by cell, version 11, haunted mansion, random order, 8 by 8 cells.Cell by cell, version 11, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 11, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 11, haunted mansion, spiral order, 8 by 8 cells.Cell by cell, version 11, haunted mansion, clustered order, 16 by 16 cells.Cell by cell, version 11, market, clustered order, 8 by 8 cells.Cell by cell, version 11, market, clustered order, 8 by 8 cells.Cell by cell, version 11, market, frontier order, 8 by 8 cells.Cell by cell, version 11, market, frontier order, 8 by 8 cells.Cell by cell, version 11, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 11, jungle temple, clustered order, 8 by 8 cells.Cell by cell, version 11, jungle temple, frontier order, 8 by 8 cells.Cell by cell, version 11, jungle temple, spiral order, 8 by 8 cells.Cell by cell, version 11, desert outpost, branching order, 8 by 8 cells.Cell by cell, version 11, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 11, desert outpost, frontier order, 8 by 8 cells.Cell by cell, version 11, desert outpost, spiral order, 8 by 8 cells.Cell by cell, version 11, arctic base, clustered order, 8 by 8 cells.Cell by cell, version 11, arctic base, frontier order, 8 by 8 cells.Cell by cell, version 11, arctic base, random order, 8 by 8 cells.Cell by cell, version 11, arctic base, spiral order, 8 by 8 cells.Cell by cell, version 11, cyberpunk block, branching order, 8 by 8 cells.Cell by cell, version 11, cyberpunk block, clustered order, 8 by 8 cells.Cell by cell, version 11, cyberpunk block, frontier order, 8 by 8 cells.Cell by cell, version 11, cyberpunk block, spiral order, 8 by 8 cells.LLM, with version 11’s code, medieval village, clustered order, 8 by 8 cells.LLM, with version 11’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 11’s code, medieval village, frontier order, 8 by 8 cells.LLM, with version 11’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 11’s code, medieval village, spiral order, 8 by 8 cells.LLM, with version 11’s code, medieval village, spiral order, 16 by 16 cells.LLM, with version 11’s code, space station, branching order, 8 by 8 cells.LLM, with version 11’s code, space station, frontier order, 8 by 8 cells.LLM, with version 11’s code, space station, random order, 8 by 8 cells.LLM, with version 11’s code, space station, spiral order, 8 by 8 cells.LLM, with version 11’s code, space station, spiral order, 8 by 8 cells.LLM, with version 11’s code, space station, frontier order, 16 by 16 cells.LLM, with version 11’s code, haunted mansion, frontier order, 8 by 8 cells.LLM, with version 11’s code, haunted mansion, random order, 8 by 8 cells.LLM, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.LLM, with version 11’s code, haunted mansion, clustered order, 16 by 16 cells.LLM, with version 11’s code, market, clustered order, 8 by 8 cells.LLM, with version 11’s code, market, clustered order, 8 by 8 cells.LLM, with version 11’s code, market, frontier order, 8 by 8 cells.LLM, with version 11’s code, market, frontier order, 8 by 8 cells.LLM, with version 11’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 11’s code, jungle temple, clustered order, 8 by 8 cells.LLM, with version 11’s code, jungle temple, frontier order, 8 by 8 cells.LLM, with version 11’s code, jungle temple, spiral order, 8 by 8 cells.LLM, with version 11’s code, desert outpost, branching order, 8 by 8 cells.LLM, with version 11’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 11’s code, desert outpost, frontier order, 8 by 8 cells.LLM, with version 11’s code, desert outpost, spiral order, 8 by 8 cells.LLM, with version 11’s code, arctic base, clustered order, 8 by 8 cells.LLM, with version 11’s code, arctic base, frontier order, 8 by 8 cells.LLM, with version 11’s code, arctic base, random order, 8 by 8 cells.LLM, with version 11’s code, arctic base, spiral order, 8 by 8 cells.LLM, with version 11’s code, cyberpunk block, branching order, 8 by 8 cells.LLM, with version 11’s code, cyberpunk block, clustered order, 8 by 8 cells.LLM, with version 11’s code, cyberpunk block, frontier order, 8 by 8 cells.LLM, with version 11’s code, cyberpunk block, spiral order, 8 by 8 cells.Batched, with version 11’s code, medieval village, clustered order, 8 by 8 cells.Batched, with version 11’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 11’s code, medieval village, frontier order, 8 by 8 cells.Batched, with version 11’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 11’s code, medieval village, spiral order, 8 by 8 cells.Batched, with version 11’s code, medieval village, spiral order, 16 by 16 cells.Batched, with version 11’s code, space station, branching order, 8 by 8 cells.Batched, with version 11’s code, space station, frontier order, 8 by 8 cells.Batched, with version 11’s code, space station, random order, 8 by 8 cells.Batched, with version 11’s code, space station, spiral order, 8 by 8 cells.Batched, with version 11’s code, space station, spiral order, 8 by 8 cells.Batched, with version 11’s code, space station, frontier order, 16 by 16 cells.Batched, with version 11’s code, haunted mansion, frontier order, 8 by 8 cells.Batched, with version 11’s code, haunted mansion, random order, 8 by 8 cells.Batched, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 11’s code, haunted mansion, spiral order, 8 by 8 cells.Batched, with version 11’s code, haunted mansion, clustered order, 16 by 16 cells.Batched, with version 11’s code, market, clustered order, 8 by 8 cells.Batched, with version 11’s code, market, clustered order, 8 by 8 cells.Batched, with version 11’s code, market, frontier order, 8 by 8 cells.Batched, with version 11’s code, market, frontier order, 8 by 8 cells.Batched, with version 11’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 11’s code, jungle temple, clustered order, 8 by 8 cells.Batched, with version 11’s code, jungle temple, frontier order, 8 by 8 cells.Batched, with version 11’s code, jungle temple, spiral order, 8 by 8 cells.Batched, with version 11’s code, desert outpost, branching order, 8 by 8 cells.Batched, with version 11’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 11’s code, desert outpost, frontier order, 8 by 8 cells.Batched, with version 11’s code, desert outpost, spiral order, 8 by 8 cells.Batched, with version 11’s code, arctic base, clustered order, 8 by 8 cells.Batched, with version 11’s code, arctic base, frontier order, 8 by 8 cells.Batched, with version 11’s code, arctic base, random order, 8 by 8 cells.Batched, with version 11’s code, arctic base, spiral order, 8 by 8 cells.Batched, with version 11’s code, cyberpunk block, branching order, 8 by 8 cells.Batched, with version 11’s code, cyberpunk block, clustered order, 8 by 8 cells.Batched, with version 11’s code, cyberpunk block, frontier order, 8 by 8 cells.Batched, with version 11’s code, cyberpunk block, spiral order, 8 by 8 cells.

rules-village-clusteredmedieval village, clustered order, 8 by 8 cells · 1 of 38

paths-village-frontiermedieval village, frontier order, 8 by 8 cells · 2 of 38

story-village-frontiermedieval village, frontier order, 8 by 8 cells · 3 of 38

routes-village-spiralmedieval village, spiral order, 8 by 8 cells · 4 of 38

structures-village-spiralmedieval village, spiral order, 8 by 8 cells · 5 of 38

large-village-spiralmedieval village, spiral order, 16 by 16 cells · 6 of 38

paths-station-branchingspace station, branching order, 8 by 8 cells · 7 of 38

structures-station-frontierspace station, frontier order, 8 by 8 cells · 8 of 38

rules-station-randomspace station, random order, 8 by 8 cells · 9 of 38

reach-station-spiralspace station, spiral order, 8 by 8 cells · 10 of 38

story-station-spiralspace station, spiral order, 8 by 8 cells · 11 of 38

large-station-frontierspace station, frontier order, 16 by 16 cells · 12 of 38

routes-mansion-frontierhaunted mansion, frontier order, 8 by 8 cells · 13 of 38

reach-mansion-randomhaunted mansion, random order, 8 by 8 cells · 14 of 38

coherence-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 15 of 38

story-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 16 of 38

structures-mansion-spiralhaunted mansion, spiral order, 8 by 8 cells · 17 of 38

large-mansion-clusteredhaunted mansion, clustered order, 16 by 16 cells · 18 of 38

paths-market-clusteredmarket, clustered order, 8 by 8 cells · 19 of 38

routes-market-clusteredmarket, clustered order, 8 by 8 cells · 20 of 38

coherence-market-frontiermarket, frontier order, 8 by 8 cells · 21 of 38

rules-market-frontiermarket, frontier order, 8 by 8 cells · 22 of 38

reach-jungle-clusteredjungle temple, clustered order, 8 by 8 cells · 23 of 38

story-jungle-clusteredjungle temple, clustered order, 8 by 8 cells · 24 of 38

paths-jungle-frontierjungle temple, frontier order, 8 by 8 cells · 25 of 38

rules-jungle-spiraljungle temple, spiral order, 8 by 8 cells · 26 of 38

rules-desert-branchingdesert outpost, branching order, 8 by 8 cells · 27 of 38

reach-desert-frontierdesert outpost, frontier order, 8 by 8 cells · 28 of 38

story-desert-frontierdesert outpost, frontier order, 8 by 8 cells · 29 of 38

coherence-desert-spiraldesert outpost, spiral order, 8 by 8 cells · 30 of 38

structures-arctic-clusteredarctic base, clustered order, 8 by 8 cells · 31 of 38

coherence-arctic-frontierarctic base, frontier order, 8 by 8 cells · 32 of 38

reach-arctic-randomarctic base, random order, 8 by 8 cells · 33 of 38

routes-arctic-spiralarctic base, spiral order, 8 by 8 cells · 34 of 38

structures-cyberpunk-branchingcyberpunk block, branching order, 8 by 8 cells · 35 of 38

coherence-cyberpunk-clusteredcyberpunk block, clustered order, 8 by 8 cells · 36 of 38

routes-cyberpunk-frontiercyberpunk block, frontier order, 8 by 8 cells · 37 of 38

paths-cyberpunk-spiralcyberpunk block, spiral order, 8 by 8 cells · 38 of 38

Version 8: the code draws the rooms

Version 8 deserves a closer look, because it is the version that took work away from the model.

Versions 1 to 7 all tried to get rooms from the model: more context, the whole map as text, less random sampling, typed placement rules. The doors still landed in open ground. The problem is that a model that decides one cell at a time cannot draw a rectangle. It never sees the whole shape that it is building. So it turns a wall line into a solid block, and it puts the door wherever the neighbours allow one.

So version 8 stops asking the model for shapes. Before the first cell is decided, code draws a plan of the map, called the blueprint. The blueprint is plain geometry, with no model involved:

The model still decides every cell, but the question is narrower. It is no longer “what goes here?” but “what goes in this wall?”, and the answer can be a window. An inside cell can be a floor or a chest. An outside cell can be anything that belongs outdoors. The blueprint comes from the test case’s seed, so a test case always gets the same blueprint.

No other change moved “a place reads as a place” this far. Doors in walls went from 0.15 to 0.96, 37 of the 38 maps got a room you can enter, and “a place reads as a place” went from 0.52 to 0.89. The price was variety. Coverage of the vocabulary fell to 0.51, because a cell inside a room is never offered the outdoor types.

v7 desert outpost: mud walls across the top of the map, a gate standing in open sand, with tents, palms and market stalls scattered around.
v7, the desert outpost: the gate stands in open sand, not in a wall. Doors in walls 0.00, and 15 types on the map.
v8 desert outpost: a walled compound with a gate in its east wall and a merchant inside, dunes and sand around it.
v8, the same seed: code drew the compound and its gate before the first cell was asked. Doors in walls 1.00, and 7 types on the map.

The general lesson: give the model the decisions that need judgement, such as what stands in this room, who walks here, or what this place is for. Give code the decisions that are geometry.

Regressions, and what the loop caught

The loop also caught two problems that I would not have seen by looking at pictures.

A new metric can change old scores. Version 1 scored 0.99 on “paths form routes”. At first, that specification only checked whether path cells join up. In a map that is all corridor, every path cell touches another one, so the score was almost perfect. Later I added a metric that checks how much of the map the paths cover, and version 1 fell to 0.74.

v1 space station: an 8 by 8 grid where every cell but one is corridor.
v1, the space station: 63 of the 64 cells are corridor, and the last one is a lab floor. Nothing here is a lone path cell, so the first path metric gave it full marks.

A table of versions is only fair if every version is scored by the same rules. So every time I added a metric, I ran it on every old map. Every time I added a test case, I drew it again with the code of each old version. The charts therefore show today’s rules applied to the old maps.

A fix in one place can lower a score in another. Version 6 dropped the options below a third of the best one. So the generator picked Jev’s first choice more often, and an unlikely tile less often. Open ground stopped being full of odd single tiles, and “ground in patches” rose from 0.22 to 0.48. But the rare types were now almost never picked, so coverage fell from 0.76 to 0.55. One mansion test case shows both effects.

v5 haunted mansion: a hall where almost every cell holds something different, a piano, a ghost, a chest, bookshelves and portraits.
v5, one mansion seed: 14 of the 15 types are on the map, and the floor is broken up by carpet and furniture. Ground in patches 0.24.
v6 haunted mansion: the same hall, now mostly plain floor, with walls down the left side and boarded windows at the bottom.
v6, the same seed: the floor is floor again, 0.85. Only 6 types appear, and the piano, the ghost and the chest are gone.

Version 11 made the same kind of trade somewhere else. It gave the space station an open deck as its ground, so the corridor shrank from half the map to a tenth. The corridors that remain are short stubs. In the same run, the path-share score (1 when paths cover 8% to 30% of the map) rose from 0.65 to 0.84. But path continuity (the share of path cells in the middle of a line, not at an end) fell from 0.73 to 0.58.

v10 space station: a 16 by 16 grid where more than half the cells are corridor, with sealed sections of blue panels.
v10 station: the corridor is the floor, so the cap on over-used types had nothing else to offer.
v11 space station: an open deck with sealed sections and short corridor stubs.
v11 station: an open deck as the ground, corridors as lines. On this map, the corridor went from 0.73 of the cells to 0.02 (0.53 to 0.12 over the six station maps); continuity paid for it.

In the one map that I would have looked at, I would have missed both problems. The mean over 38 maps showed both.

The same maps, drawn by an LLM

That is where the loop stopped. The next two sections try two other ways to fill the map: the dashed lines in the charts. Both use the code of version 11 here, and a later section runs them with earlier code.

The first question: can one answer from a language model replace many small decisions from Jev? In the LLM method, Claude Sonnet 5 draws the whole map in one answer. Its prompt holds everything that cell by cell gives Jev: the tile types and their rules, the rooms of the blueprint, and the rules of a good map. The model answers with one letter per cell. If the answer has the wrong shape, the generator tries again, up to three attempts in all. I ran it on the same 38 test cases, as v11-llm.

One tip before the results: turn the model’s thinking off. With thinking on, the first call spent 68 seconds and $0.064 on an 8 by 8 village, and returned nothing.

Mean score per specification: v11 cell by cell against the v11 LLM runMean score per specification, v11 (cell by cell) against v11-llm (LLM): Structures 0.98 vs 0.94; Paths 0.77 vs 0.75; Reachable 0.88 vs 0.85; Reads as a place 0.88 vs 0.74; Rules hold 0.99 vs 0.76; Routes to doors 0.82 vs 0.61; Landmarks 0.83 vs 0.90; Judge (GPT-5.2) 0.69 vs 0.65. Mean score per specification over the same 38 seeds 0.250.50.7510.980.94Structures0.770.75Paths0.880.85Reachable0.880.74Reads as a place0.990.76Rules hold0.820.61Routes to doors0.830.90Landmarks0.690.65Judge (GPT-5.2)v11: cell by cell (Jev)v11-llm: LLM (Claude Sonnet 5)
The mean score per specification over the same 38 test cases: cell by cell against LLM. The folded table below has the same numbers.
The numbers behind the chart
v11 against v11-llm, mean score per specification over the same 38 test cases
Specificationv11, cell by cellv11-llm, LLMChange
Structures0.980.94-0.04
Paths0.770.75-0.02
Reachable0.880.85-0.04
Reads as a place0.880.74-0.14
Rules hold0.990.76-0.23
Routes to doors0.820.61-0.20
Landmarks0.830.90+0.07
Judge (GPT-5.2)0.690.65-0.04
v11, cell by cell: the 16 by 16 village with two cottages, a path along the bottom and trees at the top.
v11, cell by cell: 256 decisions, 78 seconds, $0.023.
v11-llm, LLM: the same seed with cottages, fields, a river along the east edge, trees and paths.
v11-llm, LLM: 5 seconds, $0.007.
Cost and time per map: cell by cell against the LLMCost and time per map: 8 × 8 map, cost: cell by cell $0.005, LLM $0.006; 16 × 16 map, cost: cell by cell $0.023, LLM $0.010; 8 × 8 map, time: cell by cell 22 s, LLM 4 s; 16 × 16 map, time: cell by cell 90 s, LLM 6 s; 38-map run, cost: cell by cell $0.26, LLM $0.25. Cost and time per map (means over the run) 8 × 8 map, cost$0.005 cell by cell$0.006 LLM16 × 16 map, cost$0.023 cell by cell$0.010 LLM8 × 8 map, time22 s cell by cell4 s LLM16 × 16 map, time90 s cell by cell6 s LLM38-map run, cost$0.26 cell by cell$0.25 LLM
The times and the LLM costs are measured. The cell by cell costs are estimates from rebuilt requests, as in the cost section.
The numbers behind the chart
Cost and time per map, means over the run; cell-by-cell costs are estimates
Whatcell by cellLLM
8 × 8 map, cost$0.005$0.006
16 × 16 map, cost$0.023$0.010
8 × 8 map, time22 s4 s
16 × 16 map, time90 s6 s
38-map run, costabout $0.26$0.25

What the results show:

So which one should you use? Use the LLM for a quick map with every landmark in place; it is now an option in the generator’s AI Setup. Use cell by cell for rooms that close, doors in walls and rules that never break, and to watch the map fill. The LLM got most of this right on its first try, while cell by cell needed many rounds of tuning and a blueprint drawn by code. Price is not the difference, because both cost the same. The difference is control over each cell.

The same decisions, batched

The LLM is fast because it sends one request. It also gives up the typed decision, which is the part of the project that I care about most. So I tried a third way. Jev’s decisions endpoint (the web address that answers typed questions) accepts a list of questions, not only one. I kept every per-cell question exactly as it was, and sent them all in one request. I call this batched: an 8 by 8 map usually becomes one request with 64 questions, instead of 64 requests.

Every question is built by the same code as in cell by cell. The catch: all the answers come back together, so no question knows what the other cells in its request will get. Every question sees the same map, with empty cells where the rest of the request is. So the rules that look at other cells, such as “never next to a portrait” or “exactly one staircase”, have nothing to check.

One request holds at most about 65,000 tokens. To fit a whole 8 by 8 map, I moved the instruction that is the same for every cell into the shared part of the request, so it is sent only once. A 16 by 16 map still needs four or five requests, sent one after another.

I ran it on the same 38 test cases, as v11-batch. Jev answered all 3,008 questions, and none came back broken.

Mean score per specification: v11 cell by cell against the v11 batched runMean score per specification, v11 (cell by cell) against v11-batch (batched): Structures 0.98 vs 0.97; Paths 0.77 vs 0.47; Reachable 0.88 vs 0.87; Reads as a place 0.88 vs 0.91; Rules hold 0.99 vs 0.83; Routes to doors 0.82 vs 0.78; Landmarks 0.83 vs 0.66; Judge (GPT-5.2) 0.69 vs 0.57. Mean score per specification over the same 38 seeds0.250.50.7510.980.97Structures0.770.47Paths0.880.87Reachable0.880.91Reads as a place0.990.83Rules hold0.820.78Routes to doors0.830.66Landmarks0.690.57Judge (GPT-5.2)v11: cell by cell (Jev)v11-batch: batched (Jev)
The mean score per specification over the same 38 test cases: cell by cell against batched. The folded table below has the same numbers.
The numbers behind the chart
v11 against v11-batch, mean score per specification over the same 38 seeds
Specificationv11, cell by cellv11-batch, batchedChange
Structures0.980.97-0.01
Paths0.770.47-0.30
Reachable0.880.87-0.01
Reads as a place0.880.91+0.03
Rules hold0.990.83-0.16
Routes to doors0.820.78-0.04
Landmarks0.830.66-0.17
Judge (GPT-5.2)0.690.57-0.12

The effect is clearest on one map: the same 16 by 16 mansion, from the same test case, drawn both ways.

v11, cell by cell: a 16 by 16 haunted mansion with panelled rooms, a few ghosts, a piano and one staircase.
v11, cell by cell: 256 requests, 113 seconds. One staircase, which is what its rules ask for.
v11-batch, batched: the same mansion, with staircase tiles spread in patches across the halls and the grounds outside.
v11-batch, the same seed: 6 requests (one refused for size), 4 seconds. Thirty-nine staircases, in patches, indoors and out.

The 39 staircases are not a bug. Each of those cells was asked, on its own, what goes in an inside cell of a mansion that has no staircase yet, and each one gave the same sensible answer. In cell by cell, only the first cell gets that answer, because after it the map has a staircase and code stops offering it. In a batch, no cell knows what the others chose. The same cause explains the scores that fell:

What code decides did not change, because code applies it to every cell in both modes: the buildings and their doors come out the same. The maps even look tidier, but only because they repeat the same tile.

v11, cell by cell: an 8 by 8 village with two cottages, a dirt path, a villager, a well and a market stall.
v11, the village: 64 requests, 21 seconds. A villager, a well, a stall and a path between the cottages.
v11-batch, batched: the same village, two cottages and their doors on unbroken green and barley, with nobody in it.
v11-batch, the same seed: 1 request, 1 second. The cottages are right, and nothing else is there.

On speed and cost, batched is a clear win:

The full comparison
The same 3,008 decisions, sent two ways
What the run didv11, cell by cellv11-batch, batched
Decisions3,0083,008
Requests to Jev3,00849 answered, 1 refused for size
Input tokensabout 6.2 million2.04 million
Cost of the 38 mapsabout $0.26$0.086
Time drawing the 38 maps1,046 s40 s
One 8 × 8 map64 requests, 22.2 s, $0.0051 request (one map took 2), 0.85 s, $0.0018
One 16 × 16 map256 requests, 90.2 s, $0.0234.3 requests, 3.4 s, $0.0072
Fallback cells00

So Jev answers a whole map of typed questions in one request, much faster and cheaper. But the maps get worse in exactly the way the design predicts: every decision that needed a neighbour lost it. The judge gives 0.57, against 0.69 for cell by cell.

A better prompt would not fix this. To make batched work here, the fix would be to move more of what cells now learn from their neighbours into the blueprint, which is drawn before any cell is asked. That is the lesson of version 8 again.

LLM and batched, at every stage

Both experiments above used the code of version 11. So one question is left: did the LLM and batched improve along with cell by cell, or were they this good from the start? To find out, I ran both again with the code of four earlier versions: v1 (before any quality work), v4 (the lines), v7 (the typed rules) and v8 (the blueprint). These are the dashed lines in the charts at the top.

Each run gets only what its version knew: its own code, its own vocabulary, and only the rules that the version had. One rule is in every LLM prompt, because the v11 prompt has it: every walkable cell must be reachable.

A difference smaller than 0.05 is noise: a repeat of the v11 batched run landed within 0.05 of the first run on every score.

The numbers for every run
Cell by cell, LLM and batched at five versions, mean score per specification over the same 38 seeds. A dash is a version with no typed rules to check, cell by cell included.
RunStructuresPathsReachableReads as a placeRules holdRoutes to doorsLandmarksJudge (GPT-5.2)
v1, cell by cell0.180.740.690.48–1.000.070.09
v1-llm, LLM0.920.750.870.65–0.540.910.68
v1-batch, batched0.580.610.790.45–1.000.210.20
v4, cell by cell0.820.800.770.50–0.660.660.48
v4-llm, LLM0.910.790.890.66–0.510.930.68
v4-batch, batched0.780.550.790.38–0.790.700.32
v7, cell by cell0.950.800.820.520.990.610.780.48
v7-llm, LLM0.920.760.900.620.800.650.900.68
v7-batch, batched0.640.570.800.390.940.640.470.25
v8, cell by cell0.990.750.840.890.990.780.770.65
v8-llm, LLM0.940.760.820.780.760.650.840.65
v8-batch, batched0.980.660.850.870.990.820.710.57
v11, cell by cell0.980.770.880.880.990.820.830.69
v11-llm, LLM0.940.750.850.740.760.610.900.65
v11-batch, batched0.970.470.870.910.830.780.660.57

What the runs show:

The judge's score against the time to draw one map, one point per run One point per run: the mean time to draw one map against the judge's score. Cell by cell, versions 1 to 11, stays at 24 to 28 seconds a map while its score climbs from 0.09 to 0.71. The LLM, run with the code of five versions, sits at 4 to 6 seconds and scores 0.65 to 0.68 from its first run. Batched, with the same five, is the fastest at 0.9 to 1.7 seconds, and scores 0.20 to 0.57. The judge’s score against the time per map logarithmic time scale 0.0 0.2 0.4 0.6 0.8 0.5 s 1 s 2 s 5 s 10 s 20 s 50 s seconds to draw one map (mean over the 38 test cases) v1: 27.2 s per map, judge 0.09v2: 26.8 s per map, judge 0.24v3: 27.2 s per map, judge 0.45v4: 26.3 s per map, judge 0.48v5: 27.1 s per map, judge 0.54v6: 26.8 s per map, judge 0.48v7: 24.9 s per map, judge 0.48v8: 24.6 s per map, judge 0.65v9: 23.7 s per map, judge 0.69v10: 25.4 s per map, judge 0.71v11: 27.5 s per map, judge 0.69 v1-llm: 6.2 s per map, judge 0.68v4-llm: 5.3 s per map, judge 0.68v7-llm: 4.9 s per map, judge 0.68v8-llm: 5.6 s per map, judge 0.65v11-llm: 3.9 s per map, judge 0.65 v1-batch: 1.4 s per map, judge 0.20v4-batch: 1.7 s per map, judge 0.32v7-batch: 1.5 s per map, judge 0.25v8-batch: 0.9 s per map, judge 0.57v11-batch: 1.1 s per map, judge 0.57 v1 v4 v8 v10 v1 v11 v1 v8, v11 Cell by cell, v1 to v11 LLM, five versions Batched, five versions
Each point is one run. Cell by cell stays at about 25 seconds a map at every version, and its score climbs version by version. The LLM takes about 5 seconds and is near the top from its first run. Batched is the fastest, at about 1 second, and the lowest. All times are measured. Cost is left out: the cell by cell runs did not save their token counts, and the cost section already compares the three.
The numbers behind the chart
Time per map and judge score, for every run
RunSeconds per mapJudge (GPT-5.2)
v1, cell by cell27.2 s0.09
v2, cell by cell26.8 s0.24
v3, cell by cell27.2 s0.45
v4, cell by cell26.3 s0.48
v5, cell by cell27.1 s0.54
v6, cell by cell26.8 s0.48
v7, cell by cell24.9 s0.48
v8, cell by cell24.6 s0.65
v9, cell by cell23.7 s0.69
v10, cell by cell25.4 s0.71
v11, cell by cell27.5 s0.69
v1-llm, LLM6.2 s0.68
v4-llm, LLM5.3 s0.68
v7-llm, LLM4.9 s0.68
v8-llm, LLM5.6 s0.65
v11-llm, LLM3.9 s0.65
v1-batch, batched1.4 s0.20
v4-batch, batched1.7 s0.32
v7-batch, batched1.5 s0.25
v8-batch, batched0.9 s0.57
v11-batch, batched1.1 s0.57

For the per-cell design, the honest lesson is this. Many small decisions that do not see each other are harder to get right than one decision about the whole map. They need more help from code, and much more tuning. What cell by cell gets in return is control: code can check and limit every single cell. These are five runs of each, on one generator, so read them as measurements, not laws.

Running the loop with an agent

Most of the versions were written by an agent, Claude Code, in a loop that I set up and then mostly watched. One turn went like this:

1. Read the last version's scores, and the maps where it lost.
2. Write down one theory, such as:
   - "the model does not see enough of the map"
   - "the sampling adds noise"
   - "the rules are prose, so the model treats them as advice"
3. Change the code, with tests.
4. Commit, so the version in Galtea records exactly what was measured.
5. Run the 38 test cases.
6. Compare with the last version.
7. Write the result into the project's README, one paragraph per
   version, so the next turn starts with the memory of this one.

My part was smaller, and I think it was the part that mattered:

The agent also broke things:

Each one became a written rule for the next turn. The loop does not promise that every version is better. It promises that you will know.

What I have not tried

Both ways of using Jev in this post, cell by cell and batched, are flat. There is one level of decisions, and every decision is about one cell:

world → cell, cell, cell, cell, … 3,008 times.

Every question has the same size and the same shape, and they go either one at a time or all at once. There is a third shape that I have not built. In it, the decisions form a tree instead of a list, and each layer asks about what the layer above it decided:

world → regions → structures → rooms → objects.

The point is not fewer decisions. The point is that later decisions depend on earlier ones by design, instead of hoping that the model reads a map sketch and works it out. A cell in the kitchen of a house in the old quarter is a much narrower question than a cell at (7, 12). And the model decided that narrowing itself; nobody hard-coded it. This project keeps pointing the same way: the blueprint in version 8 is one layer of such a tree, written by hand in code, and it moved more numbers than any prompt change.

It could suit a decision model well. Each step is still a small typed choice with a few options, which is what these models are fast and cheap at. The structure and the dependencies live in the shape of the tree, not inside one long prompt. It may also fail for reasons that I cannot see yet. One wrong early branch would ruin a whole district, while the flat design fails one cell at a time.

I have not built it, and I have not measured it. There are no numbers for it in this post, in the version table, or in Galtea. It is the next experiment I want to run. Until it goes through the same 38 seeds, it is only an idea that sounds good, and this project taught me not to trust those.

I have not compared the fill orders either. Cell by cell can visit the cells in five orders: a spiral from the centre, frontier growth, clustered patches, a branching walk, or pure random. Every version ran all five, because each test case uses one: 12 spiral, 12 frontier, 8 clustered, 3 branching and 3 random. But each order ran on different places, so the scores cannot tell the orders apart. A fair comparison would draw the same places in every order.

What is still wrong

The corridors are stubs. A route between two doors is a shape, and shapes are the plan's job, so the next version should draw the paths the way it draws the rooms. Rooms are often empty, because the state says what the world lacks, but not what a kitchen holds. Free-standing barriers, such as trees, dunes and pipes, still split some maps in two. And rooms never share a wall, which real streets do all the time. Each of these problems has a number now, and that is the point.

You can try the generator with your own OpenRouter key, read the code and the roadmap, or look at every map of every version, which are committed to the repository next to their scores.

The numbers

Mean score per specification over the same 38 seeds, with every metric as it stands today. A specification cell is highlighted when it moved by 0.05 or more against the previous version; the judge column is not highlighted. The judge column is GPT-5.2 answering "how much does this map read as the setting?" on every map, from 0 to 1.

AI World Gen, versions 1 to 11, mean score per specification (0 to 1)
VersionBarriers form structuresPaths form routesReachable and playableA place reads as a placeThe vocabulary's rules holdRoutes lead to doorsLandmarks and storyJudge
v10.180.740.690.48–1.000.070.09
v20.390.530.750.43–0.770.610.24
v30.680.660.820.50–0.620.790.45
v40.820.800.770.50–0.660.660.48
v50.930.820.810.53–0.700.760.54
v60.950.810.810.51–0.600.680.48
v70.950.800.820.520.990.610.780.48
v80.990.750.840.890.990.780.770.65
v90.980.800.870.870.980.870.840.69
v100.980.780.870.880.990.860.830.71
v110.980.770.880.880.990.820.830.69

“The vocabulary’s rules hold” has no score before v7: the typed rules it checks came with v7, and the earlier numbers were a later rescore of 5 to 23 maps against rules those versions never had. v1's routes score is a mean over few maps, because v1 drew no doors, so only “a route reaches the edge” was scored, on the maps that had a route. The judge was run on the older versions after the fact, at the time of writing, so that this column is complete.