Lissajous curve

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}]
4

wow I’ve been so busy lately and I feel bad for not putting as much time into my processing sketches. here’s one I made right before my life started getting messy.

it’s based on lissajous curves made on oscilloscopes. I made a really cool gif of it but it came out to be a whopping 11M. I have a few creative solutions to reduce the size– one which includes using openFrameworks which I am extremely excited about but alas, no time… so in the meantime here are some development stills~

How could you possibly turn infinity on its side?

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[.5, 1, .02, .03, 0, Pi/4, -.05, 2, 1, 1, 40, 1, .1, t,
{{-.786, .786}, {-1.1, 1.1}}, 500],
{t, 1, 20, 1}]

?