600 random buildings, designed from start to finish
To find out whether the engine works in general and not only on hand-picked examples, I let it design 600 randomly generated buildings: 2 to 10 storeys, different grids, spans, loads, soils and earthquake zones. A building counts as passed only if every member, every connection, the foundations and the seismic rules all check out.
Share of buildings that pass every check, version by version
The first run was humbling: one building in three. Each later version fixed the most common reason for failure, and the same 600 buildings were designed again.
Strong everywhere except the hardest earthquake cases
Splitting the 600 by structural system and earthquake zone shows where the remaining failures are.
Buildings that pass, by type
Each bar is the share of that group that passes every check.
Why the others fail
A building can fail for more than one reason. Most of these are tall braced frames in the highest earthquake zone, where the forces at the column bases become very large.
Realistic steel weights, in about a minute and a half
Steel used per square metre of floor
Time to design one building
Predicting the result before designing it
Once hundreds of verified designs exist, a model can learn from them. This one reads only the brief and predicts how much steel the finished design will need. It is useful for exploring options in real time; the full design still has the last word.
Predicted against verified steel weight, for buildings the model never saw
Choosing the next move without trying them all
The slow way to improve a design is to try every possible change with full physics. A learned decision model looks at the state of the design and picks the change most likely to help. This is an early result, measured on an earlier version of the engine, and it is not yet what designs the buildings above.
Full physics runs needed per building
Fewer is faster. The scale is logarithmic: each gridline is ten times the last.
How often it reaches a passing design
Within a budget of 100 moves, on buildings it had not seen.
Checked against things other than itself
| What was checked | Against | Result |
|---|---|---|
| The analysis engine: displacements, member forces, reactions | An independent open-source solver (PyNite) | |
| Second-order (P-Delta) analysis of whole buildings | The same independent solver | Displacements agree to within 3 × 10⁻¹³ m |
| Every finished design | A second solver that rebuilds the model from the exported file | Forces agree to within a millionth of a newton |
| Each design-code check | Calculations worked by hand | 545 automated tests pass |
| Floor vibration from walking | The worked example in AISC Design Guide 11 | Same frequency and acceleration |
| Coped beam ends | A published design example (AISC Engineering Journal, 2018) | Same strength, 116 kips |
| Composite beam strength | Independent numerical integration of the cross-section | Agree to 0.01% |
| Exported building models (IFC) | An independent BIM library (IfcOpenShell) | No schema errors; geometry matches the design |
What these results do not show
- The 600 buildings are generated, not real projects. They are regular steel frames on rectangular grids.
- Costs use placeholder unit rates, so cost comparisons are relative.
- No design has been reviewed by a licensed engineer or built.
- The decision model was measured on an earlier, simpler version of the engine.
- About one building in nine still fails a check, mostly tall braced frames in the highest earthquake zone.
- Concrete structures, irregular shapes and shear walls are not covered.