Tools / Level Builder
Level Builder
Describe a level in words; Qwen 3.8 picks from tested building blocks and a compiler lays them out into a level that always works.
How it works
The steps
- Ask for a level in words: a theme (lava caves, candy clouds, castle ramparts), length and difficulty.
- Qwen 3.8 answers with a RECIPE only: a name, a material, and a list of chunks picked from 15 pre-tested pieces, each easy or hard. A json_schema with a fixed list of chunk names means the answer is always valid and short.
- The compiler lays the chunks end to end. Each chunk starts from where the last one ended, so any order joins up and nothing overlaps.
- The level checker proves every block can be reached and the flag can be reached; the level then loads straight into BLOCK RUNNER.
Examples
Four compiled levels, side view
Green and white: blocks. Blue: moving platforms (faded = where they travel to). Red: spikes. Yellow: coins. Purple: an enemy and its patrol. The small figure is the start, the flag is the goal. Each one plays in BLOCK RUNNER.
Molten Depths - "lava caves", 7.8 s, 244 tokens
Play itlevel JSONOvergrown Temple - "jungle ruins", 6.6 s, 221 tokens
Play itlevel JSONCandy Cloud Drift - "candy clouds", 6.9 s, 222 tokens
Play itlevel JSONSpiral Ascent - "spiral tower", 3.6 s, 130 tokens
Play itlevel JSONChip with + = the hard version of that chunk.
All 12 from the bench
Recipes Qwen 3.8 wrote
| Level | Theme | Recipe | Time | Checker |
|---|---|---|---|---|
| Molten Depths | lava caves | stairs downspike pithexagon hopscheckpoint padmoving slide +enemy patrol +stairs up +moving lift +run jump + | 7.8 s | passed |
| Sky Islands | sky islands | flat hopsplatform hopscheckpoint padspike pitmoving slide +enemy patrol +hexagon hops +moving lift + | 4.5 s | passed |
| Frozen Cascade | frozen waterfall | hexagon hopsmoving liftspike pitcheckpoint padplatform hops +spike pit +drop down +moving slide +enemy patrol + | 7.8 s | passed |
| Overgrown Temple | jungle ruins | stairs upside ledgespike pitcheckpoint padturn back +enemy patrol +moving lift +hexagon hops + | 6.6 s | passed |
| Castle Ramparts | castle ramparts | flat hopsstairs upcheckpoint padspike pitenemy patrolmoving lift +hexagon hops +spike pit + | 6.9 s | passed |
| Candy Cloud Drift | candy clouds | platform hopsstairs upcheckpoint padmoving slidehexagon hops +spike pit +moving lift +stairs down + | 6.9 s | passed |
| Mesa Mirage | desert mesas | flat hopsstairs upside ledgecheckpoint padspike pit +moving slide +stairs down +run jump + | 6.3 s | passed |
| Whispering Woods | haunted forest | flat hopshexagon hopsside ledgecheckpoint padmoving slide +spike pit +stairs up +platform hops + | 6.4 s | passed |
| Harbor Docks | harbor docks | flat hopsside ledgespike pitcheckpoint padmoving slidestairs uphexagon hops +moving lift +run jump + | 7.1 s | passed |
| Volcano Ascent | volcano climb | low stepsspike pitflat hopscheckpoint padmoving lift +enemy patrol +spike pit +run jump + | 5.9 s | passed |
| Crystal Mines | crystal mines | stairs uphexagon hopscheckpoint padspike pit +moving lift +enemy patrol +drop down + | 5.1 s | passed |
| Spiral Ascent | spiral tower | stairs uphexagon hopsturn backcheckpoint padmoving lift +stairs up +spike pit +platform hops + | 3.6 s | passed |
The vocabulary
15 chunks the model chooses from
| Chunk | What it is |
|---|---|
| flat hops | three single blocks in a row at the same height (easy gaps 1.5, hard = run-jump gaps 2.2) |
| platform hops | three thin floating platforms in a row (easy gaps 1.5, hard 2.2) |
| hexagon hops | three hexagon pillars zig-zagging left/right (easy gaps 1.0, hard 1.6) |
| stairs up | three blocks climbing +1 each (route goes up 3) |
| stairs down | three blocks stepping down -1 each (route goes down 3) |
| low steps | four half-height blocks climbing +0.5 each (route goes up 2) |
| drop down | one big drop onto a wide block (easy -3, hard -4 with a longer jump) |
| run jump | a long block, then one full run-jump onto a wide block |
| side ledge | a long block with a coin ledge to the side (hard = the ledge is 1 higher) |
| turn back | the route turns away from the camera (into -z) over three blocks (hard = climbing) |
| moving slide | a wide pad, then a moving platform carries the player across a pit (easy 6 units, hard 9) |
| moving lift | a wide pad, then a lift carries the player up to a high pad (easy +3, hard +4) |
| spike pit | jump over a spike pit (hard = longer jump and spikes on the landing) |
| checkpoint pad | a wide checkpoint pad with a fence (hard = one step higher) |
| enemy patrol | a wide 4-unit floor with an enemy walking back and forth (hard = faster enemy) |
Bench, 31 Oct 2026
Four ways to ask for a level
| Way | Model | Pass the checker | Valid JSON | Cut off | Median time |
|---|---|---|---|---|---|
| Raw coordinates, pretty JSON | Qwen 3.8 | 17% | 33% | 50% | 252 s |
| Raw coordinates, compact JSON | Qwen 3.8 | 8% | 58% | 42% | 312.5 s |
| Compact JSON + json_schema | Qwen 3.8 | 8% | 100% | 0% | 45.6 s |
| Chunk recipe + compiler | Qwen 3.8 | 100% | 100% | 0% | 6.5 s |
| Compact JSON + json_schema | Qwen3-Coder-Next | 8% | 100% | 0% | 71.9 s |
| Chunk recipe + compiler | Qwen3-Coder-Next | 100% | 100% | 0% | 11.1 s |
| Chunk recipe + compiler | Qwen3-30B-A3B-Instruct-2507 Q4_K_M | 100% | 100% | 0% | 0.5 s |
Models and licences
What it runs on
| Step | Model or tool | Licence |
|---|---|---|
| Write the recipe | Qwen 3.8 Flash Next, thinking off, json_schema | open weights (Qwen) |
| Also works | Qwen3-Coder-Next (12/12, 11 s) | open weights (Qwen) |
| Compile + check | chunk compiler and level checker (ours) | ours |
| Blocks, enemies, coins | Kenney Platformer Kit | CC0 |
Why chunks: asked for raw coordinates, the same model passed only 1-2 of 12 levels - half the answers ran away into hundreds of repeated blocks, and even perfectly valid JSON put a moving platform through a block or left the flag floating. The model is good at choosing; code is good at geometry. The open question now is variety, not validity.
Benchmarks and live pages