How do I gradually increase the size of curves in a grid array?

I’m an avid Cinema4D user and I’m trying to learn Grasshopper by recreating some basic scenes that are easy for me to setup using C4D/Mograph.

Here’s a reference image I’m working with.

See the grid of rounded rectangles? Notice how they start small, then quickly get larger towards the center?

Creating this effect in Cinema4D is pretty straightforward. Here is my file, and a screenshot of what I’ve done there:

C4D.zip (90.7 KB)

What I do in Cinema4D is:

  1. Create a basic rounded rectangle curve/spline.
  2. Place it into a grid cloner with a high amount of clones on X/Y axis.
  3. Use a formula effector to hide every other clone. The effector takes the # id of the clone (eg: 1, 2, 3, 4, 5, 6, etc) then passes it into a mod formula. This let’s me hide every other clone based on its # id.
  4. Finally, I use a scale effector to increase the size of each clone, and I apply a box-shaped “falloff” towards the center of the grid, so that clones closest to the center get larger.

Pretty easy.

I’m failing to see how to do this in Grasshopper. Assuming I create a rounded rectangle curve, how might I replicate a similar setup like this?


holes_grid.gh (18.0 KB)

This is one way to do that…
Note that, to remove the outer holes it actually scale them with factor 0 , and so the red error.

It can be made to achieve further control, but it would result more complex and probably harder to understand.
Tell if you want deeper control.

Sorry for the delay in following up! Massive thanks for this, I’m starting to unpack the file to get a better sense of the inputs and flow control.

I suppose I have only one other request, one extra level of complexity. Right now it’s just uniformly scaling the base curve, right?

What if, instead, I wanted to keep the CORNER RADIUS exactly the same, and only affect the HEIGHT of the rectangle itself?

If I were to do this by hand, it would mean cloning an array of straight rectangles, applying Scale1D on every single rectangle to affect the height, and THEN applying FilletCorners on the rectangles so that no matter what the height is, the radiuses were equal (assuming the smallest rectangle dimensions were compatible with that radius).

Any chance you might be able to explore this? Thank you again in any case!


holes_grid.gh (15.8 KB)

1 Like

This is incredibly enlightening, and super easy to extrapolate into other interesting setups. Extreme thanks Riccardo!