Research

Design freedom inside a closed catalogue grows by new verified parts, and every refusal names its rule.

A generative house tool faces a choice every time a design sits outside what its engineering can prove: guess, or refuse. Kult refuses, and treats the refusal as a product. Every rejection names the check that fired and the field in the design the user can change. Freedom then grows the only trustworthy way it can, by adding verified parts and smarter placement to the catalogue; the checks themselves stay fixed. In the past week alone that method has unlocked windows above doors, houses 10.8 m wide, roof depths to 7.2 m, and the classic Swedish L-shaped house.

Finding

The engine builds every house from a closed catalogue of 19 junction types (how a rafter meets a plate, how a window buck sits in a wall, how two roof bodies join at an inner corner). Closed means checkable: a standing test corpus exercises every one of the 19 junctions, and a lint fails the build if a new junction ships without a corpus house that uses it. The same corpus pins eight deliberate refusals, so a rule that silently stops rejecting also fails the tests. Within this fence the expressible space has been measured: gable roofs verify green across depths of 3.6–7.2 m and pitches of 5–33° — including asymmetric gables with a different pitch per slope (a low solar-panel fall south, a steep face north) — mono-pitch roofs to an honest 24° ceiling, and house widths to 10.8 m when an interior partition is present to brace the roof. Where a family's design falls outside the fence, the tool answers with the rule that stopped it and the lever that would change the outcome.

Method

The corpus enforces its own coverage. It holds 19 generated houses: 13 that must pass the full validation gate (structural checks per Eurocode 5, geometry, assembly order) and 6 that must be refused at a named rule. A coverage test asserts that every junction type in the catalogue appears in at least one corpus house; the catalogue's own lint requires every junction to declare either a fastener pattern with numeric diameters or a written reason why it has none.

The published spans come from parameter sweeps through the real gate rather than from datasheet arithmetic. The roof-form sweep of 2026-07-10 ran the register of depths and pitches and recorded where the gate flips. The width sweep behind the 10.8 m figure shows the mechanism plainly: at 10.8 m with no partition, the roof-diaphragm shear check refuses the house; adding one interior partition, engineered as a bracing line with its own shear-transfer junction, brings the same house through with margin. The unpartitioned limit sits near 9.6 m.

Freedom is added part by part, and three recent expansions show the pattern. Windows above doors were impossible until a new junction (a shared opening buck with a non-structural transom board, engraved TRANSOM so it cannot be confused with the structural header) entered the catalogue. Long walls used to refuse windows that landed on the top-plate splice; now the splice position is the engine's variable, not the user's, and the expander searches for a legal splice placement around the openings before giving up. The L-shaped house arrived as two complete rectangular bodies joined along a declared seam, so each body passes the entire single-body physics unchanged. In all three cases the validation gate was not touched.

The fence is also stress-tested against taste. A 2026-07-05 review pushed 30 hand-designed, deliberately reasonable family houses through the gate to find where the fence and common sense disagree. It found the gate too strict in places and, once, too lax, and both classes became tracked fixes. The founder's own design sessions serve the same purpose: "it would not let me draw a window over a door" is what put stacked openings at the top of the queue.

Numbers

The fence, as of 2026-07-11
ItemValue
Junction types in the catalogue19 (catalogue version 2026-07-11.1)
Junction test coverage19 of 19, enforced by a coverage lint that fails the build on a gap
Coverage corpus19 generated houses: 13 accept-path, 6 pinned refusals
Gable roof envelope (verified sweep)depths 3.6–7.2 m, pitches 5–33°; 8.4 m depth up to 14°
Mono-pitch ceiling24°, a named rule (coherence.roof.mono_pitch) that points steeper designs to the gable form
Mono roof depthto 7.2 m; beyond a 4.2 m clear rafter span the engine inserts a purlin line carried on posts
House width10.8 m with one interior partition as a bracing line; ~9.6 m without
Footprint formsrectangle and L-shape (one inner corner, no valley); T- and U-forms refuse with a named lever
Validation rule inventory~47 rules across coherence, connection, opening, geometry, Eurocode 5 and deflection families
Realism stress test30 hand-designed family houses through the full gate (2026-07-05)

Assumptions: all figures are engine results at the stated catalogue version and grow as the catalogue does; two days before publication the junction coverage stood at 14 of 14. Spans are plan dimensions on the 600 mm design grid; the structural envelope caps any single unsupported span at 6.0 m, and the deeper roof figures are reached with engineered mid-supports, not by stretching that cap.

What this does not show

  • The catalogue is genuinely closed. A family cannot draw arbitrary geometry; they compose within what the 19 junctions can express. Kult considers this the honest trade: a smaller space where every house is verified, instead of a larger one where some houses are guesses.
  • Named refusals still standing: roof valleys (and with them T- and U-shaped footprints), mono roofs steeper than 24°, and flat roofs with internal drainage, which were assessed and ruled out for novice builds on moisture grounds. Each has a tracked card, and the L-shape shipped through exactly that pipeline, so the list is a queue rather than a wall.
  • All envelope figures are software-verified only. No independent structural engineer has yet reviewed the engine's assumptions, and no house from this catalogue has been built. Both are named, scheduled steps in the proof programme.
  • The 2026-07-05 realism review is the reason for humility here: as first specified, 0 of the 30 reasonable houses passed the gate. The fence was measurably in the wrong place, and the fixes that followed are what the sweeps above verify. Fences move; the method is that they move for stated reasons, under pinned tests.

Sources

  • Kult engine — the junction catalogue (version 2026-07-11.1) with its self-lint, the 19-entry coverage corpus with pinned refusals, and the coverage test that ties them together (internal, in the test suite).
  • Kult foundation doctrine, "Safety vs expressiveness" — restrictiveness is solved with catalogue breadth, never rule laxity; a rejection is a product and must name its lever.
  • Kult internal research, roof-form scoping sweep (2026-07-10) — depth × pitch envelope per roof form, with the mono ceiling decision.
  • Kult internal research, partition as bracing line per Eurocode 5 (2026-07-10) — the 10.8 m width sweep and the shear-transfer detail.
  • Kult internal review, "Validation-realism review" (2026-07-05) — 30-house sample, fail catalogue, ~47-rule inventory.
  • Kult engineering records (2026-07-10/11) — stacked openings, searching splice placement, and the L-shape decomposition, each merged with its corpus entries and tests.
Reference photo — not a Kult build A red newly built timber house with large gable windows — reference photo, not a Kult build.
Reference photo — not a Kult build. Different houses, same verified part catalogue.

Read next

Fit and assembly order verified before cutting

The geometric checks every corpus house passes, on the same solids a CNC would cut.

Read how the checks work →

One storm board cannot replace the racking layer

A refusal in action: what happened when a proposed simplification met the corpus.

Read the 14-house verification →

All papers

The research hub collects every published paper, and the note on why the work is open.

Back to Research →