A computational design tool built in 48 hours. It reads a real land parcel, generates a valid housing block layout from scratch, and exports a structured JSON file and a 3D model, all verified against 15 interdependent building rules in under 35 seconds.
The Brief
The DASH Configurator Hackathon gave teams a single task: build a tool that reads a real land parcel and produces a complete housing block layout with no manual editing after the fact. Output had to be a structured JSON file describing the configuration and a matching 3D model.
Five parcels were given at the start. Five more dropped in the final hours, with no warning about their geometry or constraints.
The tool had to produce valid results on parcels it had never seen before.
The Problem
The housing block had to satisfy 15 rules at once. Fire separation distances depend on window area. Window area depends on which unit types are placed. Unit types set bay widths. Bay widths are limited by the parcel boundary. One change anywhere in that chain could quietly break something three steps down.
The hard part was not generating a layout. It was generating one where every constraint held simultaneously, across a decision space with millions of possible combinations, fast enough to be useful.
The Approach
Process
Six steps, left to right. Steps 3 and 4 loop - if validation fails, the search restarts with a new candidate configuration.
Key Decisions
Partway through the hackathon the organizers clarified that every floor within a block had to be structurally identical. Every layout generated up to that point was invalid. The rule went straight into the checker, the existing work was scrapped, and the generator was rebuilt around the new constraint. It cost several hours.
Two organizer documents contradicted each other on bay width limits. One implied a wider option was allowed; a combination list included a case that exceeded the stated maximum. The stricter reading was enforced as a hard constraint. Losing a small amount of flexibility was worth more than the risk of a rule failure on submission.
The optimizer found that a single-storey block with an elevator core was technically valid and slightly improved some metrics. It was cut. A minimum of 3 storeys per block was added, not because any rule required it, but because a one-storey building with an elevator is not something anyone should have to stand behind.
The hardest decisions were not technical. They were about what counts as a valid answer when the rules don't say no.
The Rules
One failure invalidates the whole result. The diagram below shows how they group and where they interact.
Rules
The rules split into two types. Compliance rules are pass/fail - any single failure invalidates the result. Scoring goals are optimized during the search simultaneously.
How many units fit, scored as a power curve against the theoretical maximum. Overbuilding scores zero.
Weight 40%Deviation from equal spread across Studio, 1-Bed, 2-Bed, 3-Bed and 4-Bed (20% each target). Closer to equal = higher score.
Weight 35%Net unit area divided by gross floor area. Linear curve 0.70 (zero) to 0.95 (100). Penalizes wasted corridor and core area.
Weight 25%Unit type sets window area, which determines required fire separation distance (R6), which constrains where a block can be placed (R1), which limits which unit combinations fit (R8 + R9). Every change to the unit mix silently changes what is geometrically possible.
Reliability
Before the final five parcels dropped, a set of deliberately extreme synthetic cases were run: 300 m strips, triangular sites, L-shaped parcels with 260 m arms, sites with internal holes, FAR-capped parcels, a maximum height of 3 storeys, and a site barely wide enough for one block.
Two failures surfaced and were fixed. One caused wrong placements on very large sites. The other froze when the block count exceeded the search's original limit. Both would have produced bad results on real parcels. Neither shipped.
Demo
The tool reads the parcel geometry, evaluates constraints in real time, and generates a valid housing block layout - complete with unit types, dimensions, and a 3D model export.
Recorded during the 48-hour hackathon. Results not yet publicly released.
Outcome
The tool processed all 10 parcels, including the five that arrived in the final hours, with no manual adjustments. Every result passed all 15 rules, confirmed by two independent checkers and the official schema validator. Every 3D model exported with zero errors.
It ran offline from a double-click in any modern browser. The same parcel always produced the same file. Built, tested and submitted in 48 hours.
Competition result pending.