Perfectly deforming curves around a sphere?

Hi all. Hoping someone will know a solution to this.

How would one go about deforming a curve pattern onto the surface of a sphere?
Both Pull and Project distort the pattern.

I remember in my Maya days it was possible to add 2x bend deformers & it would be able to achieve this effect but doesn’t seem possible in Rhino.

Any help would be greatly appreciated.

hi, do you want that pattern to wrap around the entire sphere or only the first half in the front? also pls upload the file if possible.

I think you need to clarify what kind of “distortion” you’re seeing with Project, as that acts as a linear drape in the given vector and should not distort. The curve nature (=degree and point count) of course changes though. With NURBS there is no other way.

Pull pulls curves in the normal vector to the surface, so naturally you will have distortion here.

Sure thing, file attached. Just wrap around the front face.
Ronin.3dm (3.8 MB)

This better shows what I mean. When i project, the curve pattern becomes very distorted as it nears the middle of the sphere. You’re right about linear drape, what I want is a non-linear drape if there is such a thing.

Does flowalongsrf do what you want? Start with the original curves on a disc shaped surface, and flow onto a half sphere. Probably needs some fiddling to ensure trimming isn’t an issue.

I’d say Nick’s way is what I’d try first - see the attached file - the flow is from the surface made by revolving a line to the split out piece of the sphere, with History. If you expand the disk, the curves on the sphere will shrink.

Ronin_Flow.3dm (183.0 KB)


I did try flowalongsurface
I guess because a sphere it ends up very distorted.

Oh wow. You’ve done it!
Sorry I’m new to Rhino so I couldn’t follow your method, but this is exactly what I’m after.

Hi - Pascal first split the sphere to limit the area where the curves will end up on. Then he made a new surface with the same structure as the dome by revolving the blue curve:

Then start the FlowAlongSrf command and select the curves that you want to wrap on the sphere.
For the Base surface, select the surface that was created with the revolve; for the Target surface select the dome.

Perfect! I wish I asked you this weeks ago. Thank you so much @wim @DuncanW @pascal @Ncik

Hi Matthew - the key to making FlowAlongSrf work here is the structure of the base and target surfaces being the same - that is, in this case, ‘polar’ surfaces - note I rotated the sphere so that the pole corresponds to the pole of the base surface before splitting a piece out - this was not necessary for the Flow to work right but it puts the curves in the right place in 3d so you can see how they correspond to the inputs. At any rate the takeaway is that mapping takes place from the UV arrangement of one surface to the UV of the other - results are more predictable when these match.


It took me a while to figure it out from your file but I did get it in the end. Thanks for that explanation. This has been such a tremendous help.

I’ve been using FlowAlongSrf a lot lately, and found history really useful. You can have history enabled for every step, so for example you can change the input curves for the surfaces, and the scale and relative position of all the objects, and watch the effect on the result to fine-tune position and deformation etc.