Rhino 8 feature: Surface Fillets

thanks @Lasse_Paulsen for your request. I logged RH-75924 FilletSrf: allow adjustment of sliders in G2 mode

1 Like

Surface Fillets enhancements in Rhino 8

It does not support multiple surfaces :smiley:


To be useful, this feature has to support multiple surfaces. You simply have to be able to blend over multiple tangent surfaces. In the car example, you’d have a back end on it, and that fender flair would just stop, then you’d fiddle dink in some other rear surface, and it would be all gapped out.

I can go into fusion 360 and blow a fillet in over any number of surfaces for a quick look on almost anything. Rhino’s weak point for years has been fillets, and surface blends. It starts with the basics of not being able to lock in tangencies with curves, and not being able to use blend curves without a bunch of helper curves to get things going in the right direction. In Alias you can lock surface to another surface with a level of tangency or curvature continuity, or you can put a blend curve in that follows the contour of one or both surfaces. It doesn’t seem like the basics are there with Rhino, I’ve tried to like it for over ten years, but can’t use it for anything serious. It has some weird quirky things that only Rhino does, and I use it for that…but as far as a serious surfacing tool…it seems close, but it’s really very far away. I should be able to easily throw in some fillets on a solid model in Rhino, but that doesn’t even work most of the time. Get serious about fillets and some of these basic features and I’m in.


This is a really minor observation, but I think that it would add to the completeness of this tool to be able to auto-complete to implied edges. Take the case below:

This is where a wheel arch rim meets bodywork. However, even though both finish on a flat Y-axis, because of the curvature of the rim edge, the G2 blend then will only complete without the ability to trim.

I think one should be able to have this command auto-extend to a boundary and trim/split itself. You can see a little bit where I have simply duplicated the edge, and then given it a minor extension, to make the surface trim to the blend, and then I simply bodge it a bit (not ideal), by extendsrf directly on the new fillet blend.

Great tool though! I’d like the multiple surfaaces option, but for what I have done, the fact it retains knowledge often means I don’t worry about the next blend, but you MUST do the blends together, before Rhino forgets the previous setting.

1 Like

Yeah I’m really curious where this is in their “pile”, and I’m curious what the person in charge might have for plans on fixing it, or whether NURBS is even capable. If it’s only a matter of code, then where’s the employee that’s suppose to write the code :sweat_smile:


There are years and years worth of chatter about fillets. What does McNeel do internally to deal with users’ needs in terms of fillets and translating them into functional and useful tools with relevant options? Is there is a workstream where the developers have real-world feedback from users to fine-tune how the filleting and blend tools could be easier to use, and execute the geometry more reliably? Rhino filleting is always either unreliable, or inefficient.

At the very least as mentioned above, my top 3 filleting wishes:

  1. Run a series of fillets over multiple tangent continuous surfaces, in one go, with native Rhino tools. The updated Fillet Surface tool seems like a step in the right direction, although it seems to lack control. The interactive radius slider is great. The G2 option doesn’t offer any shape control. The Deformable option only seems to make a G1 transition…I would think that the degree option set to 5 should give G2 transitions??

  2. Run solid edge fillets predictably always (or at least more often!) and especially when the surfaces in question are all kink-free and tangent continuous etc.

  3. Use Adjustable Blend Surface with an option to start the blend cut back from a surface edge- a bit like Blend Crv> Option: Blend Start>CurveEnd or PickPoint. Have a relevant set of options, including continuity, interactive shape adjustment etc. More control over the handles; like Solid Edge Fillet, have the ability to copy/link handles; the amount of time that I’ve wanted to just adjust multiple handles together,…, and I think there could also be a symmetry auto-detect, so any extra blend profiles will mirror automatically along the centreline…

My 2 pence worth.!

check out jim s script from this topic

1 Like

That’s great @Tom_P I’ve seen that from Jim.

My question would be, if Jim can script this, why isn’t it a standard Rhino feature? And will it be?

I imagine only a tiny percentage of users want to surface one pair of surfaces, but many more who have multiple surfaces to run a continuous fillet over.


it’s been added as a feature request already-



It’s quite difficult to predict the approximate value needed to create the surface fillet shown in this video. Your demo used a value of 450 which was previously used to test the tool before recording the video, this is why it looked so easy to execute the command. However, doing so on a brand new model and no value used before leaves the user with trying to guess the proper amount until the tool starts to work properly. In this case, it would be nice if Rhino could use the initial picking point on the target surface as a reference for the value used by the tool by default (in case that no other value was previously used with the same command).


Hi Bobi,

During development of this new interface, the same suggestion was made, but according to our devs this won’t give any valuable nor reliable information about a possible radius.

1 Like

In my opinion, that option should be included in the tool (as a Command line option maybe?), because trying to guess the approximate value takes time and sometimes more than 3-5 attempts until a proper number could be found.

4 months ago, in another thread, I also made some suggestions for improvement of the newly implemented menu windows consisting the “Radius”, “Tangent” and “Bulge” sliders. I will post these here, as well. I find the current implementation of the sliders very limiting compared to the suggestions you see in this image. The inability to click on the slider and the min and max numbers to type a numerical value there is a huge disadvantage. Rhino’s interface must be more direct.

