Embedding curves on surface? - edited with pics

Hi All,

How does one embed curves upon a surface such that when the surface is manipulated via control points, the curves are affected also.

I want to strech and transform a surface through control point manipulation and have a set of curves undergo the same transformation, as though they were written/printed upon the surface.

This is an example of a flat surface with curves:

I want to ende up with a surface like this, with the curves having changed shape in response to the curvature of the surface:

Hi Nathan - one way, depending on the situation, is to use Project, or Pull with History recording on.

ProjectWithHistory.3dm (66.5 KB)


Thanks for the reply Pascal.

When I try this with history, yes the curves stay ‘attached’ to the surface, however they morph such that the geometry of the curves appears the same when viewed from above.

Top View:

Perspective View:

What I am trying to accomplish is this:

From This:


If you don’t need to get those curves extracted at a later stage you could just use an image texture.

How do I ad curves, or for that matter an image, to a surface via texture?

The only file formats I seem able to import are .rtml and .rcolour

If I could even use a bitmap or jpg, this would be a partial result - which is something at least.


Does this help?

Dear Nathan
three possible approaches from my side:


do use trimmed surfaces, where the boarders are your curves - this will result in a set of surfaces - deform the controllpoints of all surfaces. (do not join the surfaces - as this will disable control-point-editing)
check the command _applyCrv, it does not support history, therefor you have to re-apply the curves after deformation
do not deform the surfaces by control points, but use cageEdit for curves and surfaces.

good luck - best Tom

1 Like

Thanks Nathan,

Could you demo how I might accomplish the manuplation of that square surface in your example into the ‘folded’ shape in the photograph above?

Thanks Tom_, but this just seems to deform the curves such that the top view remains the same - a perfect circle. What I am trying to acheive is the transformation demonstated in the photos above.

Can anyone show how to model the transformation of the flat paper/circle into the folded-curved paper/ distorted-circle as shown in the photographs above.

If not can someone at mcneel confirm that maybe Rhino just doesnt support this kind of operation?



I think you should try posting this on grasshopper forum
since it sounds like some deformation/physics involved
(they got some pretty sharp GH members there)

Is this what you want? Paper01.3dm (150.4 KB)

I don’t know of any method in Rhino to start with the square and obtain the folded shape directly.

Method I used:

  1. Create the shape of one of the lobes of the folded shape which has to be part of a cone (developable surface) to unfold without distorting. The initial lobe needs to be wider than the final lobe.
  2. UnrollSrf the initial lobe.
  3. Draw a 45-45-90 triangle on the unrolled lobe to represent one-quarter of the ultimate square.
  4. Draw arcs on the unrolled lobe.
  5. FlowAlongSrf to put the 45-45-90 triangle and the arcs on the initial lobe.
  6. Trim the initial lobe and the arcs with the flowed triangle.
  7. Create a set of construction lines and an arc.
  8. Rotate the trimmed initial lobe into final position.
  9. ArrayPolar to create the other lobs and flowed arcs.
  10. Join
  11. UnrollSrf with Explode=No the folded shape to obtain the flat shape with circles.

Thanks Yelen,

Did you create that video? If so could please you explain your process? Is using that utilizing a mesh relax command?

yep (little heads up: this is just something prob in the right direction as I’m not
an expert in GH :wink:
process: mesh>circle>split the Cir & get close corresponding Pts from relaxed mesh>
redraw new Cir with those Pts

Thanks David,

That is what I was going for but want to be able to manipulate the control points of the conic section and correspondingly the embedded curves. Can’t mange to do this through History… yet

Thanks Yelen that is very helpful.