Clone wiki

Urb / Home

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.

Render 05

Start here

For current software documentation you need the README and extensive POD documentation included with the sourcecode.

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.


Most code is written using the Perl Programming Language, and can be found in Mercurial repositories on Bitbucket. This project consists of four 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).