Last week was a busy one- I fractured my elbow, talked about computational design, terminated a 6” model astronaut and undertook some serious cowboy-coding.
From a structural designer’s point of view Parametric Design represents a way to design and optimise for uncertainty, flexible modularity or even adaptability.
Now for the long version: Remember that BSO (it’s been making a regular appearance here); well, I came off it and fractured my elbow, which was why- at the end of an introduction to parametric design at Fosters+Partners from a very forgiving young man- a slightly robust gesture to get my coat on resulted in the severing of an adjacent model astronaut’s legs. Mortifying as it was, I did leave inspired to put together a prototype parametric designer of my own, and the replacement of my social calendar (sorry Mr Gregory) with taking enough pain killers to topple a war elephant left me with the time to actually do it.
The Project Currently Known as Geomatrix
This nifty pet-project is called (until I can come up with a less X-rated sounding name) Geomatrix, and for the next three weeks I’ll be focusing on the individual aspects of the application as I write it (a ‘develop-along’ if you will). This week I’ll be wittering away about Parametric Design, next week we’ll be talking about the Direct Stiffness Method (hur hur hur…) and the week after we’ll be on to Optimisation and Targeting. At the end of which I’ll OpenSource the lot and hope that anyone cares enough to join in.
So at this juncture let me introduce you:
After a weekend of prototyping (lit. creating an application from libraries and scripts loosely held together by hope and gaffa tape), this is the beginnings of my contribution to parametric design. “Woah” I hear you cry; “an application that draws triangles very slowly and then falls over itself and dies; truly this Thomas is a Wizard!”. Well, enough of your sarcasm; the magic is in how it draws the triangles.
Parametric/Computational/Generative/ <%= @Adjective %> Design
And that, from what I can see, is the foundation of parametric design. Geomatrix (boy do I regret that name) doesn’t know it is drawing a series of triangles; instead it is following a few simple rules to generate the geometry (in this case, n number of adjacent triangles all L wide and H high). As you drag the sliders and the parameters change, the nature of the geometry changes. In fact, with the current model that represents 378 structures at your finger-tips; albeit thoroughly unimpressive ones.
In the world of BIM plugging in Geomatrix to Microstation, LUSAS and a pricing spreadsheet from Excel would result in a web interface where the number of columns supporting a slab could be manipulated in (near-real) time.
So why is this interesting, and what’s it got to do with engineering? It’s true that, at present, parametric design is more likely to turn up in a conversation about “hocharchitektur” [coined it] than in the realm of engineering; the ability to develop complex shapes (like a Spirograph on acid) and then rationalise them into something constructable using a set of rules and fluid parameters. From a structural designer’s point of view, however, it represents a way to design and optimise for uncertainty, flexible modularity or even adaptability.
Parameters represents a holistic approach to design; the “let’s try everything and see what works” approach that would probably make some of the more senior engineers I know lay down and cry. But for complex structures there comes a point where judgement alone doesn’t cut it. A good example (from a structural perspective- forget those architects and their fancy first-modal failure shapes) is when you lay a slab across an existing series of pad foundations. At conceptual design you’ll never get the chance to actually go and do the SI you need to find all the damn things, but computationally it’s not very expensive to identify some likely foundation groupings, setup a few rules to generate the probable permutations, and then test each generated ‘site’ for the most adverse effects on the slab. You’ll then end up with a design thickness, optionally varied by probability of suitability.
Implementation and Abstraction
One thing I feel I should mention is that Geomatrix is designed to be an abstract permutative generator and optimiser. In its heart it doesn’t care if it’s generating letters of complaint in iambic pentameter from the twisted thesis of a literary criticism major, or iterating the structural options for building an elevator to the moon (presumably to save the model astronaut I maimed). It just so happens that in this demo the back-end is plugged into a frame analysis library and the front-end attached to a processing.js renderer.
Why is that somewhat random implementation detail important? Because it highlights where I think the real power of parametric design in structural engineering lies. In the world of BIM plugging in Geomatrix to Microstation, LUSAS and a pricing spreadsheet from Excel would result in a web interface where the number of columns supporting a slab could be manipulated in (near-real) time; each column being positioned in accordance with office-layout rules; the drawings kept up-to-date, the reinforcement designed and the build cost reported back.
But for now, you’ve got triangles.
It’ll be improving all the time, so feel free to check back every now and again. Next Monday we’ll be talking stiffness matrices…