Irregular staggered planar panelization

I have been working on setting up a grasshopper script to panel a wall with picture frames or routed panels with irregular spacing, sizing, and orientation. The sizing should change gradually from one side of the wall to the other. At the moment I have been exploring dividing the surface into mesh faces and subdividing those mesh faces further to produce the gradient effect. Then further shifting the control points of the panel curves to stagger them in one direction. It gets a bit tedious picking the control points and even harder to try to stagger them in the opposite surface direction. Is there a simpler way of achieving this?
Something akin to Opus Roman tiling but with larger variation and a gradient shift in sizing.
I wonder if there is a way to produce a configuration using some sort of nesting or recursive algorithm that has more control and adjustability.
Any tips or workflow suggestions would be greatly appreciated! I have attached my current working file and reference images. (83.4 KB)


@laurent_delrieu has done some excellent work on a similar topic…

I think it goes back as far as the old forum and images like this one…

And this one that is doing a tileable pattern made with rectangles



I had a go with my custom packing component, but can’t seem to reproduce it consistently with OpenNest. Maybe some other users of those kind of tools could give you more advice.

That’s the one I was trying to find!
Wasn’t there also a version that used pre-determined sizes of blocks?

I have done one recently to answer a question. I am no more on my pc so it is hard to find.
But they all are the same they use an array of bools that represent a unit pattern. So they are many variations possible.

This one ?

It was this one I remembered that you posted above…

1 Like

@laurent_delrieu again:



Funny thing it seems that this tileable pattern is in the family of opus roman pattern cited by @kib8. It is a pavement made with some different sizes of tiles.

These might be relevant:

UPDATED today.

1 Like

Another go with code, heavily inspired by @laurent_delrieu awesome work.

Provided a unit grid and a list of rectangles with integer dimensions, this attempts to pack them, taking the closest point to a reference curve as the solution. This allows a sort of attractor effect.

Max size and influence of ratio of rectangles at the beginning of the script. Each rectangle is duplicated a number of times inversely proportional to its area. Any remaining space is filled with 1*1 squares.


My computer is not liking this while recording :sweat_smile: (15.1 KB)


Thank you all for the great suggestions and references!