Source Authorship Forensics

Catalyst — human-written, or AI-generated?

A source-level read of AnanyTanwar/Catalyst v3.1.0, contrasted with Stockfish.

Author Anany Tanwar (AnanyTanwar / "Chad AKT") Language C++20 Scope ~8,900 LoC · 149 commits Eval NNUE Analyzed 2026-07-10 Method source read + git history + testing signals Stockfish similarity Strong →
Verdict · Human-Written

Human — and not just human, but expert.

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.

Part of a series applying the same lens: the AI-pasted Luna, the agent-built Owen, and the human-written rudim and Crustik.

1Commits that read like an engine-dev's notebook

The message log is the tell. These are one-idea, individually-tested patches over five-plus weeks — and the ideas are advanced.

Commit messageWhat 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
Why it convinces: you cannot fake 149 incremental, individually-motivated patches carrying this depth. It is the signature of a human running a real testing loop, one idea at a time.

2The code matches the history

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.

3Compare & contrast with Stockfish

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

Bottom line

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.