There’s no doubt that parametric design can be a powerful tool in the hands of architects and industrial designers. Its applications vary with design goals and the technical requirements of the project. Below are summaries of typical use cases for parametric design techniques and strategies for implementation. Each strategy includes a few very simple examples, meant only as a jumping off point. To illustrate the examples and techniques below, I will use Grasshopper, a parametric modeling feature of McNeel’s Rhino 3D CAD platform. Rhino is a relatively inexpensive and easy to learn CAD software which has great support and documentation.
Generative Design
Parametric modeling can be an effective way to generate visually interesting complexity in a short time. The difference between an inaccessible or jarring design and a breathtaking one can be a subtle. Often all it takes is a hint of underlying order beneath the chaos to trick our brains into seeing beauty where there would otherwise be an incomprehensible mess.
The use of computation allows the designer to automate tasks that would normally be tedious or too time consuming to fit into today’s tight schedules. By using repetitive, iterative or complicated calculations, the designer pushes their work outside of what would normally be produced without computation. The most common approaches in this realm involve algorithms based on arbitrary constraints or randomness. Often the designer creates relationships between parts of the design and some kind of input, then plays with the input values until the technique produces a version or versions they like. This raw output from the process can then be refined to fit better into the overall design.
Generative Design example 1: Nearest neighbor attractors
We set up a field of regularly spaced points and attach some kind of geometry to them. It could be circles, a cad block or anything. This geometry could also be holes in a surface instead of actual objects. We then create several “attractors” or arbitrary points that are located somewhere within the above field. Now for each of the field points, we identify the attractor nearest that point and calculate the distance. Then we can scale or distort the attached geometry (circle or block etc…) as a function of that distance. As we move the attractors around, we see a generative pattern emerge from the scale difference between the geometries. We can add complexity by including translation into the modifications of each geometry – subtly moving each element either toward or away from the attractor.
Generative Design example 2: Random within range
We start, again with a grid of points. We also set up a couple of inputs: max and min values defining a range. For each point we use a random number generator to produce a value within the range we defined. Then we can perform a similar operation on the geometry attached to each point. As above, this operation can be scale, color, translation or a combination: anything that modifies the geometry attached to the point. What we end up with is essentially noise: a field of randomness. However if we can introduce a little bit of order into the mix, the result can turn from incomprehensible to interesting. Say, for example that we modify the randomly generated number slightly based on the surrounding values. We add a new input: threshold. The point’s value is now pushed in the direction of it’s neighbor to the right, but only if that one is above the threshold. otherwise we use the left.
Feedback
Designers will often use the output from parametric tools, not as an end product, but as a method of shortening the feedback loop in their design process. Reducing iteration time allows them to make many more versions and hone in more quickly on the final (or final-final) product. This is especially true when we are working with designs that have many interdependent parts. Often, in this situation, changes to one part of the design can have unexpected effects on all the other parts. It is only with repetitive iteration and testing that we can come to a balanced configuration where all the design goals are met. Likewise with mocro-macro dynamics: where changes to the small details of a design have effects on the larger picture.
The following examples detail how a designer might set up specific inputs and outputs in a parametric model, so that they can test ideas, review results, then quickly make adjustments and test again. This lends itself to stochastic approaches as well as a more optimization focused approaches, as we will see further on.
Feedback Example 1: Façade proportions based on interior room design
This is a classic problem for architects: they want to tune the relationships between interior spaces such that the proportion and flow between them is pleasing for the occupants, however all the “massaging” of the rooms, including window and door placement, has an obvious effect on the outside of the building. We used to go back and forth, tweaking the plan, and then updating the perspective or the 3D model (chipboard models back in my day) in order to see effect of our tweaks on the outside. Likewise small adjustments to the façade would have repercussions in the interior space. Using a parametric model can display the result of our changes instantly, allowing us to quickly find the solution that satisfies both interior and exterior goals.
Feedback Example 2: Visual screen spacing
When designing interior elements to act as visual screens between spaces, it’s often difficult to imagine the effect of the screen’s pattern and open-ness on the overall space. This project imagine’s a hypothetical studio apartment with a screen separating the living and sleeping areas. The spacing of openings in the screen affects the perception of space in the apartment, lighting and privacy. By attaching parameters of the screen’s design to sliders, instead of modeling them in “static” geometry, the designer can iterate quickly between combinations of inputs until they get the desired effect. It’s important to note that, sometimes, the desired effect is unknown until it emerges from a particular combination of inputs that the designer stumbles upon.
Optimization
Optimization refers to the process of balancing elements of a design in order to achieve the best possible (or optimal) combination for the design goals. Also, when there are multiple, possibly competing design goals, optimization can help the designer find the solution that satisfies all of them, at least minimally. By explicitly defining requirements for a design and attaching them to outputs from the parametric model, a designer can follow the generative or feedback approaches and iterate until the outputs are withing acceptable ranges.
Optimization Example 1: Surface curvature
When taking a design modeled in the computer into the real world, there are always physical constraints to consider. In this example, decking boards are affixed to ribs to create and organic 3 dimensional shape. The decking has a maximum tolerances for both twisting and curvature. By analyzing these parameters along the length of each board and highlighting areas that are outside of safe tolerances, we can tweak the shapes until we achieve a visually pleasing design that is possible to be constructed.
Optimization Example 2: Strength and weight
This simple example pits two competing parameters against each other to find the viable solution for cost and constructibility in a cantilevered roof. It uses simple formulas to calculate the stress in the cross section of the material and highlights areas of the model that are outside of acceptable tolerances. It also outputs the estimated cost of the structure to make sure it does not stray out of budget. By working the section parameters and tolerances, the designer is able to land on the optimal solution that also looks appealing.
Simulation
Architects and designers have long utilized simulation of real-world processes as a design tool. Frei Otto in his book, “Occupying and Connecting”, details several techniques for simulating social behavior using physical models (This book was written before widespread availability of computation for designers). Philip Ball, in his “Flow” series, details step by step instructions for simulating many real world phenomena including the formation of crystals, color patterns in animal’s coats and the behavior of flocks, swarms and herds. The simulation of relationships found in the physical world can be used, depending on the amount of abstraction, in either generative or optimizing approaches, or a combination of both.
Simulation Example 1: Flocking behavior in landscape design
This example uses the well known Boids algorithm that has been adapted for many parametric platforms. It was developed by Craig Reynolds in 1986, and simulates the flocking behavior of birds, and related group motion. It’s available as a module for Grasshoper here. Another term for flocking simulations is “Agent Based”. Here, each bird is considered an independent agent that travels through its environment. it “decides” to go one way or another according to a defined set of rules like: What other birds are doing, what it wants to go toward or what it wants to go away from.
For this project, we begin by defining the boundaries of outdoor space at a proposed office campus development. This is assuming the building interiors are all designed already but the locations of buildings themselves can be adjusted. We then define places the “agents” will be spawned from and where they want to go. For example: from all the offices to the cafeteria in the main building. When we run the simulation we can see patterns in where the agents travel, their density, how they get stuck etc… From these observations, we can tweak the position of buildings and landscape elements until we like the result. The paths these agents take between their destinations can also inform the layout of outdoor circulation and pathways.
Simulation Example 2: Microorganism growth patterns in floor plan layout
This example relies on a custom script component that was written specifically for this project. The script simulates the growth of a microscopic bacteria or fungus based on a combination of factors. Factors include temperature, illumination levels, nutrients and residual chemicals left behind by other microorganisms. In the physical world, microorganisms exhibit optimizing behavior, following gradients of nutrients or light and avoiding tempoeratures or chemicals outside of the parameters the “like”. The behavior of these critters in response to stimuli can be mapped, with some abstraction, onto the behavior of human occupants in a residential project. In this example.