What criteria determines where a variable blend surface ends?

I thought they extended the full width of each surface that you blend since that’s mostly what I’ve gotten so far (which is bad, btw, so I’m glad they don’t always do that), but why did the bottom surface stop where it did in my example here:


Also, unlike the BlendSrf, you can’t manually skew these edges since the handles don’t respond to ALT (and you can’t manually set the tension, for that matter), so what determines the angle of the edges? It’s not G2 along the surface edge…

variable-blend.3dm (60.8 KB)

Right now, I’m having a difficult time predicting the results of the various tools in Rhino (compounded by the fact that many of them have similar names and functions, yet different controls and settings).

EDIT: There’s no way I’ve missed to make BlendSrf actually blend two surfaces instead of two edges, like VariableBlendSrf, is there?

1 Like

Second question:

Turns out the resulting blend surface was trimmed… and when untrimmed it turned out to be this monstrosity…

Why on earth did the command do this? Is this normal?

Please don’t ask rhetorical questions all the time. You can answer them all the same. Rhino is not capable of achiving the same surface quality (at least in the same quick workflow) as Alias or Icem can do. Anybody who knows more then one Direct-Modelling-CAD platform knows this. I’m pretty sure McNeel is also aware of this.
But it does what its promising, it creates a transitional surface in between two others with higher continuity.

This one is honestly not rhetorical. I just want to know how it attempts to build its surfaces, so I can better determine when to use which tool.

VariableBlendSrf is the only tool I’ve found so far that projects a matched surface from something other than an edge, but it’s the one with the most unpredictable results in the short time I’ve used it.

1 Like

There is a very easy way to build a perfect G2 blend between those surfaces while matching the surface isocurves. It keeps the control points at minimum and also lets you edit the shape afterwards if History is turned on. In most cases the side edges will adopt the same isocurve direction as the input surfaces. Another advantage of this method is that you don’t necessarily need input surfaces that intersect together (maybe “Blend surface” will implement this kind of blending directly to a surface in Rhino 7?). Here is a quick tutorial:

6,5 MB video:
Loft plus Match surface.rar (6.1 MB)

Loft plus Match surface.3dm (4.4 MB)

You can also freely match the surface to the input surface by entirely skipping the curves, but in this case the end result is less predictable. However, you can still edit the control points of the matched surface and if History is enabled, that will automatically match the surface again to the nearest projected area.


Yes, that’s what I ended up doing after to get a clean surface. But while designing, the VariableBlendSrf is super nice because it has a live preview (as you mentioned in another thread, which is what made me try it in the first place). Without it, it wouldn’t know where to draw those two curves.

I was just a bit sad that the results from VariableBlendSrf, while immediate in the design phase, requires complete re-doing in a secondary surfacing phase. But I guess that’s what that is. A design tool that you need to replace the result of?

I think that the “Blend edge” command does that kind of shape, because it’s constrained to keep mathematically accurate equal distance from the edge, as well as G2 blend with equal spacing between control point rows. The loft surface, on the other hand, is completely freeform and you can build it between any curves and/or surface edges in the 3d space.

There was a problem with top surface - bad trims on at least left side and too many control points. I fixed these problems with Rebuild command. The fixed 3dm file and screenshot of the VariableBlendSrf command are below.

loft plus match surface - fixed.3dm (3.0 MB)

I do not know this. I have not used Alias or ICEM, but I have seen Alias users struggling as much as Rhino users. Alias users complain about frequent crashes. If ICEM is so good, why nobody uses ICEM. High price is not the reason - ICEM Surf costs $2,300.

Thanks, but I didn’t need another fix, I can do that myself.

I just wanted to know why Rhino behaved the way it did the first time around. But perhaps a pattern will emerge with more use…

I swear I didn’t mention Alias/ICEM in this thread, but I guess it follows me around! :smiley:

If you ever get to work at a car company doing exterior surfacing, you’ll see that everyone uses ICEM. :wink:

But honestly, this thread is about basic stuff. A tool needs to be predictable in order to be usable.

1 Like

I’ve coded such tools by myself. I think it is really hard to predict behaviour since these algorithms are really more complex as they look like. I don’t like the implementation by myself. But it works.

