# Understanding the topology of closed periodic curves

I’m preparing a lesson for industrial design students to better understand NURBS geometry and topology.

I’m using the contour of an iPad Pro as an example of higher continuity curvatures for a rounded rectangle, and I’d like to better understand the difference between closed periodic curves and open NURBS curves. An example below:

I created a 16 point control curve that is closed and periodic. The curve property details show the following:
Valid curve
Periodic NURBS curve (SubD friendly)
Start = (1419.4,140.3,0)
End = (1419.4,140.3,0)
Degree = 3
Control points: non-rational, count = 19 (3 duplicates)
Knots: uniform (delta=77.8875), domain 0 to 1246.2

First question – Duplicate control points for periodic curves
I understand from Rajaa Issa’s Essential Mathematics for Computational Design that periodic closed curves only use single knots, not double or full multiplicity knots as is the case for open NURBS curves that are clamped at the start and end with full multiplicity knots. Additionally, I understand the rule for closed periodic curves is : number of input control points + curve degree = the total number of control points required. In my example above, this creates 3 duplicate control points (16 input + 3 = 19).

I can only observe that there is a total of 19 control points by viewing the properties detail of the curve copied above. However, I cannot access or control these three duplicates in the Rhino environment. When I select the curve and then execute SelPts, it only captures 16 points.

I venture a guess that the duplicate control points are topologically required to represent a continuous and smooth closed periodic curve because the start and end points coincide. Therefore, the coincident start and end control points need additional control points to maintain the degree 3 curvature? And these duplicate points operate in NURBS evaluation rule, but cannot be manipulated?

Second question – “Parameter is outside the curve domain, results may be unpredictable”.
I’ve used Grasshopper to list and visualize the knots using the Control Points and Evaluate Curve components. When I plug the knots output into the parameter input on the Evaluate Curve component, it reports the error “Parameter is outside the curve domain, results may be unpredictable”. Is this because the duplicated control points extend the knot vector beyond the curve domain? I noticed that the knot values begin with negative numbers.

I was able to understand the knot locations by baking the points output of the Eval Curve. 2 knots appear coincident where I had started and ended the closed periodic curve.

Last question – Is it possible to create this curve example with fewer than 16 input control points?
I spent time exploring the simplest curve topology required to trace the contour of an iPad Pro. I got acceptably close using 16 input control points and adjusting the control point weights. I could not get close enough using only 12 input control points. For clarity, I recognize that I’m working from imprecise material to trace the contour by using a scanned image of the iPad Pro. I adjusted the distorted scan image imported into Rhino so edges are relatively square again. It’s just enough to show the difference between a conic curve created with a fillet versus the higher continuity of Apple’s rounded corners.

Great thanks to anyone in advance that can make the time to answer any of my questions.

Lastly, where credit is due, I am indebted and grateful to Giancarlo di Marco’s book, Simplifying Complexity, as well as Rajaa Issa’s Essential Mathematics for Computational Design to learn more deeply about NURBS geometry and topology, as well as how deeper understanding benefits smoother workflows in design practice.

iPad Pro Contour Analysis.gh (9.1 KB)

1 Like

The text in the .3dm file is confusing. A title says “Contour Trace of iPad Scan: Non-Rational Curve (Control Point Curve)” but the NURBS curve is rational with non-unity weights.

That is my understanding. The extra three points are based on three input points. If they were manipulated independently of the input points the curve would cease to be periodic.

That is a reasonable assumption. It is difficult or impossible to be certain without knowing the details of the code.

1 Like

Thank you David and your reply is very helpful. I find this advanced material to be quite exciting after many years of using Rhino & Grasshopper at a moderate level of understanding common among design professionals.

Minor note - the title error was made in haste when I copied elements from the master file I’m preparing for the class to the simplified file uploaded for this post.

I like this kind of subject.!
I was also interested in the meaning of duplicates in periodic curves.

I also think that these are the points which coincide at the beginning and at the end of the curve, the number of duplicates depends on the degree of the curve,

3 duplicates for degree 3, and 4 for degree 4, and so on.

in all cases. from a design point of view, I only count the controllable points,
the meaning of duplicates can be misleading.

I observed with the periodic curves, that each node is associated with a control point (manipulable) whatever the degree used.

the junction point can remain in its original location, and it can be shifted,.
it depends on the number of points and the degree.

example} odd degree vs number of even control points = fixed junction point (the reverse also gives the same thing).

odd degree vs number of odd control points = shifted junction point (also even against even).

here is the file, PERIODIC NURBS.3dm (71.3 KB)

I applied _MakeNonPeriod on the periodic curves with different degrees.

I have an opinion it’s just a philosophy that I invented in my head, compared to what I observed.
a point superimposed on another is called 1 duplicate, if we add another point on this duplicate, it is called 2 duplicates, and so on.
just my bullshit so much I can’t find the explanation)

here is this file of my tantation. iPad Pro Contour NON UNIFOME.3dm (680.9 KB)
it’s the green curve on the right
I managed to put 12 control points using a rational non-uniform periodic curve.