Creating an Array of Circles of Varying Diameters Along a Curve

Hey all,

I am looking for assistance in creating basically a grid of funnel shapes by creating an array of different sized circles along a curve.

I am stuck at the part of creating different sized circles along the array. Any help?

The final goal is to be able to loft the circles together to get the funnel. (11.4 KB)

Thanks for the great feedback! I got it to work. However, now I am running into the problem of if this is a structural system how do you allow them all to connect.

For example- the radi of the ellipses would technically need to be so that there is some sort of function that defines R1 and R2 as separate values to make a true ellipse and not a circle.

Not sure if I am explaining my problem well…

Would the solution be creating a function that would plug into the “B” of the domain and then to the rest of the parameters?

If I wanted to be able to move the points independently from each other in order to not have regularly spaced bays, how would I do so?

For example if I wanted the distance between each of the rows to be different.

I got as far as this, but some points move independently and others move in groups. There also seems to be copies. I’m not sure if I am understanding the function of the gene pool correctly.2 (16 KB)

What you have done here works, but I think after trying it what I really need is a way to move all the points independently from each other (be able to control the specific distance like with a slider). That also then presented me another problem of my funnels overlapping again, so I need to also be able to change the domain of each funnel independently as well.

I didn’t expect this to get as complicated.

Than you may have to be more clearly. You want to controll every single point or every single row and what are the boundaries ? (15.4 KB)

I apologize for my explanation being a bit unclear. I am new to using Grasshopper, so I am still learning how to communicate my issues as well as all of the methods/tools. Yes, I would like control of every point on every row. By boundaries , do you mean the extent of the grid I am creating?

Here you got the controll over every single x and y coordiante of your points. Dunno if that is what your after.
Boundarys I mean for example. You want start with a grid and move every point independet in x and y, or you have always the same x and just move y, but not independet, if you change distance 1 than it will be added to all following etc. I mean if all the time @HS_Kim has to guess what you want, it will be a Long day for him. (16.2 KB)

Yes, I would like control of every point on every row.

Then just use Rhino. There is no point in grasshopper if the goal is isolated control over every element. Grasshopper is about rules, systems, algorithms, correlations. Not for control of every item.

1 Like

Yes. I realize this, but the person I am doing this for wants the model to be able to generate multiple iterations (different configurations and shapes) quickly (therefore suggesting me to use grasshopper).

Ok, but you don’t have to create the points in grasshopper. I mean, if you want to change every x/y for every Point in gh manually , than it’s as fast as in Rhino. use a point param and when the points in Rhino look like you want them, “link” them to gh. The rest of the script will do it’s job.

Yes, that makes perfect sense. To which I tried to explain to my boss. He was more caught up in me generating the whole thing from grasshopper in a way where I change a few numbers and the whole thing can change based off of “unlimited” iterations. Instead of every time he wants a different configuration I have to change the points and then run it in grasshopper for the rest.

He thought it would be faster.

I agree with your argument though, by the time I figured out how to make the whole thing in grasshopper, I could have just done it in Rhino and think linked it.

I appreciate all the help! Perhaps at this point, I can explain that his way isn’t necessarily “saving time”.



Well just imagine, you have 100 points. You want control individually of them. Then you need 100 sliders. Not very practical. Instead there should be some thought about system of the way these things interact with each other. Best way to start is define your rules in a written list of how it should perform. For instance:

  1. An initially array of points is defined.
  2. Some max value is determined so radius don’t intersect the neighbors.
  3. If a point moves the other points should move also to the point they avoid intersections.
  4. ect ect ect

In your first answer to Jonnes you showed the grasshopper code to produce an very neat array of funnels. I’m fairly new to grasshopper; would it be asking too much to ask you to explain the steps in grasshopper that created this funnel array. It’s very impressive. Thanks