Laplacian smooth on control points

All these tips are super useful, thank you all very much for the contribution to this discussion!

I already used some of them, however none of them can fix the bumpiness of the surface all the time, it depends on how the control points are at the initial configuration, and how is the conformation of the surface that you want to preserve. The main problem is that any type of smooth does not consider the curvature of the surface around the smothened area, but only the coordinates of adjacent vertices.

From a mesh editing point of view in some software there is a command called Edge flow which might be what I actually need most of the times.


you can download the free plugin for Blender here, if you are interested.


Having something like this into rhino to control CPs would be gamechanging.
1 Like

Actually the smoothing does use the curvsture, just not explicitly. The curvature at a point on a NURBS surface is directly related to the adjacent control points. Algorthms such as in the Rhino Smooth command do the most smoothing where the curvature is greatest.

True but it’s only a consequence of the coordinates of the points, it does not calculate the curvature and tries to match it, for example look at this example, once smoothened the points goes too down, if it would try to correct the curvature as in the edge flow plugin for blender the points should match the curvature

What curvature would smoothing try to match?

For the situation show you could use the smoothing function in MoveUVN.

Maybe this case is more clear, the edge flow command would match the U loops of vertices with the drawn curve, the smooth in the MoveUVN flatten them, because it average the inner vertices with the coordinates of the adjacent vertices it does not try to match the curvature of the surface around

Are you looking for the _SelControlPointRegion command as well?
It really seems to me that you thread and compare a NurbsSurface to a Mesh. Besides some rare cases (special lofts, fillets etc), almost any surface having more than 10 controlpoints in one direction is definitly a bad surface. In your screenshots 90 % of your cps are redundant to represent this shape.

1 Like

All these screenshots are mere examples, I added a lot of points to emphasize the effect, but it would be the same with a lower amount of points. Also in meshes, it’s better to have a low amount of points but in some cases the edge flow approach is useful to find in a glance the correct position of points according to adjacent ones.
About the thing that I compare NURBS surfaces to meshes is something natural in my opinion, because when you work with meshes and you apply a subdivision modifier, they behave similarly to NURBS, in fact in rhino 7 they implemented the Subdivision surface option that it’s actually the application of an approach used on meshes to NURBS surfaces.

No, this is what I’m saying! If you compose a complex shape with a bunch of much simpler surfaces, instead of one big heavy surface patch, you would be able to control the shape and the smoothness of it.
But when having multiple surfaces, matched together under higher continuity, a global smoothing wouldn’t work anymore. It would destroy the continuity matching. Thats why there is actually no real global shape smoothing tool for NURBS.

There are ways to smoothing a single surface, but I personally never was in need for it.
A wrong distribution of controlpoints is not the cause of the problem, it is the result. If you smooth the distribution, you may not solve the issue and therefore you just move the error to another place of your model.

You can compare sub-division surfaces with sub-division meshes. This is true. However, the “modelling” of traditional NURBS surfaces is a completly different thing.
I won’t comment on makers fairytale of automated Mesh to NURBS conversion… :slight_smile:

Tom, are you claiming that a “bunch of simpler surfaces” are better than a multispan surface of the same degree with the same number of spans as the number of simpler surfaces?

A multispan NURBS surface retains the inherent continuity between spans automaticially.

1 Like

I’m not talking about single vs multispan. I’m talking about placing multiple surfaces in a way that you reflect the curvature flow. Are you seriously modelling a shape with a single surface with hundrets of cps? Come on, this is dumb.

But it does not guarantee smoothness. It guarantes continuity. What helps to have G5 but your shape looks like a garbage. And sorry to say this, but @riccardo.foschi2 shape looks exactly like this. Smoothing doesn’t help here.
I’m out…

Just look at the curvature comb of a multispan curve or multisopan surface with many cv’s and you know that this statement is totally misleading at least in its significance for surface modeling.