SubD Friendly Curve

What makes a curve SubD friendly? Why the difference? I see from What that a SubD friendly curve has two extra constrained control points. Where are those points and why are they needed?

Hi David - from a presentation that Dale Lear gave us a while back:

Curves that give exact matches when using Loft, ExtrudeCrv, and Revolve to make SubDs are called SubDFriendly.
SubDFriendly curves are:

  1. NURBS
  2. degree 3
  3. uniform
  4. non-rational
  5. natural or periodic


Friendly curves have zero end curvature.

Because it is very easy to mess up these end conditions, the SubDFriendly curves hide those two “extra” points.
HTH,
-wim

4 Likes

@wim Thanks for the response. Can the hidden points be made visible and editable for non SubD uses?

@davidcockey - the “hidden” points are actually visible but not selectable - that is, when you try to select one, its two neighbors are selected.

image

Yes, there’s a test command for that: TestSubDUnfriend
-wim

[quote=“wim, post:2, topic:93939”]
Hi David - from a presentation that Dale Lear gave us a while back:

Curves that give exact matches when using Loft, ExtrudeCrv, and Revolve to make SubDs are called SubDFriendly.
SubDFriendly curves are:

  1. NURBS
  2. degree 3
  3. uniform
  4. non-rational
  5. natural or periodic


[/quote]e

What is the 1/3 - 2/3 rule? If and only if the first three or last three control points are colinear the 2nd derivative is zero independent of the spacing of the control points. Is there another reason the spacing needs to be 1/3 - 2/3?

Hi David -

@dalelear will have to explain that one.
-wim

There are a lot of technical details and assumptions wrapped up in this topic. I’ll start from the beginning in case somebody unfamiliar with the setting reads this thread.

Why do we care if a curve is subd-friendly?
If you are using a Rhino command like SubDLoft and you want the subd surface to exactly pass through the the curves, then you need to use subd-friendly curves that have the same number of control points.

How do you make a subd-friendly curve?
Run the Rhino Curve command and set the option SubDFriendly=Yes.

Now, some terminology and details.

A “closed” curve starts and ends at the same point, like a circle.
An “open” curve starts and ends at different points, like a line.

Every kind of subd-friendly curve is a non-rational uniform cubic.

Non-rational means the NURBS control point weights have to be 1.

Uniform means the NURBS knots increase the the same amount, typically 1, as you go from one knot to the next. (Most users never see or care about the knots.

Cubic means the NURBS curve has degree=3.

You can use the Rhino What command to see what properties a NURBS curve has.

Here is a degree 4, rational, non-uniform example.
image

Here is a SubD-friendly example.
image

The context for talking about the 1/3-2/3 rule is NURBS curves that are:

  • open
  • cubic
  • non-rational
  • uniform

A NURBS curve that is open, cubic, non-rational, and uniform is subd-friendly if and only if the 2nd derivative at the start and end point is zero. This condition is sometimes called “natural.” In this sense the word “natural” has been assigned a technical mathematical meaning that is a strong restriction. This is often counter intuitive to the way the word “natural” is typically used in any ordinary conversation about curve appearance or aesthetics.

Many Rhino users, if not the vast majority, are not comfortable talking about things like the 2nd derivative of a curve. It turns out there is another way to state this condition.

If you have an open, cubic, non-rational, uniform NURBS curve AND the 1st, 2nd, and 3rd control points are colinear AND the distance from the 2nd to the 3rd is twice the distance from the 1st to the second, then the 2nd derivative is zero at the start. This is still a mouthful, BUT, it can be described visually as the 1/3 - 2/3 rule.
image

Everything I just said about the 1st, 2nd and 3rd control points and the start of the curve also applies to the last three control points and the end of the curve.

How is this useful?
If you need SubD-friendly curves and you’re starting out with ordinary curves, looking at the first 3 control points and seeing how close they are to satisfying the 1/3 - 2/3 rule will help you understand how far away your curve is from being subd-friendly.

4 Likes

@dalelear Thanks for the reply. The statement below is not correct.

If you have an open, cubic, non-rational, uniform NURBS curve AND the 1st, 2nd, and 3rd control points are colinear the 2nd derivative is zero at the start INDEPENDENT of the spacing of the 2nd and 3rd control points. See the attached example for multiple curves of degree 1, 2, 3 and 4 with varying spacing of control points but 2nd derivative is zero at the start of each curve. Zero2ndDerivCrvs.3dm (51.3 KB)

Perhaps there is some other reason such as location of edit points which leads to the need for the 1/3 - 2/3 rule for the curves to be SubD friendly.

Hi, David,

Please see the attached 2ndDerivativeExample.3dm

It turns out that the 2nd derivative and the curvature are not the same thing.

It is true that for any open NURBS curve of any degree, it the 1st, 2nd and 3rd control points are distinct and colinear, then there is no curvature at the start of the curve. However, even a completely linear curve can have a non-zero 2nd derivative.

Very loosely speaking, for a 3d curve, the 2nd derivative has two parts, one part measures how much the curve is turning (curvature) and the other part measures how much the paramterization is accelerating/decelerating in the direction of the tangent at that point.

In the attached example there are 4 open, non-rational, cubic, uniform NURBS curves. Geometrically, they are all lines and have zero curvature everywhere. However, depending on the configuration of the first 3 control points, the 2nd derivative varies.

The top curve has a “natural” start (2nd derivative is zero). Its first three control points obey the 1/3 - 2/3 rule. The bottom 3 curves are not natural (they have nonzero 2nd derivatives), even though they have no curvature.

2ndDerivativeExample.3dm (41.9 KB)

Thanks for the explaination. It makes sense.