# Folding curve on a surface

hi, I am trying to get a growth line pattern.
For now I manage to create a line that does not overlap. But I can not manage to create and control area with more density of curve and other less.
If is need I can implement also a Python script.
I thought also about a different way to construct it. Manage to have two fixed point and create a line in between. After increase the lenght of that line in order to get the folding effect.
A,script alessia.gh (49.2 KB)

Thanks

Hi Alessia,

It is just an anti-overlapping method, as you said (i used sphere collide instead of collider), and a bending resistance method.
Have a look at attached definition.
“Rod” component is perfect for this situation.
(I wasn’t able to start definition with high bend force, so increase sphere radius and bending force step by step as in this gif)

A,script alessia_re.gh (43.2 KB)

Edit: maybe you can achieve different patterns by letting it “relax” before/after increasing one of the 2 sliders… who knows.

Edit2: curious effect (but probably very obvious for who works with this stuff) if you store every iteration and move them in z (370 iterations, loft took 2min to work)

(seeing Z as “time”, you can actually see how inconstantly I was changing forces )

5 Likes

thanks for your answer! Your script makes mine simpler and easier! I was wondering if there is the possibility to have different radius for the circle collide. My aim is creating different area of density using this pattern (for example have the bottom part more “folded” than the upper one, less heterogenous ).

growingcurve_varydensity.gh (19.0 KB)

You could use the ‘ImgCircles’ goal for this - it does sphere collision, with the radius of each sphere taken from the colour of the closest point on a mesh. Here I’ve generated the smoothly coloured mesh by assigning colours to a couple of points and subdividing in weaverbird. You could also use here the MeshPaint3d plugin https://www.food4rhino.com/app/meshpaint3d

To take this further you might want to switch to a scripting approach, so you can change the number of vertices as the curve grows. For this the example here should be a start: https://github.com/Dan-Piker/Kangaroo-examples/blob/master/scripting/GrowingLine.gh

9 Likes

Hi Daniel

I can’t download the link. It says it’s either private or removed. I will be very grateful if you would take a look.

Best
Devin du Plessis

It looks like the discourse site is still having some issues with older files going missing. Anyway - here’s that definition:
growingcurve_varydensity.gh (19.0 KB)

3 Likes

Daniel, you are my absolute hero man. Very impressive, what you do and thank you for the reply and all the examples and code.

Best

Devin

Do you know how to make a model like this one, where the density changes with the height of the lines as they touch each other?
I want to create a model where the lines are the same thickness and make contact.