Mathematica code:
G[X_, Y_, Z_, S_, p_, q_, r_, a_, b_, c_, N_, e_, t_, PR_, IS_] :=
Graphics[
Table[
Disk[
{X*Cos[a (e*t + n)*2 Pi/N + p], Y*Cos[b (e*t + n)*2 Pi/N + q]},
Z*Cos[c (e*t + n)*2 Pi/N + r*t*2 Pi] + S],
{n, 1, N}],
PlotRange -> PR, ImageSize -> IS]
Manipulate[
G[.75, 1, .02, .03, 0, Pi/2, .04, 3, 1, 4, 100, .08, t,
{{-.857, .857}, {-1.2, 1.2}}, 500],
{t, 1, 25, 1}]
(via tiedyeskin)