Generating Wooden floorboards + balustrades that intersect with a pattern


I’ trying to create wooden floorboards that continue to form the balustrades, like the terraces in Snohetta+Heatherwick’s Google City:

And this is what i currently have:

  • The current workflow behind the code is to divide the floor-plate curve into points, before grouping them up in separate groups. Ideally, each group will be lined up along part of a curve where they generally have similar tangents. The wooden planks will then be assigned to these points, where each group has planks facing the same direction. However i cant figure out how to do this so I manually change the angles in grasshopper.

  • The main problem is getting the correct angle to align the right number of planks accordingly so that they don’t overlap. I tried experimenting with just right angles, but it doesn’t seem to work well.

  • With regards to point no.1, this issue might be fixed if the group size could be readjusted according to the curves. As of now, the points are all equally grouped, which means that not all groups will fall in the ideal region( which explains why some planks are overlapping outside)

  • The toughest part would be where the planks in different directions meet. The iteration shown to you earlier today was done and trimmed manually. To generate a grasshopper code for this would probably require manual programming.

  • The balustrades in the picture are angle according to the shape of the curve, and I can’t figure out how to do that as well.

Please help me if you can figure this out! Thanks!!

1 Like

Hi Lester, have you tried creating a crease along the diagonal corners of your overall surface? I think separating your surfaces and then contouring along the X and Y accordingly will get you curves that then you can use to split them in the X and Y direction. I think this is less messy than attempting to do all at once and then solving for the intersections of a lot of curves. Very cool Google project.

Hi Carlos, What do you mean by creating a crease?

Did you look at that ?

Based on Gilbert tessellations

With angle


Thanks, it looks like something that could work, but how do i form the gaps in between the floorboards?photo6262798565613087086%20-%20Copy%20-%20Copy

Generating the splits
I tried to find a way to automate the split depending on angles is not easy.

Surely it is better to do it using hand placement.

One thing that could help is to generate Medial Axis (there are many discussions on this forum, the script here is from @DanielPiker ) of the closed curve. So it gives a skeleton of the separation points. You count the spikes, 6 on my example, I added one point for the concave part, so you need 7 separations. Then You need to put 7 slider in the Genepool Splider.

  1. One GenePool Slider for the position on curve
  2. One GenePool Slider for angle (0 to 360 °)
    curve (132.7 KB)

Generation of planks
Here Gilbert tesselations is used.

Generating gaps is not too difficult. But it also depend if you want constant with of planks …

There are many parameters … and surely other ways of solving this.

It is important you share more information on you design constraints.
Read that it could be useful