MODEL GAME THEORY & SAPPHONS · GAME THEORY · COOPERATION · under KEEPER ERIS
Prisoner’s Dilemma · Axelrod’s Tournaments
In one round, defecting always pays more, yet two defectors do worse than two cooperators. Axelrod’s 1980 computer tournaments, with 14 entries and then 62, were both won by the simplest rule: TIT FOR TAT. Here 7 classic strategies replay a 200-move round-robin on the I-13 VM.
Dave (t252): "i love that set up can you build some pages looking into game theory and those sappons you just built, see if you can build some folded stars and stuff"
Dave’s I-13 engine on this page
booting I-13 v0.3…
LIT What the VM computes here: The VM plays every move. Each strategy is an I-13 function of (my last move, their last two moves, grudge flag, coin), and each move is a small block of I-13 statements chained through runChain. That is 28 matches × 200 moves of payoff bookkeeping. JS replays the same matches independently and they must agree; JS only supplies RANDOM’s coin flips.
LIT Payoffs (T, R, P, S) = (5, 3, 1, 0): Temptation > Reward > Punishment > Sucker, and 2R > T + S. Defect strictly dominates, so the only Nash equilibrium of one round is (Defect, Defect), worth 1 each instead of 3. The agents below learn exactly that.
LIT Robert Axelrod (J Conflict Resolution 1980) invited game theorists to submit programs. Round 1: 14 entries plus RANDOM, round-robin matches of 200 moves. Anatol Rapoport’s TIT FOR TAT won (cooperate first, then copy the opponent’s last move). Round 2: 62 entries (63 with RANDOM), matches ending at random; TIT FOR TAT won again.
LIT Axelrod’s lessons: be nice (never defect first), provocable (retaliate), forgiving, and clear. The book is The Evolution of Cooperation (1984).
AMBER Our 7-strategy field is far smaller than Axelrod’s, so the ranking depends on who is in it. With ALL D and RANDOM present, nasty strategies score better than they did in his field, and GRIM, TIT FOR TAT and TIT FOR TWO TATS can tie. Later work shows TIT FOR TAT is not best in every environment (e.g. with noise, Win-Stay Lose-Shift does better).
MODEL Strategies: GRIM is Friedman’s Grudger; RANDOM uses seeded coin flips that JS supplies to the VM as literals.
Lab MODEL interactive, computed on the I-13 VM
moves per match (28 matches including self-play; 200 moves takes a few seconds on the VM)
Sources (browsed Oct 2026)
- Axelrod (1980) More effective choice in the Prisoner’s Dilemma, J Conflict Resolution 24:379 (62 entries)
- Axelrod library: overview of the first tournament (14 + RANDOM, 200 moves)
- Short history of IPD tournaments (round 2 ending probability 0.00346)
- Rapoport, Seale & Colman (2015) Is Tit-for-Tat the answer?, PLOS ONE
MODEL Two agents, as Dave set for every world: PRISONER A and PRISONER B play the one-shot Prisoner’s Dilemma over and over by regret matching (Hart & Mas-Colell 2000), each shifting toward the moves it regrets not having played. Their score is 1 − NashConv/5 of their empirical average play (1 = an exact Nash equilibrium), and the I-13 VM re-computes NashConv from the raw averages every time the score improves. The centrepiece is a folded star {8/3} whose fold rises with the score. Three.js r160 from a pinned CDN, devicePixelRatio capped at 2. Drag to orbit, scroll to zoom.
LIT on load: the seal is recomputed, the page’s facts are re-checked as arithmetic (throws on mismatch), 200 seeded rounds of the two agents must improve their score, the workspace loop logs 5 entries, and the OBJ and SVG exports must be consistent. Then the engine boots, its SHA-256 and regression lab are checked, the VM recomputes the agents’ NashConv, and the page’s VM results are compared with independent JS.
Gallery of kept moments (WebGL snapshots):
Workspace improvement loop: instructions for agents MODEL
- Measure: every 40 rounds, record NashConv of the average play, the score, the rounds since the last improvement and whether regret-matching+ is on.
- Try next: after a 40-round plateau, switch both agents to regret-matching+; if still stuck, halve the exploration ε; if still stuck, forget half the old history. While NashConv falls, keep course (ε × 0.9); if it rises, explore more (ε × 1.25).
- Log back: append {entry, round, measured, tried, ε} to the workspace log (in the JSON export and the list below), and have the I-13 VM recompute NashConv.
- Repeat, forever: never stop improving. Re-check every claim against the engine and the sources before you make it.
Live workspace log:
Shared board MODEL PRISONER A ↔ PRISONER B
Background art: MODEL a generative field seeded from this page’s seal.
proving…
Seal sha256(name|slug|blurb): b4a6b025b06d957259255f0025b335c47a52783530ca8d6f91a03a2d2f052309
↑ Game Theory & Sapphons index · Protein Folding (same engine) · ← ERIS, keeper of Mayhem