SubD in GH2?

Just wondering if there will be functionality in GH2 to work with Rhino SubD meshes? T Splines in their final release included some GH components allowing (in theory) many of the same operations available in the T Splines menu. Of course, there was zero documentation because they were already dating Autodesk.

There’s already some sub-d support in GH1 for Rhino7. Not much, but some.

1 Like

Care to elaborate?


If you want to do something elaborate with SubD, play with @DanielPiker’s Skeleton Fattener component and plug it into the SubD from mesh component.

It’s a game changer. I forgot to go to bed last night until about 2:30am because I was having so much fun with it.

The latest WIP release’s SubD features aren’t nearly complete, but they are now very, very useful.

When do we get a SubDtoNurbs Component? Huge potential there from being able to hybridize Nurbs and SubD techniques and see real time results.

Subds will automatically convert to breps made of nurbs patches when you plug them into a brep parameter.

Sadly sub-ds weren’t implemented as a surface type in Rhino so you can’t have a brep which contains both nurbs and sub-d faces. That would have been awesome, but it would also have required a massive SDK break and probably years worth of rewrites.

Having a hybrid Brep made our of SubDs + Nurbs would be extremely useful to leverage the best of both topology types in things like ‘live Booleans’, where you could have a SubD body with perfect Nurbs Substractions/Unions like round holes or stiffening ribs.

It would also be useful to match continuities between SubDs and Nurbs probably? …and output solid Breps.

Let’s build that and break the SDK! …we’ll find out soon how bad it is :crazy_face:


Are there packages where such a hybrid exists? If so, how are the brep and sub-d portions distinguished?

Siemens NX and Creo both maintain these live relationships. So yeah everyone doing complex modeling is doing it.

Just tried baking from a brep component that’s receiving a SubD, and yeah, super handy.

Also seems like there’s a very minor bug: baking from a brep created a polysurface with isocurves set to on. My view default is off. When converting from subD to nurbs using ToNurbs in rhino, the resulting polysurface follows the view default.

Also: when I say “hybridize subD and Nurbs” what I mean is that by using a data flow in Grasshopper that goes from SubD to Nurbs, you can get all the advantages of both and view the results in real time.

A very simple example: Create a subD structure, convert it to nurbs, do a subtraction or a split to create planar feet or a planar top. To do that in Rhino and then revise the SubD form would be tedious. In grasshopper you can get real time results.

The main issue here is that sub-ds are not limited to a single uv domain. Like meshes, a sub-d surface can have any topological genus. In the meantime surfaces in Rhino must have a single uv domain, otherwise loads of algorithms (intersections, geodesics, trimming, reparametrising, rebuilding/refitting, …) have to be redesigned.

That’s not really the issue. A brep in Rhino now can already consist of various types of surface, including planesurface, revolution, nurbssurface, and sumsurface.

I meant visually. Is there any way of telling what’s what?

Maybe, does it matter? Do you care now that there’s more than one type of surface in a brep?

This is pretty much my all day, every day Tsplines/Grasshopper workflow.

For some reason everything I work on seems to consist of Tspline/SubD ‘body work’ with a bunch of NURBS/Solid/Brep ‘hard points’ - bolt holes being the obvious one here.

Before I started using Grasshopper iteration over model changes were painfully slow - with lots of copying parts and Boolean operations to see the final result.

These days I set up the Tspline and all the solids for the hard points and have Grasshopper running to create the final form. I can change ANYTHING at any time and see the result is (almost) real time.

Its a super powerful workflow and I really only need a couple more features (Axial Symmetry??) to be ready in SubD to be able to move over from Tsplines.




Just as a practical matter, I would be interested in knowing what universe each part lived in, especially since the available commands differ whether its a brep or a subd. For example, what you can do with a vertex or edge in Tsplines differs from that in pure Rhino… Maybe I’m missing something?

It’s all academic since sub-d aren’t supported as faces in breps. But the standard solution in Rhino elsewhere is to convert a shape type to nurbs (curve or surface), as that type can be used to approximate any form.