Skip to main content

Genetic Design - Part 1: General concepts

In my second post I'd like to thank my friend and Blogging mentor David Light, who featured this space in his highly respected blog. I guess most of you got here through there, but if you landed directly here I highly recommend having a look at http://autodesk-revit.blogspot.com/, packed with tips, news and tools for the BIM enthusiast.
Enough said as introduction, let's talk about my current after-hours project.

About 2 years ago I went to a conference on Genetic Algorithm applied to Design. In a room full of engineers, I saw some examples of Genetic principles applied to Air Conditioning system planning, lighting design, and some shy approach to layout planning. The tools they used were some Java and C++ applets, lots of spreadsheets with complex scripting and occasionally some diagrams. Despite many interesting things were said, I was left with the feeling that the Architectural Design implementation was one I would have liked to chase, eventually.

If you haven't noticed yet, this is "the brief" of the challenge. The case study is an urban multi-tower development massing. But let me clarify a few principles to describe the aspiration of the research.

View of 20 options overlapping. This information has been generated out of data created at random in Excel, and will inform the following iteration of the design...

- What is Genetic Algorithm?
As you can read in Wikipedia, Genetic Algorithm is a process (generally used to optimize or serch options) that mimics the natural evolution. The goal I am chasing here is a process that will create and refine design options to achieve an "optimum" solution.

- What is the "Evolution" sequence?
The process is based on the "survival of the fittest", which implies that you have to be able to generate options, compare them, rank them and recombine them to offspring the next generation. In the Design field, this is generally done as part of an iterative process, where a few options are created, analized and then reprocessed to achieve a better design. But in times of Digital Architecture and Parametric Design, it would be interesting to leave the process to the machine, and sit back watching your "ideal solution" evolve on the screen.

Unfortunately (or fortunately for all us Designers out there) it's not as simple as that, because:
1) The "natural selection" of the fittest options is extremely difficult to script - as it's generally difficult to establish what makes an option better than the other (after all, Architecture is nor far from Sculpture... right?)
2) Multiple options could be "best" in their own right, presenting the problem of the multiple-variable optimization (or Pareto Optimality after the Economist Vilfredo Pareto who studied it).

On the Pareto Front, all the options are better than the others... which one is "the best"?

Bottom line is that instead of reaching an ideal option, we will have to choose from a set of options that will be optimal. So reduce the problem to numbers and compare them... easy, right?


Extract of the Excel formula to establish if an option is better than another and rank their survival

Back to the massing exercise, my constraint is an irregular site, a target total area and a series of setback conditions that depend on the hight of the building. Standard design approach is to sketch the massing that looks alright (say one tall tower in the centre of the composition, a couple of mid-height elements to the east and a scatter of shorter buildings to the west. It feels right, looks great in the renderings, client signs-off. Then we use our BIM tool of choice to get the areas spot-on, and wait for Scheme Design to realize that the setback condition is not fulfilled... How could we consider the setback, if it depended on the height of the building? All Revit experts out there will point at smart flexible families, like the ones Zack presented here.

I am trying to transform the design to a "genetic code", and then I am using Excel for the math calculations and "genetic manipulation" and Rhino/Grasshopper for the graphic analysis. So far (this project is not functional yet) I have dealt with the random creation of the options, exporting the data from Excel to a text file, getting it into Rhino and generating the shapes.

Create a value at random ("mutate") or search for the average between parents, with a weight for "dominant" or "recessive" genes... and a bit of randomness on top...

Steps to follow include: the intersection study in Rhino (to establish if the buildings are landing on the site or within the setback conditions), Export from Rhino into Excel, and automating the process to be able to iterate overnight (currently the Excel macros are manually triggered, and I get a "confirm you want to override file" dialogue that stops the whole process...). Find below a snapshot of the current Grasshopper definition:



Please let me know if you've heard of or worked in similar challenges, or any comment that adds to the discussion. The information will remain "Under Non Disclosure Agreement".

Comments

  1. Interesting work. William. Please take a look at www.opengenerativedesign.com we have a similar approach.

    ReplyDelete
  2. Nice. It might also be worth looking at natural language to formal language mathematics (Gentzen started this last century and there have been many developments of it since).
    The Open University have a research strand on Problem Oriented Engineering looking at how 'value' (qualitative) decisions can be turned into 'process' (quantitative) functions. This might be a better (quicker) route or a more stable basis of measuring success for a generation?

    ReplyDelete

Post a Comment

Popular posts from this blog

My reading list
Mathematic explorations

Back on the saddle after a long silence, this time bringing a list of books that have kept me busy... is this a good excuse for not writing blog entries???

With a deadline for this afternoon I cannot spend a lot of time describing each book... yet I want to push myself to communicate some of the mind-opening good reads I came across recently. Most are not new books, and probably you will recognise them.

Without further introduction, here's a list of books about maths, with a twist:

Godel, Escher, Bach: and eternal golden braid by D. Hofstadter

The_Emperor's New Mind by Roger Penrose

In Pursuit of the Unknown: 17 Equations That Changed the World by Ian Stewart

Introducing Chaos, a graphic guide

Art and Physics by Leonard Shlain

Things to Make and Do in the Fourth Dimension by Matt Parker

So, these are some of my current and past reads. Have you read them? Any recommendations down these lines?


In future entries I will explore books about design and programming, creative code, artific…

First steps in RevitPythonShell

A couple of months ago, and a couple of weeks ago I have presented  a quick primer of Python scripting on the Revit Platform at the Manchester and London Revit User Groups. Both have been fantastic experiences, summarized the evening I was having a beer (or #BIMbeer) and heard someone say "I've been told that the other day there was an interesting presentation on Python at the Manchester Revit User Group", to what I replied "That was me, thanks!".

My main objective is to trigger curiosity and push at least some people to discover that the programming edge is not that hard to climb, and things appear much nicer from those heights. I have to clarify that among non-programmers I can pretend to be one, but in all ernesty I am a wannabe noob of a programmer, despite a few lines of code I cannot understand does not stop me from trying to understand it!!

Following a recent request on Twitter to share the presentation and thinking that they are probably available somew…