Every CS2 recoil pattern is a signal. Decompose it into frequencies and rebuild it one harmonic at a time.
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.