Cylindrical Sine and Clélie Curves

Clélie and cylindrical sine curves are created by picking out a subset of points from the surface of a sphere or cylinder according to the parametric equations shown below. The variable n dictates how fast the curve wraps around the surface, and creates a closed shape whenever it can be expressed as n = a/b, where a and b are integers (i.e. when n is rational).


 x = r • cos(𝜃) 

 y = r • sin(𝜃)

 z = r • cos(n𝜃)


 x = r • cos(𝜃) • cos(𝜑)

 y = r • cos(𝜃) • sin(𝜑)

 z = r • sin(𝜃)

Cylindrical Sin wave:

 x = r • cos(𝜃) 

 y = r • sin(𝜃)

 z = r • cos(n𝜃)


 x = r • cos(𝜃) • cos(n𝜃)

 y = r • cos(𝜃) • sin(n𝜃)

 z = r • sin(𝜃)

Visually, you can determine n by the following rules: 

  • Numerator = number of “bumps” or “flower petals” on the top.​
  • Denominator (cylindrical sin): how many “sections” it has. A section is the part of the line before it intersects itself (it is not broken where it is intersected by other sections)
  • Denominator (Clelie): How many “self-intersections” it has. Again, this is where the same section intersects itself, not where it is intersected by another section.

I received most of my guidance from the Personal pages of Robert FERRÉOL.

However, I read here that the Clélie is the cylindrical axis projection of a cylindrical sin wave onto a sphere. This seems plausible, but if you look at the pictures I generated it seems to require the shift from n=a/b to n=a/(b-1) (for example 1/2 to 1/3, 3/5 to 3/4, etc). However, even this doesn’t work for n = 2/3 to 1. I’m not yet exactly sure how these two are related — it needs more work!

Another cool connection is that the cylindrical sine curves are a special case of 3D Lissajous curves (see my page on Lissajous and Lissajous knots!) 

These images were generated using Rhino and Grasshopper; the code is below. I printed them out on a Prusa MK3 3D-Printer.

More 3D prints to come!


Cylindrical Sine

Cylindrical Sine Grasshopper Code