Dance
Speaking of vibration modes of a square drum, here are the Chladni figures for linear combinations of the $(20,21)$ and $(21,20)$ vibration modes of the square.
This is entirely in the spirit of The Band Plays On; since that was a while ago, let me quote from that description:
Cribbing from the MathWorld article, the vertical displacement of the $(p,q)$ vibration mode of a $1 \times 1$ square drum is
$u_{pq}(x,y) = (A \cos \omega_{pq} t + B \sin \omega_{pq} t) \sin(p \pi x) \sin (q \pi y)$,
where $\omega_{pq} = \pi \sqrt{p^2 + q^2}$. This is easy enough to turn into a function:
?[p_, q_] := ? Sqrt[p^2 + q^2];
?[x_, y_, t_, p_, q_, A_, B_] := (A Cos[?[p, q] t] + B Sin[?[p, q] t]) Sin[p ? x] Sin[q ? y];
In fact, the same holds for arbitrary rectangles, so long as the product of sines becomes $\sin(p\pi x/L_x)\sin(p \pi y/L_y)$ where $L_x$ and $L_y$ are the lengths of the sides of the rectangle. The nice thing about squares is that you get an extra symmetry: the $(p,q)$ mode and the $(q,p)$ mode have the same frequency, so any linear combination will also form a standing wave.
In this GIF, I'm taking the combination $u = u_{20,21} + c u_{21,20}$ and (by letting $c=\tan \theta$) varying $c$ from $-\infty$ to $\infty$. The curves in the animation are the so-called Chladni figures, or nodal lines of the vibration, meaning the solutions of $u=0$.
Here's the code which does not produce a Manipulate[]
that updates nicely in real time, unfortunately):
With[{p = 20, q = 21, A = 1, B = 0,
cols = RGBColor /@ {"#a2ef44", "#08085e"}},
Manipulate[
ContourPlot[
?[x, y, 0., p, q, A, B] + Tan[(?/2 - .0001) 2 (? - ?/2)/?] ?[x, y, 0., q, p, A, B] == 0,
{x, .01, .99}, {y, .01, .99},
Axes -> False, Frame -> False, PlotPoints -> 50,
ContourStyle -> Directive[CapForm["Round"], Thickness[.01], cols[[1]]],
PlotRangePadding -> -0.01, ImageSize -> 540,
Background -> cols[[-1]]],
{?, 0, ?}]
]