Source Authorship Forensics
A source-level read of AnanyTanwar/Catalyst v3.1.0, contrasted with Stockfish.
Catalyst is the work of a developer with real systems and computer-chess depth. The 149-commit history reads like a lab notebook of SPRT-tested micro-optimizations, and the changes reach into territory an AI first-draft never touches: huge-page transposition-table allocation, hand-packed cache-line-aware TT clusters, hash-collision guards, continuation-history tuning. Cherry-picks, rebases, and "fix remnants after cherry-pick" commits show a real, occasionally-messy human workflow.
No AI residue anywhere — no generated-text markers, no agent artifacts, proper GPL headers with a real copyright line. The second committer name, "Chad AKT," shares the author's own email: a personal alter-ego, not a collaborator.
Confidence: High — the expertise is visible in both the history and the code.
The message log is the tell. These are one-idea, individually-tested patches over five-plus weeks — and the ideas are advanced.
| Commit message | What it demonstrates |
|---|---|
| "Allocate TT with MAP_HUGETLB, fall back to THP" | OS-level memory tuning (huge pages) for TT throughput |
| "Switch to 10-byte entries, 3-per-cluster 32-byte layout" | Cache-line-aware transposition-table packing |
| "TT move XOR key verification to prevent hash collision bugs" | The Stockfish lockless-hashing collision guard |
| "Restore plain gravity for conthist updates" | Continuation-history tuning with gravity |
| "Fix best_thread() score priority, alphaRaises LMR cap" | Lazy-SMP thread voting; LMR refinements |
| "Fix threading-refactor remnants after cherry-pick" | A genuine, messy human git workflow |
The source is clean, expert C++20 with hand-tuned constants and explanatory intent.
// search.cpp — log-based Late Move Reduction table // base + scale * log(depth) * log(moveCount) // Quiet moves reduced more aggressively than noisy ones. double lp = std::log(double(d)) * std::log(double(m)); LMRTable[1][d][m] = int(LMR_QUIET_BASE + lp * LMR_QUIET_SCALE);
Alongside it: a dedicated move picker, a threading module (Lazy SMP), time management, hand-written SIMD (simd.h, intrinsics.h), NNUE evaluation, self-play data generation, a benchmark harness, perft and tactics test suites, a .clang-format, CI, and issue templates. This is a fully-outfitted, maintained project — not a one-shot artifact.
| Where it resembles Stockfish |
|---|
| NNUE evaluation; Lazy SMP with shared, lockless-verified TT |
| Full modern search: PVS, NMP, LMR (log table), aspiration, SEE, futility |
| Continuation / capture / quiet histories with gravity and per-table tuning |
| Huge-page TT allocation, cache-line cluster packing, XOR key verification |
| SPRT-style incremental, individually-tested development |
| Where it differs |
|---|
| One expert developer vs hundreds of contributors over decades |
| ~8.9k LoC and a single lineage vs an enormous, mature codebase |
| Younger network / smaller testing fleet than Stockfish's Fishtest |
Catalyst is a human-written engine by a genuinely expert developer — arguably the most systems-sophisticated of the human engines in this series. Its 149 commits document a real, test-driven development loop reaching down to OS-level memory tuning and cache-line-packed data structures, and its code carries the fingerprints of a person who understands both chess programming and the machine underneath. It sits firmly and confidently on the human side of the line.