Trick to reproduce this pattern?

Hello everyone,

I’m an industrial designer and a complete beginner with Grasshopper…
I wanted to reproduce this grid parametrically, and I thought it wouldn’t be too complex, but I’ve immediately run into a real puzzle :sweat_smile: I can’t figure out how to determine the exact location of each circle… As I’ve tried to highlight with colors, this pattern is far from a simple hexagonal grid. I can’t understand how the centers of the circles are positioned relative to each other! I thought of rosettes or spirals, but I really can’t see a repeating spiral, and I have no idea what equation could be used to find the centers of the circles. This pattern makes me think more of dendritic growth, like during the solidification of snowflakes, for example, but that’s complex because it seems to me that snowflake formation involves fractals and recurrent patterns.

If anyone has worked with this type of pattern before and knows the trick to finding the center of the circles, I would be extremely grateful!

Thanks in advance! :DDD


Nurbs basics will help you in a very visual way:
(of course this interpolation can also be done with polynomial)

FlowAlongSrf (Gh: Sporph component) will get you quite close:
use a simple Square as a Base Surface (green) (Degree 1x1, CV-Count 2x2)
use a Target Surface (Degree 1x1, CV-Count 2x2) and change weight of the corner points.
skip the points outside the inner circle.

hope this helps - kind regards - tom

2 Likes

From F4R

1 Like

=
https://www.food4rhino.com

Why not provide a direct link :question: (though I’m not a fan of plugins)

1 Like

Hello Tom,

Thanks so much for this really smart tip, it works pretty well actually!! :smiley: :folded_hands:

I obtained this result quite easily with your method; there’s a slight deviation towards the end, but it’s really not bad. Especially since the reference image isn’t perfect. I took it quickly with my iPhone. I imagine that from this, it’s possible to calculate the distance of each point from the center and create a cylinder with a proportional radius. Then, a polar matrix and a Boolean difference between a disk and these cylinders? If you ever have any other advice, I’m all ears :smiley: Thanks again!

1 Like

did you manage to do it in grasshopper as well ? i searched around a bit and did not find a vanilla Grasshopper, no scripting, solution to get a surface with weighted Control Points.
(it s easy with a scripting component)

Honnestly I was thinking of using my points built like this as base inputs in grasshopper. I don’t know much about GH so the easier the better :sweat_smile:

I’ve managed so far to create cylinders proportional to the distance, but I’m stuck on a strange problem. Does anyone would know why my polar array isn’t working? thks :folded_hands: :sweat_smile: :sweat_smile:

Use “center” as the plane for your polar array.

Currently you are making an array of each object around its own center, so it seems you are doing nothing…

of course! thanks a lot!