The missing-semicolon game is a clash-detection drill wearing a lab coat
A browser game hides one missing semicolon in 187,421 lines — and accidentally teaches BIM coordinators why open, greppable IFC beats lossless every time.
Researchers keep proving the same uncomfortable thing: the line between data and code is thinner than any spec pretends. Tom’s Hardware reported this year on a supply-chain attack in which teams tricked Fortune-500 AI agents into running arbitrary commands through a public llms.txt guidance file — a single block of text, read in the wrong context, becomes an instruction. One token flips a system. That is the frontier version of a very old office nightmare.
Now someone has turned the nightmare into a game. At semicolon.trm.sh, TRM’s Semicolon Inspector drops you into a codebase of exactly 187,421 lines with one instruction: there is one missing semicolon, find it. Up to six inspectors with proximity voice, WASD to walk the sheets, scroll to zoom. It is the most honest piece of software I have opened in a while. “Same office. Same missing semicolon.” Relatable, at last.
The joke lands because it is not a joke. It is the exact texture of the work — one broken token hiding inside a system too large to eyeball. Swap “semicolon” for “the one wall that didn’t survive the IFC export” and you have described a normal Tuesday on a BIM coordination desk. The compiler finds a missing semicolon in a second; the standup finding the dropped element takes forty minutes.
←TODAY: In 2026 a browser toy about one missing character among 187,421 lines mirrors what BIM coordinators do all day — hunt the single member that broke.
→3012: The offices still standing in Zurich-3012 are the ones whose files a stranger could still open and diff, decades after the vendor went dark.
Fulcrum: “Find the broken line” only stays cheap while the format is readable enough to search — open beats lossless, and both beat proprietary.
This is where the game stops being funny and starts being a spec. The reason you can inspect 187,421 lines at all is that they are plain text — searchable, diffable, greppable. That property is exactly what the AEC industry has been fighting to win back for construction data through IFC, standardised as ISO 16739. As PAZ has covered in our archive on BIM interoperability, “open” and “lossless” are not the same word: two tools can both claim IFC4 compliance and still lose a profile name or a material between them. The missing semicolon is right there in your model, every day. You just cannot always search for it — unless the format lets you.
Atelier: An office living with AI copilots this quarter should treat every model exchange like that game — assume exactly one thing broke in the round-trip, then go prove it did not. The Monday move: add a five-line IFC diff to your issue-out checklist so a coordinator runs it before the file leaves the building, not after the site calls. Make “which element fell out?” a one-command question, not a forty-minute one.
Hack: Diff two IFC exports and let the one element that fell out of the round-trip name itself. Export your frame from the authoring tool and from the receiving tool, then have IfcOpenShell walk both and print what exists in one but not the other. The gap between the two sets is your missing semicolon — named, not guessed.
import ifcopenshell
a = {e.GlobalId: e.is_a() for e in ifcopenshell.open("model_A.ifc").by_type("IfcElement")}
b = {e.GlobalId: e.is_a() for e in ifcopenshell.open("model_B.ifc").by_type("IfcElement")}
for gid in a.keys() - b.keys():
print("dropped in round-trip:", gid, a[gid])Run it once and “the export looks fine” stops being an opinion. The line that prints is the element the second tool silently forgot — the wall, the column, the duct that the render will happily hide until the bricklayer finds it for you.
Here is the part my generation learned the hard way, from the vantage of a much later decade: the buildings that aged badly were not the ugly ones, they were the ones whose files nobody could open once the format went dark. A game can hunt a semicolon across 187,421 lines only because the text is legible. Pick your stack this quarter with the same test in mind — when the vendor disappears, can a 25-year-old still grep the file? Open the game, laugh, then go add the diff to your checklist.
SOURCE · ↗
PAZ Kaffi · multidisciplinary editorial, led by PAZ Academy