Why not "Shape Modeling" in native Rhino?

As John says it’s down to the tolerance you’re working with… It’s a royal pain in the arse but you’ll find over time that there aren’t always one click solutions to things even if you start using other software.

Here’s an example of an old model I was working on with T-Splines… It makes lovely organic shapes and fantastic surfaces but the mesh is an approximation.





You learn to love it (and hate it) but it sorts the wheat from the chaff and keeps you in business because you hone your skills and develop a deeper understanding of your work and how to model…


Looking at that model it’s quite dirty in places… I’d probably work with it without fillets until I’m happy with the overall shape then add them later.

There are clearly two distinct solid shapes there - You could have the two separate and offset them (assuming they have one open face) and then boolean them.

It’s work, but it’s a job and the clue is in the title :slight_smile:

I’m the dirty rhino modeler. :sunglasses:

I redid the objects and merged them first before applying any fillets. It would be a fine thing if the Mac version had a t-splines plugin but I’m not sure that will ever materialize.

The mesh aproximation - is the interior surface/thickness that critical, or is this just to illustrate the point?

Thanks again for you effort and help. I’ve come across some good vids on cage editing as well.

Rebuilt all the components with more attention to cleaness.

MN-1.3dm.zip (749.7 KB)

Followed a vid by B.James

Its mostly the same as the simply rhino version, but there’s a difference in how the fillets are split. B. James does it with a straight line trim that keeps the two edges online. Wereas SR uses isocruves to do so.

In that case it seems the iso split edges were more difficult to manage a blend with.

What I’ve now a is last bit where the two final surfaces - created with the curv network tool are showing tiny bulges.

Looking much better! Interesting video. I’ll put that to my collection for mastering “Fillets” :grimacing:

What would happen if you do a MatchSrf (Tangent - Tangent) on this bulge?

Did you also insert an extra curve to guide the NetworkSrf near that “final” end of the fillet? I expect such curve would hamper any potential bulges, no? Edit: OK, I saw you did that.

Edit: I’m trying some adjustments as to get rid of the bulge, but, when I try to DuplicateEdge and then test for continuity and tangency, the two curves and (it follows, the fillet surfaces as well) does not actually meet (see yellow arrow below + red underlined text in the upper left corner):

This may also indicate why the zebra has “spikes” along where the two fillets meet?

I also tried adding a second “cross curve” (BlendCurve from an extra isocurve) closer to the leftmost edge as to lift up the bulge you got, and it looks much better although I got some bulges along the sides instead.

(Ops, saved the screenshot with wrong file format, and now I had deleted that surface… so I can’t show that bulge).

Anyway, for all these reasons I started checking the other edges, and obviously they are not a perfect start for the sweep. I’ll see how far I can get with this without having to redo the initial fillets, but the discontinuity may indicate that the cutting of the initial fillets where not exactly going through the Intersection point of the two fillets. Something to look closer into, I suspect.

// Rolf

Certainly looks a lot cleaner. Once you add a texture you can’t really see the deviations.


OK, I found out why there’s that “spiky” zebra pattern. In the lower fillet (upper in your picture), just below the intersection between the two fillets, there’s a sharp crease, which disturbes the edge. I zoomed in very close and found this :

But as 2DCube already said, with a little texture on top the anomalies are not really visible. But I know, perfect is perfect. :wink:

// Rolf

This is how far I could get (see pictures below). Adn this is how I did it :

  1. I made new fillets from scratch,

  2. I split the fillets the way B. James did (with a regular Line perp. to the lower fillet).

  3. I then Sweeped the whole thing in one operation

  4. But then I made “my” manual tweening curve as in previous posts (that is, not the isocurve from the sweeped surface as in the video)

  5. I then extended that tweened curve (using BlendCurve) into a new “middle curve” towards a line at midpoint on the other end (goal was to get a “controlled average” curvature in all directions). I did this in the hope of getting rid of that sharp “spike” in the Zebra pattern between the two fillets, which irritated me greatly (and it seems that the spiky mid-edge isn’t that spiky anymore).

  6. I then Projected Pulled that extended “middle curve” to the Sweeped surface.

  7. Then I split the Sweeped surface using that middle curve.

  8. I also MatchSrf:ed the fillet surfaces using the “Refine Match” option set to .001 (in one case 0.0001 to “force” better match, then repeat back to 0.001, and finally, rebuilt the surface to get more “reasonable” UV segmentation).

I tried banging my head as hard as I could :head_bandage: so I don’t think I can get better result than this without having a plan for it. Texture to do the rest.

// Rolf

[quote=“2DCube, post:46, topic:33801”]
"…add a texture…"[/quote]
Is that texture for Rhino Renderer? Looks very good.

// Rolf

Looks like you’ve been busy, Rolf :slight_smile:

It’s fractal noise in Keyshot

Man you work fast:grinning:

I went back and made another version with more generous filleting.

After splitting that surface … it’s not clear to me what you did next. Was it the split produced edges you then matched? If not, why did you split the surface? Once the tweened curve was pulled to the swept surface was it then used in a network srf execution for the upper and lower as in B.James solution?

In any case, I’ve tried every permutation I can think of and I’m not getting such a nice result.

[quote=“RIL, post:48, topic:33801”]
I tried banging my head as hard as I could
[/quote]I’ll have to call it done, mpve on to the rest of the model and apply some heavy texture. Thanks 2d

Ops, there’s an information gap between paragraph 7 and 8… :frowning: I no longer remember for sure since I forgot to type it down, but I think I used the same kind of surfaces that B James did in the video (Sweep (upper) + NetworkSrf (lower) + some extra MatchSrf:ing).

