• Thys Kotze

Parametric design for D.... mmm, designers

Updated: Aug 5, 2019

When I tell people I’m a computational designer, the first question they ask is what is that?

Then I explain to them it’s when you design with parameters and algorithms, and they

respond with a skeptical “Okay” ​

Parametric Bench

So, What is parametric or computation design? 

"Parametric design is a process based on algorithmic thinking that enables the expression of parameters and rules that, together, define, encode and clarify the relationship between design intent and design response"(Woodbury, 2010)

Okay so now we have an idea of what paramedic design and algorithmic thinking involves but let's find a simple visual example.

Graphisoft, The creators of Archicad, made a video stating "algorithmic design is like cooking" You start with a recipe that lists all the ingredients and there amounts and every time you change an amount or ingredient you change the outcome Algorithmic Design Meets BIM‘ (Graphisoft, 2016)

Being a designer and knowing how a designers mind works, I understand that the best solution to this problem would be a hands-on solution.

One where you can get all touchy-feely with the process, a scenario where you can interact with a parametric model without having to get an expert involved every time. The solution I found is brilliant and exactly what I needed to be able to do this.

I came across is a company called Shapediver; They provide a service that enables parametric designers to communicate with their clients effortlessly and legibly.

They do this by allowing the user to upload script to their website and then have the ability to change the parameters in a web browser and experience the changes live.

Let's do a quick walk-through on a simple parametric bench design and then look at the script on the Shapediver website. As a result you will understand where the driving parameters comes from and be able to make changes and adjustments yourself. 

Parametric design best practice: 

Have a reasonably clear goal of what you intend to achieve.

Step 1: Approach and design analysis.

You need a point of departure, so when looking at the image above ignore the design fluff. Just look at the overall shape of the bench.

If you had to do this in CAD, how would you go about it?

It is a very important question to ask yourself and solving this now will create a solid foundation to build on. The basic shape is a simple one rail sweep (Complex profile in Archicad, Spline sweep in Revit, Follow-me in Sketchup)

All we need to do this is a profile and a rail or a sweeping curve and for simplicity's sake, we will assume the rail is already provided and only focus on the profile and how to build it.

Profile and Rail

Step 2: Profile


Firstly, we create a rectangle that will determine the overall width and height of the bench.

Width = var param 300 min to 1000 max

Height = var param 330 min to 550 max

Random points on the rectangle crv

Secondly, we need to create some geometry that will help us to generate a random profile.

To keep it simple let’s generate several points on the rectangle curve

Points on Crv = var par 3 min to 8 max

These points are completely random.

Convex Hull

Thirdly, the points will be used to create a Convex Hull curve.

It creates the smallest boundary possible that includes all the points along the shortest path.

Corner Fillet

Lastly, the corners on the curve need softening; done with a simple fillet component.

Corner Fillet = list param 50, 80, 100, 150, 200 mm.

Step 3: Profile refinement and looking ahead.

With all design, you need the keep the end goal in sight and with a parametric design model, you need to do even more so. You have to constantly evaluate the results you generated from the last step and also consider what result you need next and anticipate the ones after that.

Let's say your client asks for a bench like the one in the image above, you build the script and at the end of the day, the client says they want the option to have a bench that has solid ribs or a solid bench with no ribs. If you anticipate this, you will save yourself unnecessary abortive work later on.

Possible variations would be:

  • A bench with ribs

  • A bench with hollow ribs

  • A bench that is one solid block

  • A bench that is solid with a cutout along the length.

We also would like to be able to adjust the width and thickness of each rib as well as the spacing between them.

In total, seven parameters in the model.

Profile Curve Offset

First things first: the hollow profile.

Doing this first will allow us to use the results as building blocks for the rest of the model.

The easiest way to create a hollow profile would be to offset the profile curve towards the inside with a set amount

Offset size = list param 20, 50, 80, 100, 120, 150 mm

Parametric design best practice: ​

We make use of a set amount because as a designer you need to know the limitations of the material you use. By limiting the choices here we can make sure we don’t run into problems when it comes to manufacturing or computation time on the model.

Rib spacing

Now on to the ribs, they will be placed along the rail at predetermined increments.

Grasshopper has a divide curve component that will serve us well.

Rib spacing = list param 80, 100, 150 mm

Step 4: Extruding what we have

Up to, now we have been working mostly in two-dimensional geometry. Its time to generate some three-dimensional geometry, starting with the less complicated steps first

Sweeping This is as simple as connecting the profile and rail to a one rail sweep component, for both the solid and hollow profile the operation is the same.


With the ribs, it gets a bit more complicated, but it is not difficult.

First, we will extrude both profiles to the preferred thickness.  

Rib thickness = var param 20 min to 50 max

Next, the ribs will be placed on the points determined in step 3, The process is the same for both extruded profiles and to achieve this we will make use of the reorient component in Grasshopper.

This component takes geometry and copies it to a point or plane in space.

Parametric design best practice: 

Although the possibilities are almost infinite, that does not mean you have to explore every single one.

We have now ticked all seven parametric boxes, and the result is a simple adjustable parametric bench.This algorithm can generate a huge amount of variations and iterations with very little input. From here you can take the model to the next step by either rendering it or having a prototype made.

As the last step in this walk-through, I would like to invite you to explore the model embedded below. I uploaded the script for the bench to the Shapediver website and inserted it here for your convenience.

Feel free to adjust the sliders see what you can come up with, If you would like more information on Shapediver I suggest you head over to there website and have a look at what they offer, you can signup for a free account to get started. 

Interested in having your models scripted and build in grasshopper to be used with Shapediver, let us know.

Contact me

Here is a link to the grasshopper file if you would like to download it and have a look at how it works

  • Instagram - Black Circle
  • b-linkedin
  • Facebook - Black Circle
  • Pinterest - Black Circle