An Equidistant Surface Division for Facade Tiling That Avoids UV Pinching

Hi everyone,

I’m looking for a way to divide a 3D or flat surface into somewhat equidistant curves along either the U or V direction. The end goal is to tile this surface for manufacturing a facade, so the spacing must be physically accurate.

I am struggling to get a clean result that maintains equal distance without distorting at the edges. Here is what I’ve tried so far:

  1. Standard Isocurves: Fails because it maps to the UV parameter space, resulting in severe pinching where control points converge.

  2. Hard Division by Arc Length: Dividing rails by an absolute distance gives perfect parallel spacing, but doesn’t align nicely with the surface boundary edges.

  3. Warped Contour / Blended Tweening: I tried a C# script that keeps the center lines equidistant and uses an S-curve to warp the outer lines to snap to the surface edges. However, the resulting pinching/distortion is still remains.

To use a Photoshop analogy: its strictly mathematical “Linear” gradient often looks harsh, whereas a “Perceptual” gradient flows much more naturally to the eye. I am looking for the geometric equivalent of that perceptual blend for these curves.

So I need the “best of both worlds”: iso curves that maintain a visually equal-like distance between each other, and flow nicely with the surface topology, and cleanly align with the boundaries without pinching.

Has anyone tackled this specific facade tiling problem or have suggestions for a mathematical approach in to achieve this?

i attach a test file incase anyone is willing to give it a shot. I am open of installing/using external plugin soloutions

divide surface_01.gh (47.9 KB)

Hello
did you look at this discussion

Daniel Piker solution is surely the best

My tools doesn’t work well here, I have a problem with big objects !!!

Hi Laurent, yes i recall this topic, and that may indeed be the way to get these curves.
Come to think about, maybe i need a new approach, as what i need is more akin got the attach image. More like an adaptive grid on a surface where the number and length of isoparametric-like curves increases or decreases based on the local width of the surface to maintain a consistent spacing (edge length)?

I better see what you want but I have no idea of what is the way to do that. Perhaps some sort of clustering.

Can you contour this surface in u and v directions maybe ? That can give accurate panel sizes based on contouring distances

@cfee
I think this is doable, if you solve first one direction, such as the horisontal width of panels in the image. Subdivide the surface to strips and then solve the panel lengths per strip.

This is not a solution. I was just wondering what I would do with my limited knowledge and skills. Rebuild and tween along curves?:

I am getting so fed up with Rhino and surface creation based on curve parameter. It’s so basic and primitive and rarely what you want.

i’ll give that a try

Its not possiblle to divide domain of surface that is not a rectangle into equal real length distances. Because if one side is longer than other, how do you want to match them? Surface system of coordinates has curvature and does not translate into real world size. You can divide offsetting curves, but you will end up with rectangles that do not follow your geometry.

Paneling tools does something close to what you want

But overall you need another approach