Create such a this pattern in grasshopper


So, I am trying to implement the ‘growth’ of a few concentric curves, as suggested by this Zaha Hadid work. One thing I am not understanding is how Kangaroo handles multiple curves in a tree structure.
For example, say I have 4 concentric rectangles, as in the attached script, modified after Riccardo’s links to ‘folding curve on a surface’. Despite various attempts at a tree structure, the curves output are flattened, so I lose the distinction between the curves.
An approach which might work, but which seems clunky, is to run one curve at a time through Kangaroo, with the outer curve then becoming the bounds for the next inner curve. 4 nested loops of Kangaroo does not seem like a good idea, hence the question, how to do this through intelligent ree structure, or some other idea.
Here is what I have so far, again based on Riccardo’s workA,script (43.5 KB)
Any and all ideas are welcome.

To clarify, what I am trying to do is get the 4 curves to act as collision objects for each other, but not merge or overlap

Try this: (55.2 KB)

In the other post I didn’t use Collider goal component (I was being stupid)
With Collider shapes are much better than with sphere collide.

Still, I used the same sphere collide to make a “friction” between the curves, maybe it’s good… i don’t know… (you can turn off the Collider that is using points if you want)

Many tweaks are still possible.

I think bending resistance should be dependent of the stretching of the curve (like a balloon inflated), but maybe i’m wrong.

To use more curve/points than this or by adding more complex logic you need to go to scripting.

(Is this the new “voronoi”? …)


Thanks Riccardo, I will try it.

thank you Riccardo and markz for your consideration.that was so helpful guys.

This is a great patch! thank you for sharing. I’ve learned a lot today!

Hi markz,
I try to open the file but it pop-outs a window says it needs multiplication plugin. But I can not find any of this on google. Is it a rhino 6 stuff? I am now only using rhino 5

It probably uses the new multiply component in Rhino6 which accepts a variable amount of inputs. You’ll have to replace the missing component with the R5 equivalent or upgrade to R6, sorry.

Hi David, thanks for your reply. I only find one threading on multiplication Update broke the multiplication component, but it does not work and conflicts with r5, I wonder if there is multiply component that is written out for r5, which will work on this situation.

This is the complete layout:

the only multiplication component used is at the mid-bottom.

Thank you Riccardo. The layout has been fixed and It works on my R5.

Hi Riccardo, I have been researching how to apply this pattern on different surface with using your GH script, but currently I have experienced the problem you might have been solved in your situation, which the curves are crossing over after generated by kangaroo.If there is any way to fill the polar of the sphere (31.1 KB)

Hello Riccardo, is it possible for you to upload again the file please? It seems to be broken. Thanks!


1 Like

Hi Alex.
I no longer have that file… anyway there is the complete layout of that definition in my previous post… it shouldn’t be too hard to rebuild it.

I tried it, but no wonder what’s inside those “cluster” and “asd” packages.

Thank you for your time!


… damn me!
I’ll look at this later.

1 Like

Hi Alex, try (55.4 KB)


Thanks a lot friend!! It works :slight_smile:



Just wanted to chime in and say this is an awesome script. I came looking for these tools after watching the Zaha video above, it’s an awesome example of Kangaroo and a humbling amount of shared knowledge and work. Great job guys!