The reason only a minority of user use specialised CAD software is that they do very specialised things. I count car interieur and exterieur as a specialised branch. I guess the people doing such work are below the 1000 people count world wide.
Rhino does many things much better then Alias and Icem. But when it comes to low cp count surfacing or call it class A or whatever, there is a huge gap between their capebilities. Of course you can propose to implement them, but a much greater user base is looking for other features such as Sub-D or better Scripting capabilites. I mean the VSR Plugin had many of these features implemented, but they “had to sell” it to Autodesk because they haven’t sold enough licenses.

1 Like

I can’t believe I’m writing this, but it should be noted that Apple uses Alias as well, so good product design also benefits from accurate tools. :wink:

But ok, the conclusion seems to be that VariableBlendSrf is a sketching tool, and you then rebuild that using Loft and MatchSrf.

Basically there are multiple workarounds, but they are workarounds only. There are also other strategies, using Trim with split at isocurve and shrink (you’ll get a untrimmed surface then), which can be used for blending. But you loose the theory, you could duplicate and use blend. So at least 6-8 commands are needed to do something which works worse then a 1 or 2 Alias/Icem command.

1 Like

Garbage in, garbage out. If your NURBS are garbage, the output of the VariableBlendSrf command is also a garbage.

This is true, but still that this doesn’t change the fact that you need so many workarounds in Rhino to achieve the desired surface layout. Especially if we talk about Single-Span/Bezier representations. If you believe me or not, there is a strong deficit in Rhino when it comes to blending/matching/manipulating surfaces. Of course you can find workarounds for many issues. But workarounds are basically making your life become very hard on a daily base.

But sure, you said you don’t know the others so you are not missing these feature since you don’t know whats possible. Without a comparison there is no way to tell if something is well made or not.


Check 1:13 here, the awesome Blending option (such thing was implemented many years ago in 3DS Max via a plugin called PowerNURBS: https://www.npowersoftware.com/NewPowerNURBS.html ). Not only Alias’ equivalent of Match surface matches the edge up to G3, it also allows a smooth blending between the modified edge (and corresponding up to 3 rows of control points) and the remaining portion of the surface, while keeping the 3 other border edges at position, tangency or cuvature. This “beyond G2” influence is extremely useful and guarantees a better flow and distribution of the control points across the entire surface.

Also, check the following video that shows the Align tool and the way it vastly reduced the control point count while also increases the quality of the surfaces, when it’s combined with an approximation re-trim of a surface:

And here at 8:51:

Alias also have a very important re-trim of existing trimmed edges. It applies the custom approximation to individually selected edges.

A very interesting set of videos for those of us who are in this category:

Beyond the simple demonstrations of the tools of good surfacing is the wide variety of visual devices to provide interactive feedback and the immediate display of issues that could cause undesired results. It suggests to me that both the users and developers of Alias are in a different class compared to Rhino. Apparently an Alias user gets something for the heavy price. It would be good for Rhino users if McNeel could find a way to incorporate the most important tools into Rhino while holding the price point.


This could legitimately be a reason for not enough users speaking up about problems/limitations with such features. Without a good year or so of browing on discourse, I wouldn’t even have seen the flaws as being such; just that this must be the way things are.

Many years ago VSR Shape for Rhino 5 already showed a wide array of great features that increase the quality and productivity of many Rhino users. No to mention it saves a lot of time. By the way, VSR Shape also had a blend option for the match surface tool (check 1:54 minute of the video).

More about the blending option of Match surface in Alias. Rhino 7 will hugely benefit if it could provide a similar control over the edited surface. At 15:50 it also shows a clever way to add dimensions in the 3d space with no constraints to the current CPlane.

1 Like

Since VSR was developed by former Icem devs, it could also be that McNeel might not know how to implement such features. At least if you like to support modelling with heavy Nurbs, which is contrary to Alias and Icems philosophy of keeping cp counts very low.

But even if they know how to implement all these features, the question remains if its worth. As I said in a previous post, VSR couldn’t sell many licenses. It was not good enough to replace Alias or Icem in the particular industry. And others industries may have different requirements regarding modelling anyway.

1 Like

You can use EdgeContinuity command in Rhino WIP to see how well the adjacent surfaces match when you make new surfaces. This command is useful when you display preview of the new surface and you adjust its shape. The normal preview (in Rhino 6) can utilize Zebra or EMap, but the EdgeContinuity is much more precise. (In my opinion, Zebra is more precise than EMap.)