Cycloid (rolling wheel )

I saw something about a “cycloid” that inspired this modest (incomplete) effort:


spoked_wheel_2026Jul23a.gh (17.6 KB)

The cycloid is the locus of a point on the rim of a circle of radius a rolling along a straight line. It was studied and named by Galileo in 1599.

There are many ways to write this. The attached GH is only one way to get the basics (a rolling wheel). I didn’t attempt to plot the curve that a point on the rim would produce.

Added the curve. (but yesterday’s rolling wheel is cool)


spoked_wheel_2026Jul24a.gh (20.8 KB)

8 min. too late! :slight_smile:

The cycloid has a long and interesting math history. And it brings back memories from 25 years ago when I was artist-in-residence at the Science Museum of Minnesota. As part of an NSF grant to make Calculus-themed exhibits, I built a brachistochrone, and needed a cycloidal tool path for my home-brew CNC router.

Looks good, where is the GH code? I see you kept the rolling wheel?

Hi Joseph,
This reminds me of my naval architecture graduation thesis. The subject was a design methodology for the trochoidal Whale Tail Wheel ship propulsion system.

This was a horizontal axis propeller, contrary to the famous Voith Schneider vertical axis epi-cycloidal propeller.

Due to its large span of the blades the efficiency was fundamentally higher than conventional propellers. It was discovered by the late Prof Dr. van Manen.

Are you familiar to cycloidal propellers?

How about using an arbitrary 3D curve instead of a straight line? The top cyan group creates one by modifying three points of an ellipse (still an ellipse from top view).


spoked_wheel_2026Jul24b.gh (30.1 KB)

Funny what is discovered by accident or error… In the lower purple group there is a Value List (blue group) connected to a Stream Filter offering three choices. “Three” is the one I had in mind, “One” and “Two” were discovered along the way.

Three”:

Two”:

One”:

I’ve seen the Voith Schneider vertical axis propellers (very cool) but not the “Whale Tail” system. Will have to think about that… (P.S. I get it now!)

More links:

A New Way of Simulating Whale Tail Propulsion

Hydrodynamic Performance of Cycloidal Propellers

A fourth way:



spoked_wheel_2026Jul24c.gh (29.8 KB)

I just tacked on the four components to the end of your script: grab a spoke, create a point on it, record the points as it moves, and draw a pline through them. Used your radius slider to shrink the wheel so it rotated more times as it rolled on fixed track.

Uh huh… Sorta like this green group?


spoked_wheel_2026Jul25a.gh (19.0 KB)

I’m surprised it was so easy. Still, would have been better to post your code.

P.S. Puzzled that you used PLine and that IntCrv doesn’t work instead?

Apparently it was because of duplicate points, though there was no error in R7.


spoked_wheel_2026Jul25b.gh (19.6 KB)

X and Y cooordinates can be calculated using the following expressions:

cycloid-expression.gh (9.7 KB)

Since it was so few added components I thought the screen shot was unambiguous – but you’re right, it’s almost always better to post the .gh.

P.S. Puzzled that you used PLine and that IntCrv doesn’t work instead?

Just habit, I guess. I’m an old dog, trained in the early AutoCAD days. And since most my work connects geometry to digital motors via linear moves between points in machine-space, PLines are my bread and butter.

Strictly speaking, I’m not sure yesterday’s efforts using PFrames (plural) were accurate, but it had advantages - primarily the ‘precision’ slider and the fact that the “arbitrary” curve was divided evenly. But I tried adapted today’s effort to use the rolling wheel with the arbitrary curve and found problems.

  • no ‘precision’ slider :cry:
  • using IntCrv (instead of PLine) rounds the peaks of the cycloid curve, perhaps because of the scale? Or maybe I’ve just made mistakes?


spoked_wheel_2026Jul25c.gh (30.5 KB)

P.S. Perhaps the loops I saw yesterday were due to using IntCrv instead of PLine? And both are inadequate for this type of curve with peaks?

No :“rolling wheel” and I’m not sure how to adapt this to an arbitrary curve? But this way of creating a peaked cycloid curve by joining fragments works well.


cycloid-expression_2026Jul26a.gh (16.9 KB)

Yes I think the arbitrary path is easier solved with a record component…

Curious stuff - I tried to rearrange for t in different ways (which was a little naïve), so that I could plug in grids of points and some weird stuff fell out - I don’t think it’s useful (or correct), but it is moreish

ReverseCycloid.gh (22.6 KB)

edit: I feel like there’s some fun opportunities with hypocycloids as well: Cycloids and Other Parametric Curves | Calculus II

Looks amazing but I don’t understand most of it. I see you used expressions and no rolling wheel. And no obvious curve input?

Input two of Stream Filter requires R8 for Pipe but otherwise looks fine in R7.