Filleting a pipe on a 90º angle on a ring

Hi Rhinos,

For a student of mine (I temporarily teach at an art academy) I am looking for a solution to fillet a pipe to a ring.
Screenshot says everything. I have troubles with the faces failing. I’ve gotten pretty far by using this guide:

Here is the file:
question to ask.3dm (3.0 MB)

What I want to know is how I can learn to fix these things myself as I have run into these issues before myself and never quite learned how to fix this. The youtube instructions have helped out a lot in my understanding of how to do this, but since my situation is a little different, I haven’t managed to fix it using that technique.

I hope there is someone willing to take the time to explain it. This monday I will see the students again and hope I have mastered fixing these kind of issues.

Thanks in advance.

As a non-pro, I would solve this in the following way:
Pic1; explode srf and split srf with isocurves.
Pic2; blend srf. Maybe you have to split-edge first.Same for the other side.
Pic3; because of the seam in the ring dupedge the lower triangel side and join those 2 lines.
Then use patch to close those triangle.
Pic4; I used this mesh-settings for zebra


I hope this helps.

1 Like

Thanks a lot, I am about to head out the door, but when I get back I’ll try to do it this way. It seems very doable. Even though the screenshots are in German, I think I can manage this :slight_smile:

The way you look at the object in the last screenshot is new to me. I am working on a mac, so I should check out if I can use zebra.

Just checked, yep, zebra is there :slight_smile: Looks interesting as a tool to help determine errors!

The solutions provided in both the video, and as @JayR shows, represents classic surface modeling for when perfect continuity is the goal or necessity. (jewelry?) These are key surfacing skills, as such is applicable elsewhere too.

However, when joining two tubes of equal diameter into a T, there is fast ‘cheat’ that will not necessarily result in perfectly beautiful continuity, but will get you a valid solid polysurface in a hurry, and depending on the application, may be all that is required. For example: when tubing is fish-mouthed and welded during the production of many products, the method will result in a model (for renderings) that typically will far exceed the appearance of any production stream.

T intersecting to the centerline

_FilletEdge of intersecting tube approx 2/3 of wall (in your example)



Note: you may delete the fillet and substitute a blend surface, etc…

My take on this would be to BlendSrf from a double cut with circles, like so:

The bigger circle to cut the horizontal pipe, and the smaller pipe to cut the vertical pipe.

  1. Draw the bigger circle.
  2. Draw a 45 degree line from the uppermost quad on top of the horizontal pipe to get the intersection point for the upper circle on the vertical pipe (see 45º line).
  3. Cut then draw the smaller circle, then cut,
  4. then BlendCrv.


Not perfect, but when good enough is good enough.

// Rolf


Edit: 43º or less, instead of 45º as first suggested

Well, perfect relates to the use case, but I tried to find a relation between all measurements that would give a Curvature continous blend without any hassle. I found that the following proportions gives good results:

Fig: Big circle radius = Pipe Radius * 1.75, and place the lower Osnap Quad exatly in the middle of the crossing pipes:

Edit: Use ~43º or less instead (see posts far below)

The draw the 45º 45º line from the intersection point of the pipe and the big circle. Then the smaller circle get a center point at the intersection point of the vertical pipe and the 45º 45º line, and extend its radius down to the point at the intersection between the 45º 45º line and the pipe contour. Then Trim the pipes, MergeAllEdges, and move seams to the 45º 45º intersections of both pipes, Blend with Curvature continuity on both pipes, and you’re done.

// Rolf


Hi Rolf,

A useful little tutorial. I followed your instructions, but I seem to get a bit of bulging inwards that I don’t see in your pictures. I know you said it was not perfect, but is the magnificent shine of your rendering hiding it or is there a real difference?


No, it’s not hidden,

… but now that I tried it again it seems like I reduced curvature to Tangency for one of the edges, then the sides were straightened out significantly:

// Rolf

Right, I tested it again. Only a slight improvement, but both edges on tangency seems to work best. Thanks.


Another way to straighten out the surface is to0 add “shapes” at the two places were it bends inward, and keep Curvature on both edges. Still not perfect, but better,

// Rolf

Tried that now, and yes, that looks best for the eye. :+1:

Edit: I tried to lower the upper circle with 5 mm, and then again Curvature on both edges, and shape on both sides, an got almost perfect result (whatever perfect means):

There seems to be too much tension at the lower edge when using 45º between circles. So correcting the angle to give -5mm for the upper circle in this formula (whatever that angle is) and off you go. :slight_smile:

Edit3: I Checked the angle: ~43º gives the above result. :upside_down_face:
// Rolf

Not sure what you mean by “shapes”?


In the BlendSrf dialog, press Add Shapes and place two of them at the place were the surface tends to bend inwards. That will straigthten out the surface. Here:

BTW: I’m not a surface modeller. I spend 99% time on programming Grasshopper. But I find it interesting to try to solve tricky surface problems with the most redneckish attempts I can come up with.

Edit: I got good result even using G3 on the upper edge (1) after lowering the upper circle center to 43º instead of 45º (here using Zebra “Thinner” and mesh setting Max distance, edge to surface 0.02)

Edit2: And at 40º (up from horizontal) with a new cut of the upper pipe, I get a fairly “perfect” blend using G3 on both edges and two “shapes” placed at the sides, as described earlier:

// Rolf

1 Like

Thanks Rolf, I think my last result is good enough for me. I will not use it often, but it is always good to learn a new skill. :+1: I am the opposite of you, I do surface modeling mostly, and I am at the very, very beginning of understanding Grasshopper and using it to add some functional animation to my models.


Would it matter that I am using a curved lower-pipe as you can see in the original file that I uploaded (whereas you use a straight one)? I honestly really like the way your example looks and I think the student is helped most with this look.

By the way, I got it to work, I shelled the pipe but the top of the pipe now looks weirdly segmented… See screenshot. It’s a very nice way of dealing with this fillet issue I must say.

(I don’t know how you make your nice renderings in the metallic style)

The different “renderings” comes from the command “EMap” which is a tool for examining the looks of surfaces.

Most important for curvature analysis is of course how it looks, although there are also other techy tools for checking surface quality and curvature. Anyway, just type in the command EMap and then select the surfaces you want to shine:

I also typed Zebra to get the stripes which useful for disclosing any abrupt distruptions in the surface.

In one of the pictures above I also used regular Metal Chrome and an Envorinment Map as the ligtht source, which gives more “life” to a rendering than only lights. All vanilla stuff in Rhino5 and 6.

// Rolf

You can adjust your render mesh settings under Document Properties > Mesh.