SubD vs T-Spline _ geometrical differences

while playing with the SubD I compared the nurbs conversion of both (rhino subd and TS) and I’ve noticed a big differences.
I was expecting almost the same geometry because both are based on degree 3 srfs.
Could someone of you briefly explain me the differences?


1 Like

You’re correct that Rhino subd is a spline surface. The NURBS conversion from that is still a WIP. Can you post a model and screenshots to show what the differences you see between TS and the v7 WIP are and explain more about why you want one over the other? Thanks.

I’ve played more with Rhino and Clayoo sub-d conversion than T-Splines or Fusion, but here’s my take on the differences. As far as I know, all three are based on the Catmull Clark subdivision system, so the sub-d smoothing part should similar, except T-splines treats “star points”, and “triangles” a little different than the other two, and will not produce G2 continuity at these junctions. Nurb conversion is very different between the three programs, with Clayoo producing at least four patches per sub-d face similar to polygon based programs such as Lightwave or MODO, except in nurb format. Rhino will produce one nurb patch per sub-d face for all quads even at star points, except for “triangles”, which become three smaller nurb patches to maintain continuity. In T-Splines I believe you have two options for nurb conversion, where on quads at least, you get one patch per sub-d face, or you can simplify the surface, and bridge patches across multiple faces as long as they do not contain any star points of triangles. The plus side to this method is you get a “lighter” nurb model, but with some loss in accuracy especially at sharper corners. If I remember right, by default T-Splines splits nurb patches into tiny sections near star point junctions, it also creates a form of “edge loops” that span from one star point to another across a surface, which i remember not liking that much. Although Rhino maintains a 1:1 sub-d to nurb patch ratio, it’s not perfect either, as does add more isocurves to patches located at star point junctions or triangles, but the isocurve count is reduced for each patch as they become further away from the star point junction. Personally I found the Rhino system to be the best compromise of the three for overall surface accuracy with it’s 1:1 patch ratio, and can verify that the nurb polysurface is an exact clone of the sub-d surface with full G2 continuity, (even across most triangles). 'Hope that little explanation helps.11%20europa%20sub-d%20patches%20star%20point|690x377


Thanks for the comparison notes. The isocurve density has been reduced at star points in recent builds, I want to say the last six months of the WIP. So the conversion used to be more complex at these spots. @dalelear might also have potential ideas for a further reduced NURBS conversion from SubD. Post any models that illustrate where conversion patch reduction is needed or not wanted please. Thanks!

Hi Brian,
When I say Rhino is not perfect, it’s more of an “ideological comment”, as it would nice if every patch had 2 rows of control points for each edge regardless of shape, but I know that’s not mathematically possible in sub-d patches that are not “square”. I understand why the extra isocurves are required as they have to follow the flow of the the sub-d edge lines which must converge at some point in a triangle or arrowhead shaped quad. I spent many hours trying to manually simplify or rebuild patches in these areas, and don’t think there’s any geometric way around it without destroying the flow of the edge loops. I was was lucky enough to connect with Dale when he was writing the code for the conversion, and I think he’s he’s pretty much nailed it in that almost all patch conversions are 1:1, and he made the isocurve density gradually decrease as each patch gets further away from the triangle or star point rather than continue on toward the next star point in the loop. In that area I would say your system is the best all around compromise as the patch counts are much less than what you get from Clayoo, and more consistent than what you get with T-Splines without manually trying to clean them up. Even though you can merge patches in T-splines during conversion which is kind of nice, that technique only works on square patches flowing in straight lines, and star point or triangulated areas still end up being messier (and lumpier) than with Rhino.

What I’m waiting for are a decent set of cage hull creation tools in Rhino. While not impossible to use, I find the toolset in that area to be so disparate and inefficient that I make all of my cages in Lightwave, (MODO would be my 2nd choice) and then port them over to subdivide and patch after. If I have to make small changes, then I’ll stay in Rhino, but if it’s fairly major, then I’ll go back to LW, and re do it there. I’m curious of one thing relating to all of this. When you finally release your sub-d system, will it be just another part of the base program, or will it be purchased as a separate plug in like you do with the render packages?

Thanks, for the reply. Greg

Hi Greg,

