Digital Fabrication - How To Create This Bubble Pattern Parametrically

Hi all,

I want to create this parametric bubble pattern shown below with grasshopper which will enable me to to use it in multiple applications and resize it accordingly.

In the image above you can see where I am in grasshopper at the moment (left) and where I would like to be in the future (right). I hit a wall in grasshopper when attempting to copy this piece over and shift it to continue the pattern.

To create the pattern on the right I baked my current geometry, and modeled the rest of it in rhino. As mentioned I would like this to be used in multiple instances and as projects arise I would like to be able to parametrically adjust it to fit the context of the project.

The end goal is to create vertical contours of this geometric pattern, CNC mill the pieces (3 axis), and also somehow embed planter boxes into each of the bubbles, making a green feature wall. But for starters.. some help just modeling the wall in the way which will allow me to parametrically manipulate it: size of the wall, size and proportions of the bubbles, etc. :grinning_face:

Also, from the point of aesthetics, I would like if the seams between bubbles weren’t so harsh, so any advice on that would be helpful as well.

Thanks for any assistance!

green wall.3dm (887.6 KB)
green wall 2.gh (15.4 KB)

1 Like

this is my 5 minutes of morning fun before starting to work :slight_smile:

green wall 2_inno.gh (22.6 KB)

I took some poor decisions in deciding what to array, will probably give it another go later :slight_smile:

2 Likes

Same thing, rectangular array. No better:


green wall 2 _ vr _01.gh (50.6 KB)

Another separate slider for Y of rectangle would give independent control over height spacing.

That’s the next step.
green wall 2 _ vr _02.gh (61.4 KB)

3 Likes

I ended up with something different. Didn’t know what to do with the offset columns so moved alternate rows sideways.


green wall_2025Jul8a.gh (19.5 KB)

P.S. Added thickness.


green wall_2025Jul8b.gh (18.8 KB)

2 Likes

Perhaps for this you’d have to reconsider the starting segment (arc) that’s getting lofted. These perfect half-circles will contribute to that ‘harsh’ seam. You could attempt to create your own nurbs profile to smooth the ends of the curves:

2 Likes

In the second script of my post, I did this by filleting the join of the horizontal groups of arcs to get rid of the cusps/kinks.

1 Like

This is a great starting point! Thanks a ton!

The fillet produced weird results once baked, so I created this workaround solution that is point based rather than using arcs. I used the prior solutions in this thread as a base file and built off that. Does anyone know why loft isnt working here?

Also any advice on cleaning up this file? It feels redundant and im sure there is a simpler solution.

green wall 5.gh (21.8 KB)

Nevermind, just needed to flatten the results :sweat_smile:

Okay, but
 that is a very different result from what you were asking for in the OP.

Seems fine to me, or does this look different on your end?

Maybe they look too much like grooves to you?

I don’t know if this egg-cartony shape is what you want, but here’s how to clean up a file:


green wall _ vr _04.gh (53.4 KB)

If you can follow this, you’re a good ways through understanding data structures.

1 Like

Seems to me that “planter boxes” is the whole point of a “green wall”, yet I haven’t seen them yet? Also, there is a structural component of a wall of planter boxes? What holds it up? How much dirt and what kind of plants will it hold?

I haven’t addressed structural issues myself yet, though I can imagine stackable boxes, like concreate blocks. Or
 :thinking:

I substantially rewrote the code I posted, with a novel solution to staggering the planter shapes and making the shapes more accurately. Starting at the bottom, odd numbered rows have wider shapes at each end. There is a switch (blue group) between all separate shapes (perhaps best for stackable boxes?) or each row as a joined brep.

‘Single Breps’

‘Row Breps’


green wall_2025Jul10a.gh (45.8 KB)

P.S. I very hastily added stackable boxes (white group). Sorry but don’t have time now to add back surfaces, structural details or check the code for errors.


green wall_2025Jul10b.gh (47.7 KB)
(DEPRECATED, bypassed data dam, use corrected version ‘cc’ below)

1 Like

Added back of box (purple group).


green wall_2025Jul10cc.gh (54.1 KB)
(OOPS, bypassed data dam in version ‘b’, corrected in version ‘cc’)

1 Like

I agree with Joe that some explanation or decision making has to be made on the constructive side of things, but following up on the displeasure you voiced over the the filleting of the the semi-circles:


bubble-pattern_vr_03.gh (66.2 KB)

This script gives alot of control over the a 2nd degree curve created as a fillet between two Bezier spans set out of phase and of different amplitudes, in the 1st and 2nd halves of a period.

I used MetaHopper to set the domains of the sliders. Unfortunately, the Get Connected Objects needs to be connected directly to a slider, so I couldn’t place it inside the cluster expanding the number of cluster inputs.

You can use the resulting output geometry and flip and array it to get your sequence of joined curves. Here, what the cluster looks like on the inside:

1 Like