bimtex
For agents

Agent benchmark

The current benchmark, including failures, because a checker that hides misses cannot improve.

The benchmark asks a model to produce a building, runs real validation, returns diagnostics and gives it one repair turn. A pass requires valid NDJSON and zero blocking diagnostics after repair.

Current result — gpt-5.6-sol, 20 briefs, given buildPromptContext({ examples: 1 }) at the abridged card size that existed when the run was recorded:

6 of 20 validate first time; 11 of 20 validate after one repair.

A score with no model beside it says nothing: you cannot tell a hard language from a weak run. The number above belongs to one model on one prompt budget, and it will not transfer.

The failures are useful: they cluster around references, multi-level topology, openings that overrun hosts and site intent that cannot be repaired by changing one number. Those are exactly the places where a narrower authoring surface or better diagnostic earns more than a larger prompt.

Run it locally:

npm run benchmark:llm              # ask the model, validate, repair, score
npm run benchmark:revalidate       # re-score saved answers against today's rules
npm run benchmark:refresh-prompts  # rebuild the prompts without calling a model

benchmark:revalidate is the one that keeps this page honest: it re-runs the current validator over answers a model already gave, so a change in the rules shows up as a change in the score rather than silently rewriting history.

The output directory keeps the prompt, first response, repair response, diagnostics and compiled result together. Nothing is scored from prose.

Inspect every run

Each link opens the saved NDJSON in the model inspector. “First” is the agent's untouched answer; “repair” is the answer after it received structured diagnostics once.

SampleFirst passAfter repairOpen source
01-cabinresidentialvalidvalidfirstrepair
02-two-bedroom-houseresidentialvalidvalidfirstrepair
03-two-storey-houseresidentialvalidvalidfirstrepair
04-pool-houseresidentialvaliddoor/blockedfirstrepair
05-neighbourhood-shopretailopening/overlap, door/blockedvalidfirstrepair
06-pharmacyretailopening/overruns, door/blockedvalidfirstrepair
07-small-showroomretailopening/overruns, opening/overlapvalidfirstrepair
08-caferestaurantopening/overruns, opening/overrunsvalidfirstrepair
09-drive-through-qsrrestaurantdoor/blocked, door/blocked, door/blocked, door/blockedvalidfirstrepair
10-family-restaurantrestaurantopening/overruns, opening/overlapvalidfirstrepair
11-warehouseindustrialschema/required, schema/required, site/parking-outsideschema/required, schema/required, site/parking-outsidefirstrepair
12-workshopindustrialschema/required, schema/required, door/blocked, site/parking-outsideschema/required, schema/required, site/parking-outsidefirstrepair
13-cold-storageindustrialschema/required, schema/required, site/parking-outsideschema/required, schema/required, site/parking-outsidefirstrepair
14-officeofficevalidvalidfirstrepair
15-two-storey-officeofficeschema/required, schema/required, stair/no-void, room/unreachable, room/unreachable, room/unreachable, room/unreachable, room/unreachable, room/unreachable, level/no-entry, door/blocked, door/blocked, site/parking-outsideschema/required, schema/required, site/parking-outsidefirstrepair
16-permit-site-plansitevalidvalidfirstrepair
17-parking-lotsiteschema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/enum, schema/enumschema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/required, schema/enum, schema/enumfirstrepair
18-community-hallcivicschema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/typeschema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/type, schema/typefirstrepair
19-walk-upmultifamilyschema/required, schema/required, site/parking-outsideschema/required, schema/required, site/parking-outsidefirstrepair
20-petrol-stationretailschema/required, schema/required, schema/required, schema/required, opening/overruns, door/blockedschema/required, schema/required, schema/required, schema/requiredfirstrepair

On this page