NURBS surface (2D) from 4 curves


First of all, I am new to the software Rhino. What I am trying to do is to create NURBS surface from 4 curves (Each opposite side has the same curve parametrization- same number of control points and degree).

When I use “sweep rails”, the surface is generated with NURBS elements intersecting the boundaries (for my purposes, the lines should not intersect). This seems like a simple problem but I could not figure out a way to form a NURBS surface with no lines intersecting any lines.

Attached are the four curves and the generated NURBS surface with intersecting lines. res1.pdf (15.9 KB)

Later on, I am interested in the analysis of the surface using isogeometric analysis.

I appreciate any help!

Use EdgeSrf for this - that will generate a surface that uses the input curves’ structure.


Dear Pascal,

Thank you for the quick answer! I tried it with EdgeSrf- I got a similar response. Please see the attached!

edgesurf.pdf (14.1 KB)

sample.3dm (26.9 KB)

Oh, I see what you mean by crossing - that is hard - you’ll need to move surface points around, I would say… even then, as a single surface that pays attention to the input curves… tough one. You can PlanarSrf with these but the result will be a trimmed plane.


Thanks for your comments! I try to find different solutions. (by the way, PlanarSrf is not what I need)

Ooh yes, tricky indeed.

Here’s my go at it. Be careful though, it’s a delicate, ugly little surface…

sample.3dm (172.8 KB)

If you Join the two curved curves, and the two straight ones, and set the


command to


Then Loft the two curves, you may, or may not, get the thing you are looking for…

sample (2)_PG.3dm (59.6 KB)


What’s wrong with Patch or Network Curves?

Hi Denis - as I understand the orginal post, the user would like the curve structure to be reflected in the resulting surface. None of Patch, Network and PlanarSrf care about the input curve structure


This won’t do it?

I don’t think yours or mine cuts it, actually - I believe he needs to connect opposite curves, like EdgeSrf does, to get the four sides of the surface.


Thank you all. Great suggestions! I have been trying to tweak the methods you proposed to get what I wanted.
As Pascal stated, I would like to connect opposite curves to get the four sides of the surface.

The geometry I am working on has more irregular boundaries. This was a toy example. It seems it is not straightforward to generate such NURBS meshes over the surface for irregular geometries.

(PS. Please let me know if you are interested in the actual irregular geometry.)

Starting with your own 3dm file.

The surface on the right was manually control point manipulated.
The surface on the left was created with a Loft between left and right curves, then Matchsrf to the top right curve. Some more manual control point editing might improve the result.

Think of the paths you want the isocurves to take.

Nick, I tried something similar, but if you shade the surface I think you’ll see you’ve lost the sharp corner on the right hand side? Could be wrong though.

I don’t think the maths allows for this kind of ‘intrusion’ into one side of an untrimmed surface. The only successful solutions I see are to split this up into two surfaces or split the curve on the left hand side into two.

Hello everyone,

I am really surprised how people are trying to help on this forum! Thank you!

It seems there is not a general method that is applicable to all geometries. Hence, I am attaching the geometry here.
geom1.3dm (36.9 KB)

To the reply of mcvltd, I am not interested in the exact geometry. A good enough approximation is OK.

Why do you need something other than a planar surface? Are you planning some sort of additional manipulation of the surface? It might be helpful to know what your next step in the modeling is.

[quote=“brkn4, post:1, topic:29940”]
Later on, I am interested in the analysis of the surface using isogeometric analysis.
[/quote] A quick search and review of “isogeometric analysis” shows that it is based on finite element numerical methods and starting with NURBS surfaces from CAD software such as Rhino.

Creating a parameteric NURBS surface which fit arbitrary boundaries appears to be equivalent to creating a 2D conforming structured grid/mesh with certain continuity conditions. Methods to create such grids/meshes were studied extensively several decades ago because they were needed for structured finite difference and finite volume CFD solvers. One reference for such methods is** Numerical Grid Generation Foundations and Applications** by Joe E. Thompson, Z.U.A. Warsi and C. Wayne Mastin which is available online for free at

How’s this one?

I used your original surface, made is a little smaller by moving the points,

then used matchsrf command with multiple matches to match each edge to the
curve you had in the beginning(extruded the edges of the curve).

Seems to work quite well if you avoid concave shapes in the beginning.
Concave caused the matchsrf to do a twisting of the surface.

sample_matchsrf.3dm (88.4 KB)

Below looks pretty bad, but a the tree…

geom1_matchsrf_multi…3dm (492.6 KB)

Toshiaki, nearly there but…when shaded the surface still crosses over…

You can get it sharper by adding some weight to the control points but it still crosses when zoomed in. It all depends upon what amount of crossing-over is tolerable I guess.

This might be an issue with the render mesh rather than the underlying nurbs topology.