S03 // A Grasshopper Script

PWL – A Doodle with Grasshopper, 2023.

Script to generate a series of rooms using a set of points with all data to be defined through the platform of Grasshopper.


Grasshopper 3D is a programming language first created by David Rutten in 2007, paving the way for the popularization of parametric and generative design.  Different people may find this tool fascinating for various reasons.  Putting aside the dazzling Voronoi patterns and the infinite versions of intricate, mathematically generated forms, for me, there are two things about Grasshopper that I found most intriguing and inspiring.  

Firstly, it is about ‘relationships’.  Instead of drawing lines to exact dimensions to represent fixed elements on paper, working with Grasshopper is about establishing a system of relationships.  A simple wall is defined as a rectangular volume specified by point A, B, and C represented by variable vectors A1, B1, and C1.  A second wall can be similarly defined as a rectangular volume of vector A2, B2, and C2, situated at a distance ‘X’ and at an angle ‘d’ away from the first wall.  All subsequent elements can be introduced to the system in a similar manner. 

In this sense, an entire building can be defined and written in the code of a relational system.  The values of the variables, upon which the eventual physical form is generated, can subsequently be defined to reflect actual dimensions when applied in real situations and can be further adjusted to adapt to different scenarios, much like the application of a mathematical formula.    

Secondly, it is about ‘changes’.  Changes can be easily introduced into a Grasshopper script through various data input tools, such as number sliders or data panels.  As the script is live, the form being generated is constantly updated in response to the changing inputs.  The ability to generate endless iterations of forms with ease has since been incorporated into an evolution and evaluation-based design approach.  Besides accommodating design changes, the variables can also represent changes in the environment where the form is to be situated.  The design can then be tested against these fluctuating variables. 

All these benefits aside, it makes me wonder, can we not take it one step further and think about these ‘changes’ as being generated by the building itself? 

Published 06.01.2024