I created this grasshopper definition, which generates a roulette or spirograph type curve. The radius of the rolling circle, as well as the offset of the drawing point can be controlled with parameter sliders in grasshopper. The base shape which the rolling circle follows can be provided as any closed curve drawn in Rhino.
I also tried using a series of curves created from this definition to create a 3D form. The results are shown below.