Trouble Getting Equal-Length Triangles on a Surface - Robust Workflow

Hi everyone,

I’m working with a surface that I need to subdivide into triangles with equal edge lengths of 500 mm. I’ve tried using Galapagos to optimize the subdivision, but I haven’t been able to achieve a clean or consistent result.

I also attempted a solution with Kangaroo, but I’m still not sure how to properly set up the simulation or constraints to force all edges to match the specified length.

Is there an alternative workflow, component, or strategy for generating a triangular subdivision with uniform segment lengths?
Any explanation, example, or guidance would be greatly appreciated.

Thank you!

Equal-Length Triangles on a Surface.gh (19.2 KB)

not sure I would approach this with Galapagos, but anyway take in consideration that you are feeding Galapagos all the segment edges of the paneling, which includes these “height of the triangle” lines, and all these “half base” lines:

also, you are providing 6300 fitness values:

also consider (maybe this is exactly what you want, but I think it’s worth a few words) the panelization is based on points, meaning the panels vertexes are the only geometries that lie exactly on the curved surface, while the edges of the triangles always travel outside the surface unless you pull those to the surface itself:

[red straight segment from panelization, green curved segment from pulling it to the surface]

Thanks a lot for taking the time to review the definition and point out those details — really helpful observations.

Regarding the approach: since Galapagos is receiving all the segment edges (including the height lines and half-base lines), and therefore evaluating a very large set of 6300 fitness values, I completely understand why this might not be the most efficient strategy. If you have a suggestion for a better optimization workflow or a more suitable toolset within Grasshopper, I’d be glad to explore it — I’m open to restructuring the approach if there’s a cleaner method.

About the panelization: yes, I’m aware that the triangulated panels sit technically off the curved surface because only the vertices match the surface while the straight edges deviate from it. In this case that’s actually intentional — the goal is to approximate the form with straight segments rather than to keep the panels perfectly constrained to the curvature.

Given all this, I’d really appreciate your view on what you think would be the best methodology to achieve the objective:

  • keeping straight-edge triangular panels,

  • approximating the curved surface visually,

  • and optimizing the distribution or proportions of those panels without overloading the solver.

If you have a recommended workflow (e.g., clustering, pre-filtering geometry, using another optimization tool, simplifying the fitness evaluation, or even a different panelization strategy), I’m all ears.

Thanks again for the feedback.

When trying to hit accurate paneling across anything other then completely idealized surfaces, I would use PanelingTools: Equal Grid Across Surfaces - #7 by scottd