Adaptive domestic design
The world is facing multiple crises of overconsumption, we have an urgent need to rediscover how to build low-energy compact cities. Small plot, small block, narrow street cities are functionally, socially and environmentally superior to sprawl. But we have lost the tools to build these compact cities. The building industry that we have can only design at enormous scale, by duplicating designs hundreds of units at a time in a one-size-fits-all approach, regardless of how badly this actually fits the world.
This project contains some of the tools we need to escape from these old twentieth century systems - tools to construct diverse, dense, practical, adaptable, humane and ecological buildings and cities. The technique doesn’t rely on the inspirational genius of a designer - it just uses the simple incremental processes of evolution to find building designs that closely fit individual sites and their immediate environment; designs that minimise construction costs, where Pattern Languages are the sole guide for meeting human needs.

Start here
- A brief introduction
- How Pattern Languages fit in
- How the software works
- Why we should do this
- A technical HOWTO/walkthrough
- Paper published in The Journal of Biourbanism
- Some previously unpublished fragments (raw source material, not yet part of this site)
For current software documentation you need the README and extensive POD documentation included with the sourcecode.
Links
The background of this project is an alternative thread that exists parallel to mainstream architecture, a thread best exemplified by the work of Christopher Alexander. A good introduction to this thread would be to read an excellent series of articles on Pattern languages and evidence based design by Michael Mehaffy and Nikos Salingaros for Metropolis Magazine.
If you want an even shorter read, Salingaros and Mehaffy have A Vision for Architecture as More Than the Sum of Its Parts.
Code
Most code is written using the Perl Programming Language, and can be found in Git repositories on Bitbucket. This project consists of five modules, only the first is required unless you want to actually use the generated geometry:
- Urb - The domestic building model and adaptive engine.
- Homemaker - Queue processor for projects involving multiple building plots.
- Molior - A tool for outputting 3D models of buildings.
- File::DXF - DXF backend for Molior (and some unrelated stuff).
- File::IFC - IFC backend for Molior (and some unrelated stuff).
- Alexander's Fifteen Properties
- The fifteen structural properties Alexander proposed in The Nature of Order, an old open question about whether they apply to a building's plan at all, and an ongoing, rigorously self-audited attempt to make 'wholeness' computationally measurable.
- Classicism
- Answering the question, why the traditional (classical) style?
- Costing, and where building services fit
- How Homemaker actually prices a building today — verified against the current code, not just an old fragment — and the plumbing-cost idea for building services that hasn't been built yet.
- Evolving houses with Homemaker
- A brief FAQ-style introduction answering common questions about what Homemaker can and can't do.
- Features
- A bullet-point list of the software's technical features.
- Form language and the geometry of domestic buildings
- The genotype behind Homemaker's evolutionary engine: a binary-tree form language, the Type A/B typology of room layouts, and what the archaeological record says about which one actually gets used.
- Growing buildings in a daylight field
- Buildings that shape each other's daylight as they evolve together, an unplanned detail nobody coded for, and an open, untested question: should the buildings competing for daylight be made to play fair?
- Homemaker add-on and homemaker-web
- Design buildings the pointy-clicky way: a Blender add-on and a no-Blender browser editor that turn simple 3D geometry into a real IFC building model, built on the same form language as the evolutionary engine.
- Homemaker walkthrough
- A step-by-step technical walkthrough of installing and using the Homemaker software.
- Is architectural modernism a left-wing project?
- The evidence doesn't support Modernism's assumed left-wing pedigree, or a tidy 'secretly fascist' replacement either - the real picture is a mixed bag of early-twentieth-century technocratic reform.
- Known limitations
- An old 'future improvements' note, checked line by line against the current source rather than reprinted as still current — some of it is resolved, some of it is exactly as open as it was over a decade ago.
- Living and false traditions
- The word 'tradition' carries so much baggage that it's worth stating plainly what separates a living tradition from a false one — this applies as much to cooking as to buildings.
- LLM pattern-language synthesis
- apl-companion isn't just a Pattern Language reference — it's the front end to a published method for turning a curated pattern subset into an LLM-written design narrative, now deployed in a live, contested public design process.
- Metropolis Magazine articles by Nikos Salingaros and Michael Mehaffy
- A recommended-reading index of Salingaros and Mehaffy's Metropolis Magazine columns on evidence-based, pattern-language architecture.
- Part One: Pattern Languages (or architecture for programmers)
- An introduction to Christopher Alexander's Pattern Languages, Design Patterns and Evolutionary Computation, for a Free Software audience.
- Related tools
- Other software built around the same theory, including an in-progress Python rewrite of the evolutionary engine.
- Software Overview
- Technical and software architecture notes on how the Homemaker/Urb toolchain is put together.
- Software that evolves houses
- How the Homemaker software uses a Form Language and evolutionary computation, guided by Pattern Language fitness criteria, to design domestic buildings.
- The compact city and why we need new tools to build it
- Organic street networks beat grids, small blocks beat merged ones, and different cultures solve the same problem with different form languages — but none of our current tools know how to build any of it.
- The myth of architectural creativity
- Why the 'creative genius' model of design fails at scale, why even Alexander himself couldn't make it work, and why calling the alternative 'evolutionary' isn't the sinister idea it sounds like.
- What if everyone could score a building?
- A Pattern Language never caught on with architects, and probably never will. The more promising target for it was never the profession at all — it's demand from the people who actually live in the results.
- Which patterns does Homemaker score?
- How a pattern becomes a number in the fitness calculation, and a dated snapshot of which of Alexander's 253 patterns were actually implemented at one point in the project's history — already out of date in at least one place, which is exactly the point.
- Why buildings aren't software: the modular fallacy
- The open-source/pod dream of architecture keeps coming back, and it keeps failing for the same reason: buildings are specific, software is generic.
- Why use a machine for designing houses?
- The case for using an evolutionary design machine instead of human architects: better, more practical, denser, cheaper, more ecological, more diverse, more adaptable, and free.