spray pattern fourier

Every CS2 recoil pattern is a signal. Decompose it into frequencies and rebuild it one harmonic at a time.

spray pattern
--
reconstruction error
0
harmonics used
--
total available
harmonics1
animation speed1x
frequency magnitudes
epicycles

Each spray pattern is a sequence of (x, y) offsets. We treat it as a complex signal z[n] = x[n] + iy[n] and compute the DFT.

The k-th harmonic is a circle of radius |Z[k]| rotating at frequency k. Adding harmonics from largest to smallest magnitude rebuilds the pattern. The first few capture the broad shape; the rest add fine detail.

At full harmonics the reconstruction is exact. The interesting part is how few you need to get close.