ArchiKludge

posted by on 2009.11.13, under Projects

Picture 1

ArchiKludge is a project by Pablo Carranza that explores the automated design of architecture. Completed in 2004, the project is not technically innovative, but it is a simple and rare example of a genetic algorithm being used in the design of architecture.

The genetic algorithm used by ArchiKludge belongs to a family of algorithm known as search algorithm. These algorithm have been developed by computer scientists to search for solutions to problems, and recently architects like Pablo Carranza have appropriated them for use in digital morphogenesis. The way the genetic algorithm finds architectural solutions in ArchiKludge is as follows:

  1. A population is generated - The population is made up of individuals and each individual is an architectural solution. The individuals all have genomes associated with them. In ArchiKludge the genome is a string of 64 numbers. Each number is connected to a cube in a 4*4*4 structure, when the number is set to 1 a room is created in this location, when it is set to 0, there is a void.
  2. Individuals are measured – All the individuals are measured to find the best. In ArchiKludge the individuals score is a the sum of the average distance between connected rooms.
  3. Breeding – The best individuals are breed together to form a new generation. It is not explained how this happens in ArchiKludge, but typically what happens is two parents are selected and a child is made from half of each parents genome.
  4. Solution selected - ArchiKludge continues indefinitely, but presumably an individual could be selected as the final design.

The process used in ArchiKludge is made to look more complex through a fairly slick interface. Notably the cubes have been pushed and pulled a little bit to make the buildings look more interesting than the cubes the program is really designing.  How individuals are measured is also cleaver because it produces unconventional buildings with voids, where as if the measurement was gross area it would quickly become a solid cube.

Being so basic I do not think ArchiKludge is particularly useful. The problem lacks the scope to find any surprising solutions – when I tested it, I could produce results of similar measures manually. There is also no point for the architect to interact with ArchiKludge and relying on one method of problem solving (computational) impoverishes the result. ArchiKludge suffers from problems typical with digital architecture: how to represent a building on the computer; and how to measure the success of that building. It is a cleaver diagram of a genetic algorithm, and at times it hints at an architectural application, but in my opinion it does not suffice as a way to produce architecture.

I recreated ArchiKludge in Processing, see it and download the source here. Incidentally I found ‘sketching’ a digital project in this way a really useful way of understanding the project.

Run ArchiKludge

Interview with Pablo

Beginning programming

posted by on 2009.11.05, under Programming

I learnt to programme using Flash. Today Flash is a bloated monster of a programme that wants to be Illustrator, iMovie and xCode all at once (its downfall is worthy of another post). Even though I no longer use Flash, learning it was not a waste of time since once you learn one programming language, you know all of the programming languages. For this reason I recommend people start on a language that is easy to learn, like Processing, and pick up the rest later. There are programming languages built into most design programmes such as 3dsMax, Rhino and Vector Works. It has been my experience that these languages often do not have the documentation and instructions necessary to help someone new to programming.

Processing is a free download and is focused on artists who are new to programming. There are some great lessons provided and there are heaps more on the internet. Just like learning French, it helps to become immersed in the language rather than just flicking through tutorials, so jump into the deep-end with a project and learning will become far more meaningful. One resource I often use is OpenProcessing where people post their programs and you can see both the code and what the code does. These programs can be modified and adapted to your needs provided you attribute the original work.  Three particularly architectural examples:

Sight Analysis
Sight analysis – finds areas of plans that would be most frequently seen.

Picture 2
Dynamic relaxation – mesh behaves like a membrane and takes on form with least stress.

Solar panel
Photovoltaic cell shaper – A bit ugly, but it is a tool to design the optimum photovoltaic cell based on location.

Three essential books

posted by on 2009.11.01, under Bibliography, Theory

3_books

I often get emails from people wanting to progress beyond CAD but unsure of where to start. So I started this blog. It seems appropriate to begin with the three books that have guided me and may be a source of inspiration for others.

An Evolutionary Architecture – John Frazer – 1995

This book is remarkable. Written in 1995, Frazer and Unit 11 at the AA, identify many of the issues that are still present in evolutionary architecture. The most pertinent of these is the use of biology as a design analogy, a method which is at the foundation of modern digital morphogenesis. He identifies most of the modern methods like Genetic Algorithms, Neural Networks and Cellular Automata, even though in 1995 they are still new to computer science let alone architecture. Frazer’s position is strengthened by his awareness of the limitations of these methods – restraint that some modern authors could benefit from. Some gems of wisdom that are still relevant today:

  • 18: Computers “induce a false sense of having optimised a design which may be fundamentally ill conceived.”
  • 15: “Unfortunately for this goal directed approach, it is notoriously difficult to describe architecture in these terms” – this remains true today.
  • 117: “The gap of complexity that exists between unsimulatable real world systems and our models of them reflects the fact that the real world often behaves in ways that directly contradict our ideas about it.”

The book is made available by the AA for download as a pdf here – a few months ago the book was taken down but it appears to be back up.

Algorithmic Architecture - Kostas Terzidis – 2006

Terzidis advocates a symbiotic relationship between algorithms and human designers, best summarised by this quote: “Human designers fail to compute extreme quantitative complexity and computational processes fail to justify consciously even simple decisions” (29). At times I feel Terzidis falls for etymology and clouds the book with discussions of words rather than words themselves. This is probably a product of his circumstance and underneath this there is a great thesis. The book ends with programming examples in MEL script (for Maya). He has also just finished a new book Algorithms for Visual Design Using the Processing Language I have not had a chance to read it, but it looks really good.

There is currently a preview on Google books.

Tooling - Benjamin Aranda, Chris Lasch – 2005

Tooling is not my favourite book but I added it because it is a great introduction. The book goes through seven simple algorithms, all explained by excellent diagrams, and developed into architectural projects. Programming begs for more complexity and it is refreshing to see the authors keep everything so simple. In this simplicity there is an argument for programming as a method of sketching. I feel that it is somewhat misleading to present seven very considered projects as sketches – I do not believe the genesis for these projects was the code. Nevertheless, they provide a relevant introduction to programming.

There is also a preview of Tooling on Google Books.

pagetop