OnCurve: Distribute points along curve

See below. The solution is correct, but not what I want: The points should be distributed along the two arcs. Only when I slightly tilt the arcs, then the points do what I want. What is the correct approach here?


2024-02-27_OnCurve.3dm (89.1 KB)
2024-02-27_OnCurve.gh (16.9 KB)

What works is to set target points and avoid OnCurve, but that adds complexity and reduces freedoms, thus resulting in a less natural tensile geometry.

Hi @feklee

The OnCurve Goal pulls points towards the closest point on the curve.
Because your curve is a circle with its center on the same plane as the mesh, the closest points for all those starting points are at the intersections of the circles and the plane, so they move only horizontally.
However, all it takes is a little nudge to move the points out of plane, then they will distribute naturally along the curve.

Here’s an example of doing that by applying a temporary vertical load:
2024-02-27_OnCurve_push.gh (18.0 KB)

That is so bizarre! Good example of why I haven’t mastered Kangaroo, cool as it is.

Indeed, I would not have found that nice solution by myself. Thanks @DanielPiker! I realize, after resetting the solver, one needs to hit the button to temporarily activate the force:

Alternatively, I may leave the vertical force in permanently with a force vector of length 0.1 in z direction. That has pretty much no effect on the geometry. Anyhow, I should learn more about forces. They look like fun.

I’m still struggling with OnCurve:


2024-03-01_OnCurve.3dm (88.0 KB)
2024-03-01_OnCurve.gh (26.2 KB)

The above screenshot shows the result after pushing reset. When I then move the OnCurve strength down to 0 and back up again to 100, I get what I want:

I tried adding a load, but then there is an out-of-bounds error.

What am I doing wrong?

Your starting mesh is way off to one side of the frame it is being pulled onto.
This means points on the left side of the starting mesh have to pass through the right hand side of the frame before reaching the left side where you want them. Because OnCurve pulls to the closest point on the curve they are getting stuck on the way.
Instead, move the frame to the middle of the starting flat mesh and the problem goes away:

1 Like

Thank you very much! I wasn’t aware that the mesh is literally being pulled from its origin position. It does make sense.

Now, I’m stuck again. In this case, the mesh is turned inside out when mapped onto the arch in front. I tried reversing the direction of the curve describing the arch, and I tried reversing the order of the points that are being mapped. But nothing works for me. "What am I doing wrong here?*


2024-03-02_OnCurve.3dm (89.4 KB)
2024-03-02_OnCurve.gh (27.9 KB)