Posted by: A. Benjasem | August 8, 2009

Form Generation I

There are no limits to the number of methods that can be used to generate forms, yet at the start of every project we tend to get stuck on the derivation of the form. Of course, there is always the option of letting the project’s requirements determine it, but where’s the fun in that?


In this post I’m presenting one of the ways of generating a form by manipulating an existing object. This method mimics playing with play-dough (clay) using a 3D software, except that in play-dough the reactions of each force applied to the existing piece of dough is predictable. On the other hand, a force in 3D software applied on an object can react differently to different set of rules and limitations determined by the designer.

In the preceding image, the initial form was a sphere. Due to forces applied using the mouse the shape of the sphere mutates to a more interesting form. As we cannot determine the amount of force applied on a virtual level, I have used the distance from the mouse click and drag to the release as the force amount and added a power option to the script to specify the amount of pressure applied. The shape of the form changes based on how far I move the mouse. The rules that inform these changes are a sort of mathematical formula.

Now that the concept of the form derivation is set, we can play with the initial forms to create different effects. The following are explorations using the cylinder as an initial form.



Basically, this method of form generation depends on three elements;

  1. The initial object. If the object that we started with was a cube instead of a sphere, the reaction to the forces applied will be different, hence different mutations.
  2. The direction and amount of forces applied. This is the variable.
  3. The system or the set of rules that are used to determine the reactions.


Beijing National Stadium by Herzog & de Meuron

Contemporary architects are using parametrically derived forms using these methods to create buildings that simply can’t be generated using traditional methods. A great example is the ‘Bird’s Nest’ in Beijing. The form and arrangement of the structural cage was designed using a mathematical algorithm. The designers could manipulate the form endlessly, while the computer would arrange the individual elements accordingly to best fit the structural framework.

On a smaller scale, parametrics are used to generate the form of a buildings facade. The computer would make sure that all rules set for fenestration and structure are met, while the designer can manipulate the form to generate the best looking outcome. The example below is the Airspace Tokyo project by Faulders Studio.


Airspace Tokyo project by Faulders Studio.



  1. Can you not learn from physical material practices/experiments, and allowing this information to migrate into your code? Meaning, if you start exploring what clay does, or, any other material (i.e. rubber, plaster, paper, molten glass etc), and then interpreting this information, and translating into code, doesn’t that start to give your code more credibility (I actually want to say more variance, and not credibility, because, it’s not you setting the absolute rules, it you interpreting concrete information through exploration and observation). I’m saying that because in the current situation, your variable can almost be anything, and, when you eventually think about translating into physical form, you will encounter a whole set of new problems. However, if your variable is inherently found in your final product, then your process is much richer for that, and, hopefully, making your product much richer.

  2. Thank you Faysal for the thoughtful comment. I like to think of scripts as tools used to produce different effects. Therefore, in the beginning stage of writing, I tend to widen my options by making the script as generic as possible to be applied on different settings. Later it can be taken and modified according to the designers choice.
    I definitely agree with you, the result of the script would definitely be more interesting if the rules were to follow specific properties of an object, (e.g. an elastic band). I used this script in a project back in college, and later modified the script to take instructions from the site itself taken from the movement and activities of people using the space.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: