Why does Rhino have SubD-friendly curves instead of SubD Curves?

Question about Rhino’s geometry architecture: Why are there no SubD Curve entities?

Hello everyone,

While studying Rhino’s SubD workflow, I came across something that sparked a conceptual question about Rhino’s geometry architecture .

The question arose after experimenting with the MakeSubDFriendly command and trying to better understand the role that curves play within Rhino’s hybrid NURBS–SubD modeling workflow.

From my experiments, I observed the following:

  • The MakeSubDFriendly command transforms a curve into a SubD-friendly curve, but the resulting object is still reported by Rhino as a NURBS Curve (SubD-compatible).
  • RhinoCommon’s CreateSubDFriendly() also returns a NurbsCurve.
  • As far as I can tell, Rhino does not define a separate geometric entity such as a SubD Curve .

This made me wonder about the design philosophy behind Rhino’s geometry mode l.

I’m trying to understand whether Rhino considers NURBS to be the fundamental representation for all curve entities, while SubD is intentionally limited to surface representations.

My question is not about requesting a new featu re.

Rather, I would like to understand why Rhino appears to represent curve entities as NURBS while having a dedicated SubD representation for surfaces.

I would greatly appreciate any insight into the architectural reasoning behind this decision.

More specifically:
My observations may of course be incomplete, so if I have misunderstood any aspect of Rhino’s geometry architecture, I would be grateful for any clarification.

Was representing curves as SubD-friendly NURBS, rather than defining a dedicated SubD-friendly NURBS entity, an intentional architectural decision? If so, I would be very interested in understanding the reasoning behind it. Was it mainly driven by the mathematical foundations of subdivision theory, by software architecture, by compatibility with the NURBS kernel, or by other considerations? Also, during the development of Rhino’s SubD tools, was the possibility of introducing a dedicated SubD Curve entity ever discussed?

I’m asking purely from the perspective of geometric modeling theory and software architecture.

I’m not suggesting that Rhino should introduce SubD Curves.

I’m simply trying to better understand Rhino’s geometry architecture from both a conceptual and a technical perspective.

Thank you very much for your t ime.

Any insight would be greatly appreci ated.

Hi @Luis_Fernando_Barrio,

Worth a read:

– Dale