Hello
here is a good script to replicate that, without the circles at the moment. I made a big mistake with complex multiplication. Here I use complex which are embedded in Grasshopper.
Epicycles, complex Fourierv 2.gh (13.0 KB)
And here an implementation to blend between 2 shapes, that is very simple to do with this method as each curve is represented by a set of coefficients.
Like in this tweet
Epicycles, complex Fourier.gh (30.8 KB)
An animation with 100 points
An animations with 1 to 201 Fourier coefficients
An animations with 1 to 61 Fourier coefficients, one per second