Pattern Homemaker

The background of this project is an alternative thread that has existed parallel to the mainstream history of 'modern' architecture, a thread that understands that meeting human need is an important property of buildings. site

YOUTUBE mjr9fQ3za0o Uploaded on Apr 3, 2015.

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. search

Our population initially consists of simple individuals; these individuals are just empty space, or a plot containing a basic one room house. This population is then ready for evolution.

One way to drive evolution is to throw in some random mutations, tinkering with the genetic code of individuals: splitting a room in two, moving a partition, or adding another storey. But most mutation has a negative influence, the main driver of evolution is recombination.

Recombination is sex, the creation of a new individual that inherits from two parents. Recombination can create new possibilities from old, it allows different genes to exist in parallel within a population, whereas evolution entirely through mutation has to happen sequentially.

The process of recombination for our house is a crossover, where rooms, groups of rooms, or entire storeys are simply swapped.

.

Eric and I have enough perl chops between us to read the Homemaker code. Here are interesting places we found on his recent visit to Portland. source

Adding shuffle. commit

Nested make for quarter example. make

DOM Abstraction. pm

Canonical Genetic Algorithm. cpan

Quad: space-partitioning data structure. pm wikipedia

Inner/outer mutation loop. loop mutate

Compounded exploration and improvement?

Crossover: Recombination. pm

.

Bruno did publish a paper on the software, a while ago, 2013, An Adaptive Approach to Domestic Design. The code has gained some features since (notably the daylight model), but the basic mechanism remains the same. pdf