I hadn’t realized you were you :slight_smile: Yes, thank you for working with Dale and providing models to help this work. Your synopsis here is also helpful to hear. The base mesh creation tools are in the works with more being added or updated all the time. I have used a similar workflow to what you described making base meshes in Blender which is my polymodeler of choice. Some v7 commands you may not know about for mesh creation and editing… Append, Bevel, Bridge, Slide, Extrude, InsertEdge, SelEdgeLoop, SelEdgeRing, SelFaceLoop, Stitch, SubdivideFace, Thicken and RetopoSelect. The goal is to get these working on subd objects as well and some do already. Any suggestions on base mesh workflows are welcomed. We’re also looking at using Rhino surfacing commands to create subd surfaces too which is an alternate workflow from the normal subd mesh workflows… could be interesting. The subd tools for v7 will be part of standard Rhino.


Hi Brian,
This is excellent as it sounds like you guys are seriously moving along with this. Being an icon button guy, I didn’t notice the additional commands now available in 7. One thing I’ve noticed with sub-d modelling is there seems to be two distinctly different modelling styles, so each one has their own preferred tool set and workflow. It seems that T-Spline and Alias guys like to model by “growing” patches, so they want more sweep and bridge type of tools, but if you’re from the old school , Lightwave-MODO or Blender camp, you’re likely more of a “push-pull” box modeler and would probably want more extrude and slice-n-dice type of tools. I’ve never used Blender, but with MODO being a Lightwave offshoot, I know their workflows are very similar. Yes if you guys are interested, I’ll definitely submit a list of the tools that I like to use, (which is not that many actually) what they do, and why I use them. Thanks, Greg

1 Like

Hi Brian, I was hacking around today on this. Needed to make some changes on an imported low-poly/SubD model and wanted to see if I could do them in Rhino. I stalled when I needed to so a slide, with copy. so basically it slides a cope of the edges you selected to slide, and leaves your original selection intact (you add more edges). Could you guys add this option please?

Also when I have a/some verts or edges selected, Can I delete them and not make holes in the mesh? I want that selected detail to disappear from the mesh, but keep the boundary elements intact. What tool would I use for that?

Awesome, it will be awesome. Not it could, it will. Not interesting, awesome. :wink:

If you are looking at mesh editing you can use _InsertEdge _Type=_Loop.

There is a _Stitch command which kinda works like a collapse. It might get you started with simplifying your geometry (or not, but try it out anyway).

P.S. if you do a ToolbarReset (or go through toolbar layout menu) you can get the Mesh Utilites toolbar with icons. The insert edge loop is in there as well.

Thanks Nathan, I’ll try those commands tomorrow.

I did try the ToolbarReset, but even after restarting rhino I still get this:

Did you also install the very latest WIP? At least I was offered one this morning when I came to the office.

Rhino 7 SR0 2019-1-29 Rhino WIP, 7.0.19029.19415

Edit: after _ToolbarReset the Mesh Utilities toolbar should be next to the Mesh Tools toolbar.

edit2: InsertEdge (rerecorded to show command-line)



My latest is (7.0.19024.3445, 01/24/19), checking for updates in the app is telling me I have latest. Do I need to wait for the internet to catch up? or do I go to the Serengeti download page and that will have the latest?

Did you press the Check Now… button/link in the Check For Updates… dialog too? It should open a web browser telling you there is a new download. Then use that link to download the new installer.

We didn’t release a V7 WIP yesterday. There is a bug that needs to be fixed and tested first.

Oh! I didn’t realize I was on the special stream. I thought I was on SRCs for that too :confused:

Sorry about the confusion.

Great! Probably best as a separate thread or more on the forum if you can.

This would be covered by InsertEdge as Nathan mentioned which still only works on meshes not subd srfs. The removal of an edge loop or single edge is not yet in but on deck as I understand it.

Filed this to make sure it’s on the list… Thanks!

1 Like

It would be very interesting to make a comparison, with some simple models, between TSplines for example, and the SubD developed in Rhinoceros (in words it does not understand us much). In this way we would begin to understand something more and to highlight any shortcomings or potentials.
I think it’s time to start a constructive comparison.
Soon also MOI will provide its SubD in version 4. The theme becomes interesting…

1 Like

I also hope that nice icons are developed that are consistent with those of Rhino, for all the tools related to SubD. I believe it is important to associate a new image model tools (commands) with a new modeling system for Rhino (SubD).

I think that this would also work nicely for some people:

There is already the proportional offset mode. Have you tried it? I also showed it in the screencast.