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.3dm (774.9 KB)
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. :thinking:
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) :sweat_smile:

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.

Thank you very much Fares, and those are excellent points about the degree number vs # of control points. I need to spend more time investigating that relationship.

Also, thanks for making the time to test the simplest topology possible for tracing the iPad Pro. I got similar results with 12 points, but it still fell short of the finer differences Apple has used for smoother rounded corners. I managed to get a result that was close enough for what I’m seeking by using 16 points. The green contour in the attached image is a conic curve rounded rectangle in comparison to a 16 point rational curve with adjusted weights (red line). It’s been fun to experiment with.

hi @mdbechtel
you’re welcome .

I imitated the conical curve in your file.!
I was wrong, I should have followed the contours of the ipad.

I think you could get a good result with just 12 points.

I will try tonight. if i could more closely mimic the silhouette of the ipad

Thanks Fares. My graduate industrial design students have given it their best this week to solve it with the simplest means. I don’t think anyone has figured about how to precisely match the contour with fewer than 16, but I’ll reply back to share an example if someone did. It’s fun.

Hello. @mdbechtel
I appreciate that you are a teacher in industrial design!
delighted. :slightly_smiling_face:

I made a new tantation. there she is iPad Pro Contour NON UNIFOME 2 .3dm (763.5 KB)

it’s up to you to see if it’s close enough to the contours of the ipad pro.

there is a small problem with the upper right corner,
it is because of the image.
it is twisted somewhere, or badly oriented vertically.
I had to make a small modification on a copy of the curve I changed the weight and the arrangement of the points to correct the diviation in this distorted corner.

and here is another curve built on an image downloaded from the internet. *
ipad pro 2.3dm (167.9 KB)

the peculiarity in this image is that these corners strongly resemble conical corners.
looks like apple designers used G1 fillet for these corners.!

1 Like

If this is of any use, I have written an article on how to get “almost” a G3 fillet using Grasshopper and Galapagos. I will point the article here: cademy.xyz/learn/fillet

2 Likes