How to create a curved surface on a rounded square?

Please see the image below.
I want to create a surface along the gentle curve of the green line along the red line. Is there a good way?

Please tell me if there is an easy way to create a surface as directed by a free curve.

The method I know is how to create it with a patch command.

SufaceCu.3dm (601.9 KB)

If your main objective is high accuracy, make a polysurface. If your main objective is very smooth, rounded shape, make a SubD surface. You are using Rhino 6, so you lack the SubD tools, and your only practicable option is the polysurface.

In my opinion, the best way to make smooth polysurface is making more curves on top of the box. (You made two intersecting curves.) I would add at least 4 more curves in the long direction and I would use these curves in Loft command. Loft command with Loose option will make very smooth surface from these curves. On the other hand, the Loose option may produce a surface that does not fit perfectly with the box.

The essence of what I am saying is that Rhino is not smart enough to know what you want, so you have to guide it with the curves.

Hello - ExtractSrf the top face. DupBorder,ChangeDegree to 2 by 2.
Select the border curve plus your shape curves and start Patch
In the dialog, click ‘Select starting surface’ and select your degree 2 surface. Set Starting surface pull to zero and check ‘Preserve edges’

SufaceCu_PG.3dm (420.3 KB)


1 Like

I made the following box using Patch (red surface) and BlendSrf (green surface). I spent a few minutes adjusting control points of the top (red) surface in ghosted mode. I tried to follow Pascal’s advice, but I could not cope with the vertical polysurface. Extruding existing planar curve produced an extrusion. The Patch command treats the extrusion as a polysurface, so the extrusion is useless. I solved this problem by replacing the existing 8-span curve with single-span curve. (I placed this curve in ‘single span’ layer.) I extruded this single-span curve into (blue) surface (not extrusion). The last step was making the green surface with BlendSrf command.

It was huge waste of time - I would have made better box using SubDs in 1/4 of the time.

round box.3dm (295.1 KB)

Mr Andrew Mr Pascal
Thank you for answering the question.

What I want to do is create a smooth surface with free curves and high precision.
For example, when designing a product, I want to create the shape as I think.
SubD and Pacth commands have an image of poor accuracy.
So I think it’s better to create it based on a free curve.

I tried many times based on their advice.
However, since the end face of the free curved surface of the green line is also curved, I think that it cannot be matched with the red line in the first place.
SufaceCu2.3dm (123.8 KB)

There is a method I found while taking on the challenge.
The easiest way I can think of is below.

(1) Use the network surface command to select the red curve and select the green curve to create the surface.
(2) Trim the corners of the created surface with a curve to make a round square.

Please let me know if there is a better way.
Thank you for your answers.

You did not explain what was wrong with the SufaceCu.3dm model. Too many control points? Not accurate enough? Not smooth enough? Wrong shape? Difficult to make (rounded) fillets?

Fundamental geometry: The edge polycurve in the file has straight line segments and arcs at the corners. The curvature is discontinuous between the line segments and the arcs. As a result any surface (other than a planar surface) which exactly matches the edge polycurve will have curvature discontinuities. That is how the basic geometry works for any type of surface

A surface with continuous curvature cannot exactly match the edge polycurve. Patch creates surfaces with continuous curvature unless a surface with curvature discontinuities (multi-knots) is used as the starting surface.


There is nothing wrong with this data itself.
SufaceCu.3dm is sample data to ask how to create a curved surface on a round square.

Ideally, I wanted to create a curved surface with round corners as well.
But I found that I couldn’t.

↓ SufaceCu2.3dm(123.8 KB)

you can do that using sweep2, split the boundary curve in half, extrude the long profile curve as a basis for sweep, then sweep2 taking the split boundary curve and the middle surface edge as rails and using the here shown orange curve as a profile with option tangency, mirror the surface and the resulting surface once more to create 4 parts and join.

SufaceCu.3dm (3.7 MB)

Here are two solutions. Both rely on making a smooth curve for the outline first and then later matching to the red outline in your file. One way is with railrevolve and the other with edgesrf (the latter looks better to me in this case.) But honestly, encephalon’s version is better and easier.

rounded thing.3dm (567.2 KB)

have a look at this tutorial form Kerry Kingston; it’s for alias but the concepts apply also to rhino

1 Like

This version uses extrude and makes a really nice surface.

rounded thing 2.3dm (265.9 KB)

SufaceCu_tomp.3dm (498.0 KB)

nice to see so many solutions for a quite simple surface.
i would recommend the following:

copy the 2 curves each twice to the outside / edge.
now build the initial Surface with the 4 new curves
_changeDegree 3,3
Now you have a surface with 4x4 points
pick the outer ring of control-points (CVs) (leaving 2x2 inner points unselected)
_setPt (Z only, world)
to the z-height of the edge.
this surface is already quite nice.
(the result similar to @pascal s patch approach )

now insert Knots 2 in U, 2 in V. at the positions where the edge / bending starts
use a projected line with history (cyan in my file, not in the screenshot)
move the outer / corner 4 CVs in Z and minimal scaling in y (Gumball) until the projected line gives a nice shape. (updated by history)

build a similar curve with _line _blendCrv _mirror
_extrudeCrv for the outer shell
_pipe for _trim
_blendSrf for the edge
of course a lot of different solutions for this last steps…

this approach has a similar intention to the Alias Tutorial @Konrad linked above.

kind regards -tom

1 Like

For the curves that are in your file (SufaceCu2.3dm) the best way to make that surface for both accuracy and smoothness is to use the revolve command. You can revolve either arc around the centerline of the other arc (every arc has a centerline).

If you want the most accurate and smooth it is guaranteed that networksrf or patch commands will do much worse than revolve command on both counts to produce this surface. And subD won’t even come close to meeting your criteria.

If you want the Apply effect do it the way Apple actually does it…or did it, I don’t know if they still use that shape on anything. Brute-force point-pushing. Which of course as you get better with Rhino becomes how to you almost everything.

Hello - do you care of the edges are level? If the edges are level, some version of the method I suggested will have to do - point-pulled or automatic - that is, the surface will tend to flatten at the corners.

if you want to follow the two interior curves as exactly as possible and the edges are allowed to deviate from level, then a revolve of one arc on the other is the way to go.



1 Like

On the back of our 10 year old IMac, the corners are not actually planar to the four sides. They deviate towards the front, so there is no inflection or flattening of the crowned surface in the corners. It is actually quite obvious if you’re the type (like me) that goes looking closely at this stuff :smiley:


Oh the “fun” of the difference between as designed in theory and as built in reality because of manufacturing restrictions (whether technical or cost, or both). :grinning:

I don’t see why the manufactured object is anything other than what the designers intended. I have modelled corners the same way in the past as it was decided that having a nicely flowing crowned surface was more important than having the edges coplanar.

This is more a product of geometry restrictions than anything else.

In this case yes, but I was more speaking in general. Over the years I’ve seen some really nice designs that were either not so easy to manufacture at the time or if it could be done it would be too expensive to be commercially viable for the intended target market.