🧬 Poker DNA — k-mer Fingerprinting for Bot & Collusion Detection

Every player's hand history is a string of actions — fold, check, call, bet, raise, all-in. Shred that string into overlapping length-k chunks ("k-mers"), and two players' betting behavior becomes two sets you can compare with set arithmetic. No hand-alignment, no manual pattern review — just the same trick genomicists use to compare whole genomes without full sequence alignment.
Grounded in "k-mer-based approaches to bridging pangenomics and population genetics" — arXiv:2409.11683. The paper's core move: break each genome into overlapping length-k substrings, then measure genetic similarity via set overlap (Jaccard / MinHash-style sketches) instead of full alignment — the paper shows k-mer dissimilarity tracks true pairwise nucleotide diversity (π) up to π≈0.025 with R²=0.97, and that it can be reliably approximated from compact sketches (counting bloom filters) instead of exact set intersection, which is what makes it cheap enough for pangenome-scale comparison. This demo is that exact mechanism — swap "nucleotide alphabet" for a 6-symbol "action alphabet" (F/X/C/B/R/A) and "genome" for "hand-history log," and a bot-scripted or copy-pasted collusion pair shows up as two suspiciously near-identical genomes.

1 Pick a shingle length k — this is the one dial the whole paper is about

2 Nine players' "genomes" — click a card to inspect its k-mer set

3 Live pairwise similarity matrix

🚨 Detected matches at current k

4 All 36 pairs, ranked