I also have an example that clearly shows some limitations of the new FilletSrfCrv tool. It’s unable to build a surface up to the right side edge of the target surface, reaching only the top of the circle.

FilletSrfCrv needs further development.3dm (71.5 KB)


Use CrvSeam to move the seam from the top of the surface. Result of FilletSrfCrv is then:

Several Rhino commands consider the seam point on a closed curve as the end of the curve.

This particular command must not be sensitive the the curve seam of a closed curve, so it’s something to be fixed in a future update. :slight_smile: It’s not funny that so many tools of Rhino require preliminary extra work on the input geometry to make it eligible and prevent failing. There is a lot of inconsistency between commands.

Example 1: Inability of the “Sweep 2 rails” tool to limit the surface creation to where the input curves meet together. Instead, it will create some ugly surface that’s against the design intent. There must be an option whether to use the full length or not. “Network surface”, on the other hand, could limit the surface creation to where the input curves meet together.

Example 2: “Loft” will not offer a command line option to use partial edge or curve in case that one or more input edges or curves is/are closed, while the other(s) is/are not. Instead, Rhino returns the following warning message:

Unable to loft - select either open or closed curves, but not both.

However, “Blend surface” is smart enough to detect such cases and offers an option to manually pick the desired region:

Blending between open and closed edge chains. Pick start point on the closed edge.

1 Like

again, it’s not that we didn’t want to add it, but no reliable solution was found to make that happen.

You can set the values of all sliders by double-clicking the handle.

1 Like

Minimum and maximum values can’t be set by double-clicking. It would be much more convenient to be able to do so. if you play with that idea you will quickly realize that. For example, I would like to have min value of 0 and max value of 400, but I can’t choose that with the current sliders. After spending 30 seconds I was able to make these between 0 and 100, but once I increased the maximum value, the minimum value changed from 0 to some random number, making it impossible to move the slider near to 0. This is why clickable min and max values is a good idea that gives far more freedom to the user and saves a lot of time and mouse clicks.

By the way, here is an option to ignore the curve/surface seams of closed curves/surfaces:


I agree the current ranges are limited:
RH-79056 FilletSrf commands - set custom range


If we listened to Bobi’s suggestions, as an expert, we would have a state of the art Rhino. Developers execute, but they should listen to those who model professionally and routinely encounter gaps, bugs and various problems.
Several times he has suggested the way to create better, more convincing blend and match srf: still nothing!

Take it as an incentive to do better.


Too bad that I’m not a programmer and only can make suggestions. I know that it’s difficult to program tools for NURBS modeling, but sometimes it’s about offering various simple options that totally change the speed and effectiveness of using certain tools.


I would like to propose the following:

  1. Change the order of the Blend types. It would be more intuitive to have them in the following order: Arc, G2 Blend, Deformable.

  1. Also, blend curves and surfaces in Rhino are typically G2, so it could be simply named “Blend” instead of “G2 Blend” (unless you plan to expand the tool to support “G3 Blend” and “G4 Blend” in the future).

  1. Add a new tickbox called “Snappy”, so that when it’s turned on it will make the moving of the “Tangent” and “Bulge” sliders in steps and full numbers instead of smooth infinite ones. Example: The steps could be every 0,1, such like jumping from 0 directly to 0,1 to 0,2 to 0,3 etc.

  1. The tool must be more smart and automatically place markers on the top slider to tell the user where are the minimum and maximum values to successfully create the surface fillet. Those markers could be thin vertical lines, like those shown in the picture below. That way, the user will have a much better idea about the practical range of the slider and where the limits to build the surface are located. The current behaviour adding a warning message saying “(Failed at the current radius.)”, which means that Rhino actually could detect the minimum and maximum range. It simply must be made more user-friendly by adding those visual markers on the slider itself.

  1. Related to the above, add a new button called “Auto range”, which means that the top slider will automatically read the minimum and maximum range for the radius based on what Rhino detects as its limits. With other words, if Rhino detects that the radius between the two selected surfaces could be anything between 5 and 30 millimeters, the range of the slider must be automatically set from 5 to 30, with the slider itself starting from the middle of that value, which is 12,5 mm.
    That will also make the creation of fillet surfaces that touch the end lint of the input geometry far more easier than now. Check this video to see how I was forced to spend 2 minutes just to create a surface fillet which is still not touching the end of the vertical surface, because it takes a lot of time to try different values manually to see if some of them will end up being close enough to the desired edge. Imagine if Rhino had an “Auto range” button to automatically detect the minimum and maximum range to build a filet surface without failure. It would take just half a second to drag the slider to the very left and build a super accurate surface that matches the end of the vertical surface.

  1. On top of that, there must be an option (a button called “Target” to activate one-click snap) to snap to a target point, split edge, curve or another object on the surface. It should work the same way as the “ThoughPoint” option while making an offset curve with the Offset tool. Check my image below: