Power tools from SubD

when are those power surfacing tools which are responsible for creating super matched nurbs surfaces from Subd available in normal Nurbs environment? right now there is nothing that gets even close… i think that would be handy to have.

How to define “Super matched”?

you are going to have to clarify a but… Are you referring to xnurbs?

well, matched to a degree that the surfaces on 4 sides have a continuity which you do not achieve with regular matching techniques. at least not with breaking a leg or more if at all.

no, i mean the resulting surfaces from the tonurbs from subd.

I’m confused… can you give more detail or examples of what you are asking for here?

if you have a subd and you use tonurbs the subd gets transformed into nurbs? the resulting surfaces are matched to each other creating a continuity, one which you do not achieve so easily if at all with other tools rhino provides suggesting that there is some good tool hidden which could be exposed for regular nurbs. not sure how i can explain that differently…

subd and nurbs are completely different animals. They are not “matched” they are simply converted. Subd by its nature is internally continuous unless you force it not to be. This is less of a “match” so to speak and more of the nature of the beast.

unless I’m mistaken there is no way to use subd technology to make a regular nurbs match better. (aka super match)

@dalelear would be the one to call me out if I’m wrong here. (it happens…)

1 Like

imagine you have a nurbs surface and you need a surface that blends into it matched on all 4 sides, maybe we could use subd to create a continuous surface which then can get converted to a nurbs surface? if subd can be converted to nurbs maybe it would be possible to use this method then idk its just an idea.

Using SubD objects to “patch” holes in polysurfaces can work well when 2 conditions are satisfied.

The sides of the NURBS “hole” has a shape that is easily fit with a UNIFORM NON-RATIONAL CUBIC curve.

You want a G1 transition between the SubD and the NURBS.

Rhino SubDs are Catmull-Clark subdivision surfaces. The boundaries (and “isocurves”) of Catmull-Clark subdivision surfaces are nonrational uniform cubic splines. The cross boundary curvature along Catmull-Clark subdivision surfaces is always 0. These are intrinsic mathematical properties of Catmull-Clark subdivision surfaces. When these properties conflict with the desired surface result, you end up in a situation where you’re “trying to pound a square peg into a round hole” and using a NURBS surface with compatible properties will give better results, even when obtaining that NURBS surface is difficult.


thanks @dalelear i did not think about this limitation (too much cypress sun). last try before all my dreams come down. would it be possible to create a trimmed patch where the trimmed vertices create a continuity?

Once trimming is in play, it’s probably best to stick with NURBS surfaces.


One of the main properties of SubDs that makes them powerful modeling tools is the control net does not have to be a rectangular grid and they are generally curvature continuous. This permits a great deal of freedom in creating smooth surface shapes with a wide range of surface topology. However, the arbitrary topology means there is no canonical surface parameterization over an entire SubD.

Part of robust trimming requires parameter space and 3d trimming curves that work in tandem. The need for easy to create and maintain accurate parameter space curves tips the scales heavily in favor of using an underlying surface with a standard global and easily accessible parameterization (like NURBS surfaces).

It is true that trimming can be implemented on Catmull-Clark subdivision surfaces and this has been tried many times in a variety of applications and research projects. (In fact, this is one way to circumvent the zero curvature issues at boundaries.) When extensive trimming is required, I’m not aware of a SubD based method that would be any better (overall) than simply using trimmed NURBS (like Rhino polysurfaces/breps).

It may be that a SubD could be used in an early phase of putting some type of surface over the hole, converting that SubD to NURBS, and then trimming the NURBS. To get robust results for complicated holes would take lots of work, testing, and refinement to provide a high quality user experience and a result that is at least as good as other NURBS patching techniques.

In short, SubDs are not a magic wand that will solve general case hard surface patching problems.


hi Dr. Lear,

So good to see you here again. I agree that SubDs are great for form development/exploration but they absolutely suck for detailing, not just circles but also any planar faces, edges, offsets, continuous curvature, etc.

The hybrid model of overall form as SubD + all the detailing as NURBS works very well but still very frictionous in Rhino. Even if I can explore and develop form iterations in SubD in other packages much more fluidly and quickly than in Rhino I welcome teh ability to bring these SubD cases to Rhino and do only small shifting/grooming/tailoring of the SubD in Rhino. ANd then do all the NURBS nuts and bolts work.

Fun fact: this month, we finished a very complex industrial/handheld industrial design project where all the form was done this way. Modeling and printing 20+ iterations of form, grip, details, etc. Even machining metal parts out of converted SubD. At the end, to hand off data to our client we had to rebuild it all as a clean all-Nurbs, drafted, shelled, Solidwork-friendly model. That means a complete redo, but that only takes a few days, which is a rounding error for a project that we get to play around with topology and variants for a few months.

So back to my thoughts for Rhino… Because of the linear and destructive nature of this hybrid approach I still want to see a history/live boolean approach working well. Currently it can be wired in Grasshopper but then I see why you guys are not doing it natively: it’s too slow to be flun, and the whole point of this workflow is to have flun. (flun = fluid fun)

Another limitation of this ‘live boolean approach’ by hooking up SubD blobs +/- Nurbs details is that all the transitions are infinitely sharp, and that makes it hard to decide if a resulting solution is worth entertaining further without seeing its transitional edges also treated as blends, chamfers, fillets, etc. And as we all know the last thing we want Rhino to do here is trying fillets and blends at complex geometry! This could also be worked out with _Shrinkwrap, a wonderful tool for rapid prototyping and making 3D printer fixtures, but too sloppy and too slow to join the ‘realtime fun zone’.

So this leads me to an interesting area of future exploration, in V9 maybe: SDF modeling.

SDF shaders would be a great way to get fast/realtime previews of complex intersections, and then when you are done playing and form-finding, you an let all the slower tools do proper conversions.

Have you seen what Clavicula is doing with SDF? Take a look here: https://clavicula.link/

Or check this youtube video:

Here’s a guy making Blender Plugin with this stuff. check out this article and the videos, they are super impressive stuff:

And of course, once you are done playing, you can ‘cook’ your solution with a Quadremesher + SubD and all that stuff from last decade :slight_smile: like this:

BTW, Blender is also working on this SDF stuff natively: #103248 - Geometry Nodes Volume Features Implementation - blender - Blender Projects

Dr. Lear, and Team, you have all the pieces to make all this form development feasible in the built environment with the tools for modeling, remodeling, detailing, and documentation that Rhino has. But you are missing IMO only the initial exploratory stuff. Please get on this instead of keep working on the losing battles of fillets or some other boring crap that everyone else is already solving or solved, even as a $99 Parasolid-powered app.

Like always, thanks for listening.


(PS: cc: @pascal @theoutside @nathanletwory @Joshua_Kennedy @stevebaer)


Hi, Gustavo,

Great to hear from you! Thanks for the good information and suggestions. As is typical, you know what you’re talking about, know what you want, and you get to the point. That’s why I enjoy working with you. Good to hear SubD was somewhat useful for your recent project.

I’ll be chatting with Pierre this week and I’ll bring this up with him. We have a pretty sharp summer intern showing up in a bit and are looking for things to explore and there are some items in your suggestion that might be appropriate.

Cheers, Dale

That’s awesome Dale. Yeah SubD has been super useful. We had used it in quite a few products straight to tooling too. In some cases had to pull out the old V5 laptop with T-splines stills running, but in others the Rhino conversions did the job.

I’ll be able to share a bit of our work soon, here and on our new website.

Glad to yeah you appreciate my feedback, life is too short to beat around the bushes with what we need to get done, and how. And I’m nuts sure many people get that :wink:



Nearly 100% of my Rhino projects these days involve some sort of smooth ‘body work’ with mechanical chassis or ‘hard points’.

The combo of SubD with Grasshopper has become my killer application.

Typically I’ll setup the mechanical parts (screws etc) as Nurbs models, along with matching, oversized ‘cutting objects’ (mounting holes).

From here I’ll create a very rough SubD over the parts.

Last part of the setup is to drop this all into GH and setup the booleans and other relationships between the SubD bodywork and mechanical parts. I’ll also shift the result onto a clear area of the Rhino workspace for preview.

I then have an (almost) real time feedback setup of applying changes to the SubD and seeing the final form. With this workflow very fine grain fitting of the SubD form to the Nurbs objects is possible.

Some projects have been iterated on daily with overnight 3D prints over the course of months in this way to arrive at the final form.

I cannot currently see how this style of work flow could be improved on for development of my style of consumer products.




Hi, DK,

Thanks for sharing that. It’s nice to hear when our stuff is used and useful. It also helps to hear what workflows are useful and what works well because then we know not to break that. In some cases we hear a lot about what isn’t working and in our attempts to address the needs of a few frustrated users we sometimes alter or break things that are working well for other satisfied users.

– Dale