Curve attractor by specific values and arrangement

Hi guys,

im trying to reach the referance image the samllest values in the curve road , and the other 2 values need to be mixed as pattern like the referance.
any idea ?


circles 1.gh (26.7 KB)

I think the initial circle pattern on which the attractor curve acts is something like this:


circles_tri_pattern.gh (17.1 KB)

circles_tri_pattern Edited v0.gh (47.3 KB)


Oh, now I see it, the base pattern is wrong.

1 Like

Nice. But too many nested clusters. And instead of Scale I would have adjusted circle radii.

i tried to your method it works but its too heavy calculation takes too much time :thinking:


crv attr 1.gh (25.8 KB)

yeah this is what i’m trying to achieve but as joseph mentioned it shouldn’t be scale it at the path otherwise will be many unique circles im trying to achieve specific number of diameters 3 max

It isn’t clear in your first post that you want to use only 3 diameters? Two are used in the pattern without the attractor so you want to add only one more,?

Yea that’s why i attached my file when posted it , I want to reach specific values of diameters even in the curve road not important if only 3 diameters but I’m assuming it

For Example if I have diameters of 3, 6, 10

The smallest value (3)could be everywhere

The middle value (6) some of them in the curve attractor road, but the most of them could be outside of the curve

And for the biggest value always will be outside the curve road

Just like the image ref

Perhaps I didn’t get that from your code because:

  • it uses a plugin I don’t have
    missing

  • it is excessively complex

  • your geometry is far from the origin

I don’t know what you refer to… I gave you an example on how to build the pattern and nothing more :slight_smile:

here is an attractor curve on such a heavy pattern calculation that takes too much time, it looks pretty responsive to me :smiley:


circles_tri_pattern_attractor_curve.gh (20.4 KB)

2 Likes

However… You are using a range of circle diameters (radii) rather than a list of three values. Also, I don’t think @Ahmed_Alnaseri is using a triangular grid; it is a rectangular grid from SDivide, more like what @Quan_Li did.

1 Like

In that case.
Replace by Domains.gh (37.0 KB)
Since my English is so bad, I am really struggling to give the cluster a name.

1 Like

I always have comprehension issues when text describes a different thing than the reference images :slight_smile:


circle_grid_2024Feb10a.gh (21.7 KB) DEPRECATED

P.S. Simplified the purple group:


circle_grid_2024Feb10b.gh (20.8 KB) DEPRECATED

P.P.S. Same code updated for clarity:


circle_grid_2024Feb10c.gh (22.6 KB)

This is interesting? The list of radii is expanded to 5 (or any arbitrary length) to give a gradient effect.


circle_grid_2024Feb11a.gh (26.5 KB)

1 Like

thank you inno this is really interesting pattern ! i can use it other cases

thanks joseph this is what i was looking for

In the process of expanding the list of radii beyond three I created an off-by-one condition that I won’t try to replicate now. The effect was that points nearest the attractor curve had the largest radius instead of the smallest. So at one point I inverted the ‘W’ (Wrap) input to List Item (lower right on the canvas) which “fixed” the problem by returning <Null> instead of a radius value for those points. That resulted in no circles near the curve instead of the smallest radius, which looked great! Eventually I fixed the off-by-one condition so didn’t need to disable ‘W’ but it looked fine and is something you might want to do intentionally.

1 Like

Binning.gh (58.9 KB)

After asking google AI, I finally found the right name: Binning.
It can turn smooth gradient data to “step” data and assign new value to each step.

2 Likes

thank you joseph really appreciate your codes