Apply window pattern to a curve without it stretching


This issue may be something simple, or I may just be dumb/looking at it the wrong way. I am trying to apply a window pattern made with linework to a curved surface (a simple arc curve) I have tried both create uv crv and unroll to get the surface to draw on the pattern, both provide the same result apart from one giving an outline and the other a surface. Once I have fitted my pattern to the 2d version of the wall I have been struggling to get it onto the surface without the dimension of the windows changing. I’ve tried applycrv which gives me something close to what I am looking for but the windows get wider/thinner in places. I have also tried flowalongsrf but that gives either similar results, or even more drastically stretched results. If anybody knows what I might be doing wrong, or an idea of what to do instead that would be greatly appreciated!


Hello - please post a simple example file with some indication of what you’d like to do - there are too many ways your description can be interpreted.


Hi Pascal,

Thanks for you help and sorry for not being more clear. I’ve attached a file with a sample wall surface, and the unrolled surface with the window pattern on it. The windows are 8’H x 4W’. I’m trying to find a way to retain those dimensions when placing the pattern on the wall. Sample File.3dm (81.1 KB)

Thanks again for the help!

Hi @epstein.b
@pascalmight have a better/other way, but if you Rebuild both base and target surface (in this case I’ve used 10x20) and then use FlowAlongSrf, you get a precise result - see attached.
HTH, Jakob
Sample File_Rebuild.3dm (155.9 KB)

Hi Jakob,

That method works great! Just so that I understand the logic, I assume that the number of points increases the precision? In other words, the higher the numbers within the rebuild the more precise it will be?

Thanks so much,

Hi @epstein.b
I must admit that I don’t know the math begind it all - I’m just a simple Rhino jockey. @pascal might be able to shed some light on what goes on behind the interface, but something along those lines would be my guess also.

@epstein.b - Target surface has, for some reason, a very distorted parameterization - FlowAlongSrf flows from the base UV to the target UV space and in this case the base plane is evenly parameterized and the target not at all - so there is a distortion. @Normand 's Rebuild basically serves to provide a target that has evenly distributed UVs, which is what Rebuild does. In this particular case there is no visual cue that the UV is uneven - often you can tell by looking at isocurve spacing - so making a temporary target with Rebuild (to plenty of points ) is a reasonable thing to do, but again in this, slightly odd it seems to me, case, Reparamaterize > Automatic sorts it out as a target surface as well, without needing to rebuild.

Note making a base surface using UnrollSrfUV from the 3d surface also works in many cases - the flattened surface has the same UV distribution as the 3d surface.

One other thing - in this case, Flow, from a line to an arc would also have done the job of deforming the shapes.



Hi Pascal,

Do you think there is value in FlowAlongSrf having an option similar to the below feature add-on, which I noticed for ArraySrf?

Hello - I don’t know - if you mean that the target (and/or base I guess) could be automatically rebuilt behind the scenes, that does seem like it could be a useful tool - where I balk a little is that in doing the rebuild by hand, at least the user is aware of the process and the extra level of approximation that is inherent is somewhat visible.


1 Like

Yeah I can see where your balking would come from. Better to keep it pure than oversimplify, given that it’s important anyway to recognise what the tool is doing as part of the Rhino learning curve anyway. I know for me, noticing this aspect was a big part for understading what’s going on.