In any case, I have come to the conclusion that this way of splitting the original fillets (splitting both fillets using the same cutting line) is never going to result in a perfect fillet, ever. It’s not geometrically possible. The common cutting line is actually the cause of the crease in the middle. and will always result in such a visible crease.

Now, this is not B James fault, since his example has fillets with the curvature in the opposite directions (inwards-outwards whereas you have outwards-inwards) which allows for a good result in his case.

My understanding is that the only chance to get a perfect result is to split the original fillets individually, using split isocurve, which splits them perpendicular from their outer edge towards the common intersecting point, and then extend the fillets from there. Doing so will not (by inherent necessity) force the edges to form that very crease which is so obvious in your pictures, instead it allows for a smoother transition or curvature since both fillet-extensions can start tangentially from the cutted edge. In B James case they can’t (only one of the edges can, in the best case).

// Rolf

Thanks for all you attention Rolf. I’ll eventually understand the principles underlying different approaches. What a fine day that will be. :grinning:

Until then I must put in the time failing my way to competence. I do think I’ve a significant challenge - that is something out of my league - with this particular problem. I’ve refined it further. Closer to what actually exists and that’s introduced a few more factors. The bigger issue is how to make a blend of the edge of a curved surface into another curving surface.

It’s enough to give one a headache.

I thought I’d include the latest just to illustrate. I would well understand if you’ve no more to say on the matter.:slight_smile:



MN-2.3dm (881.6 KB)

It is not exactly like the image and i don’t have the original to measure & look at. Here is a quick attempt using extrudes & filets.

MN-2-red.3dm (1.2 MB)

Hi James,

I suggest you run a “pipe” along/around the intersection curve (I used 0.5 mm radius in the pictures below)

  1. and then split the housing making room for the fillet using the pipe as the “cutting object”.
  2. Then delete the split parts (but keep/hide all the curves for later use).
  3. After that, use any of the methods discussed earlier for framing the intersection,
  4. When the crossing curves in the intersection is done, then Sweep2 can be used to make the fillets around the housing (NetworkCrv also works). Try different curvatures.
  5. The fillets from the intersection up to the flat surface on top is the same ol’ thing as discussed earlier in this thread.

In this way you get a fillet with constant width around the whole housing, which looks very good in my opinion. Like so (I kept the “pipes” on the other side as a “before and after” illustration):

I prefer the “pipe” approach since I really dislike the various fillet widths which results from Fillet or BlendEdge. Again, have a look at this:

or this :

The approach is dead simple, just use the Solid/Pipe command (R~0.5mm) using top edge as the Curve to create the Pipe around, and run Curve/Intersection to get the other curve that goes down and around the whole thing. I created both Pipes and then splitted. Remark: Explode the top planar circular surface before splitting so that the pipes doesn’t make any ugly cuts in the top surface.

The Pipes before using them as cutting objects (don’t forget to extend them so that not only "half of the pipe end passes the edge to the top planar surface. I extended them to the red line as pictured, an no worry, the top planar surface is not going to be cut if de-selecting it before splitting):

I prefer drawing the fillet profile curves perpendicular to the respective fillets, using Curvature. You may have to manually draw some “helper lines” to put yourself into position to run the BlendCrv command (see the square boxing, plus the extra line that points straight up in the air (2), which were used as the counterpart for the isocurve (1) and the BlendCrv command, aso) :

Not pictured here, but I used two extra crossing curves (BlendCrv[edge]) both in the “surrounding” fillet and in the tricky upper “twin fillet” part.

Edit: And as I indicated before, the only way to avoid the sharp crease between the twin fillet slices is to make a perpendicular cut/curve in the intersection, like so:

Same thing from a different angle, with the tweened “middle curve” included:

Hope you get some ideas from this.

// Rolf

Rolf, thanks very much for all your help. I’ve learned much more. I’ve been preocupied with some other tasks, but I wanted to let you know I appreciate it. It’s mildly embarrassing as I was well aware of the pipe method but it didn’t occur to me. I have a tendency to paint myself into a conceptual corner do far. I’m not too concened at this point because it makes for memorable lessons.

I may confer further with you about the aspects of blending in the rear bezel. Happy Friday!

1 Like

Well, I did too.

Due to this thread I now have more videos in my “fillet” collection with examples of different approaches for making fillets, depending on the curvatures involved. :sweat:

Selfish as I am I actually learned a lot myself from these examples, or perhaps, “challenges”.

I think the most important takeaway from this thread is to try “smoothing” the starting conditions for any intersecting double curved surfaces, that is, sudden changes in direction in the curves that guides the surface edges is most certainly going to end up disturbing the final surface.

In any case, I’m saving this thread in my bookmarks list for Rhino tricks.

// Rolf

Hi all,
did you expect something sooooo useful in rhino7? some news?


I think the idea of Rh7 is to enhance and partially replace traditional modelling technics using Sub-D Surfaces. Replacing the loss of T-Splines, another valuable legacy plugin. That is a valid point, since it seems to me that most users don’t use Rhino for surface modelling in a way that VSR really pays off. I would even get further and claim that most Rhino user don’t do free-form modelling in a way that using Bezier modelling techniques really helps. There are some improvements in direction of VSR, such as a deviation analysis. Could be that McNeel targets VSR functionality in Rh8. In any case, Sub-D Surfacing is a very useful feature, just not for anyone.

Fun fact, it’s May 2022 and many many users are still complaining about the same stuff.