How to create a parametric brick wall with bulges

Hi all, I’m relatively new to grasshopper, just wondering if there are any ways to create something similars in the images - 2 different size brick wall on undulating surfaces defines by bulges / hot spots? Thank you



It’s absolutely possible with Grasshopper. I think this will be a good starting point: Grasshopper Tutorial | Parametric Brick Wall - YouTube

It’s I think simple enough to work out the basics, and then here we can help with the details or more tricky parts, but it always is much easier and quicker to help if you already have something in Grasshopper :wink:

Here is a more or less quick and dirty solution with only basic components. I highly recommend that you try to comprehend what’s happening in the workflow. To build such a wall you need to understand the concept of tree structures (which might cause you some headache) and others.


brick-wall.gh (24.7 KB)

Hello both,
That wall looks great! Thank you for the pointers - will take a look at how the components work together to start with. Will let you know how I get on. Thanks so much for the head start!

Bricks have been done so many times in GH, try search:

https://discourse.mcneel.com/search?expanded=true&q=bricks%20%40Joseph_Oster

Seven years ago:

Eight years ago:

1 Like

Hi Henry, thank you for the amazing code above and the groupings allow me to understand it a lot better. I m trying to now change the colours to random different colours throughout the bricks from top to bottom. I managed to add two colours to the 2 different size bricks you have created. But when I input a gradient component, it seems to only be able to do that on surfaces so the colours didn’t really come through. Any ideas how could I get multiple random colours to dissipate from top to bottom (like in the images on bricks)? I tried searching it on forum, most of the colour change is on surfaces, there are one post that apply different colours to bricks but the components didn’t quite show the name, and I find it hard to decipher which components is which just by the icon. Thank you.



It seems your reference image is from one of my postings in the old GH forum.

What you could do is to retrieve the z-coordinate of all the bricks. Then you can colour the bricks according to their z-coordinate:

  • get the center of the bricks (volume component)
  • get the z-ccordinate of the center (deconstruct point)
  • find highest and lowest z (sort, list item)
  • apply the gradient

If you want a little dithering, add a small random number (negative or positive) to the z-coordinates.
Depending on your code, it might be necessary to flatten the bricks at some point, so you have them all in one big list.

1 Like

Hi Kim, thanks for reaching out, yes it is- I’ve been looking around to get some code to work combine with the current one to get a gradient but doesn’t seem to work like that. I’m relatively new here, I can’t really make out some of the icons on the screenshot too. I have also made another posting on another one that I tried out some regular bricks with different colours, ( i have attached the link below) i managed to get something but realise it can’t bake it with colour in the end and I also have trouble doing it 4 sided. Could you help with that?

How do I bake the bricks together with the colours? Possible by any chance?

Hi Henry, I have evolved to this but I still can’t seem to get the random colours, I understood what you said in theory but just wasn’t sure how I can fit it in the code to get it to work to produce random colour from top to bottom.
RSV_BrickWall- gradient 230608.gh (53.7 KB)

Here is a simple solution. Think of colours just as numbers, you can do anything with them. Try out the RGB- or HSL-components and play a little bit with them.
RSV_BrickWall- gradient 230608_random colors.gh (51.3 KB)

1 Like

Hi guys, I have a rhino question to ask, after joining two surface to create recessed on the upper part of the building facade, my bricks is looking very off. I can’t seem to get it to work as one surface. I have tried booleen union, merge surface and blend, all does not seem to work. Any ideas how I can solve this? Thank you very much.