I would like to have a group of curves on a surface, the curves must flow in the Z direction projection and be equally distributed by a separation which is input (target distance between curves). That means that as the surface domain grows/shrinks, new curves need to appear/collapse. The behaviour is that the curves do not have ramifications, but rather new curves appear in between other curves. The target surface is a revolution surface with variable radius (around Z axis).

The term curve growth seemed that could be what I was looking for, but I didn’t find something that resemble my objective.

Actually, this is close to what I am looking for. However, the method of subdividing and finding the closest point for several sections produces some wobbling in the curves, which ideally should be minimised.

Maybe a starting point for some optimization using Kangaroo or something similar?

Or find a better way to populate points (only using multiples of the same value like 3,6,9,12… per row to ensure some straight directions are preserved). And remove the random seam positionning to start with.

Or rebuild the curves at the end / reduce polylines to a certain amount of significant vertices.

I think you have more than enough material to think about right now !

It is also possible to generate many curves, here I use my geodesic tool with a Z direction as start, then use Geodesic Curve From Point. I improved it in order to have geodesic continuing on the borders but here it is not beautiful.

Bonjour, great work as always. I have an ignorant question, is there an option to produce curves for the boundary areas, instead of a mesh with elevations? I could generate a surface, intersect it with the mesh, and extract the intersection curve, but thought there might be an easier way

The work of Laurent is always inspiring. For a different approach I would like to suggest using shortest walk algorithm with the rim vertices at the top as your path ends. Contour the shape/ extract iso curves in the z direction and subdivide each contour by distance so the number of points is informed by your topology, then use said points for the network. Sort by length, remove duplicates and delete the lowest point of each branch to disconnect each branch.