Crosshair movement in an FPS is a trajectory on the 2-sphere. Legit players produce smooth, spread-out distributions. Aimbots produce tight clusters with discontinuous jumps.
Every crosshair direction in an FPS game is a unit vector (x, y, z) on S², the unit sphere. When a player aims at a target, their crosshair samples follow a von Mises-Fisher distribution:
f(x; μ, κ) = C(κ) · exp(κ · μ¹x)
where μ is the mean direction (target), κ controls concentration (higher = tighter aim), and C(κ) is the normalizing constant.
Legit players have κ ~ 10-50 with smooth trajectories between samples. Aimbots have κ > 200 with discontinuous jumps (the crosshair teleports to the target). This topological signature — gaps in the trajectory's path on the sphere — is what the anti-cheat detects.
We compute persistent homology on the point cloud of aim samples. Legit aim produces a single connected component that grows smoothly. Aimbot aim produces multiple tight clusters separated by large gaps (one per target the aimbot locked onto), with high H0 persistence. The ratio of inter-cluster to intra-cluster distance is the detection signal.