Skip to content

Releases: fsoonaye/chimp

Chimp 1.2 🐒

Choose a tag to compare

@github-actions github-actions released this 19 Apr 09:16

BUGFIX RELEASE: there are no new features since 1.0.0, but two critical search bugs were found and fixed, unlocking lots of hidden Elo that the engine already possessed.

Version 1.0.0 remains available for posterity, as it’s the first release that succeeded in beating me in a chess match.

There is no intention of competing in CCRL with this version, as a more competitive v2 (near grandmaster level) will be out sooner than later, once main search features like aspiration window, LMR, NMP, and RFP are added...

Nonetheless, chimp is out in the wild—go try it!

Strength tests

Chimp 1.2 dominates Chimp 1.0 and matches Stash 12's strength almost exactly, placing it around 1886 Elo.

Chimp v1.2.0 vs Chimp v1.0.0

Win Draw Loss Total
Games 444 27 29 500
Rates 88.8% 5.4% 5.8%

Elo difference: +412.8 ± 50.6
LOS: 100.0%

Chimp v1.2.0 vs Stash 12 (1886 Elo)

Win Draw Loss Total
Games 1271 461 1268 3000
Rates 42.4% 15.4% 42.3%

Elo difference: +0.3 ± 11.4
LOS: 52.4%

Features

Search

  • Negamax Search
  • Alpha-beta Pruning
  • Iterative Deepening
  • Move Ordering
    • Transposition Table
    • MVV-LVA for capture moves
    • Killers for quiet moves
  • Quiescence Search
  • Mate Distance Pruning
  • Principal Variation Search

Evaluation

  • Material Score
    • Piece-Square Tables
    • Bishop Pair Bonus
  • Mobility Score
  • Game Phase Interpolation

SPRT Results

v1.2.0: Bestmove Selection from Incomplete Search
Elo   | 56.18 +- 24.58 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 2.95 (-2.94, 2.94) [0.00, 10.00]
Games | N: 630 W: 317 L: 216 D: 97
Penta | [37, 22, 129, 57, 70]
v1.1.0: Quiescence Search Fix!

We should not return a final score when the generated movelist is empty in quiescence search, as we only generate captures!

Elo   | 296.97 +- 76.62 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 3.03 (-2.94, 2.94) [0.00, 10.00]
Games | N: 186 W: 154 L: 25 D: 7
Penta | [1, 1, 22, 6, 63]

Chimp 1.0 🐒

Choose a tag to compare

@github-actions github-actions released this 12 Apr 19:40
304002e

I'm excited to announce Chimp 1.0! My primary goal for the first proper release was to develop an engine strong enough to beat me in a 10-game chess match — and Chimp has finally done it.

This release also follows a significant source code cleanup and git tree restructuring to establish a stable foundation for future development. I'm releasing early to document progress from this point onward, thus the monkey will only get stronger from here.

While Chimp is still evolving, current strength testing shows it beating Stash 9 (~1300 ELO) but losing to Stash 10 (~1600 ELO), placing it roughly in this ELO range.
Future releases will include more rigorous and detailed ELO benchmarks using SPRT and head-to-head testing.

Special thanks to the chess programming discord servers mentioned in the README, and particular gratitude to Disservin for his excellent Chess Library in C++.

Features

Search

  • Negamax Search
  • Alpha-beta Pruning
  • Iterative Deepening
  • Move Ordering
    • Transposition Table
    • MVV-LVA for capture moves
    • Killers for quiet moves
  • Quiescence Search
  • Mate Distance Pruning
  • Principal Variation Search

Evaluation

  • Material Score
    • Piece-Square Tables
    • Bishop Pair Bonus
  • Mobility Score
  • Game Phase Interpolation

SPRT Results

v0.9.0: Mobility Eval Score and Bishop Pair Bonus
Elo   | 304.28 +- 77.50 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 3.11 (-2.94, 2.94) [0.00, 10.00]
Games | N: 186 W: 156 L: 25 D: 5
Penta | [0, 2, 23, 3, 65]
v0.8.1: Codebase Cleanup
Elo   | 1.20 +- 7.53 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 2.94 (-2.94, 2.94) [-10.00, 0.00]
Games | N: 5498 W: 2366 L: 2347 D: 785
Penta | [380, 318, 1333, 339, 379]
v0.8.0: Killers
Elo   | 509.20 +- 185.12 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=16MB
LLR   | 2.98 (-2.94, 2.94) [0.00, 10.00]
Games | N: 158 W: 149 L: 7 D: 2
Penta | [0, 0, 7, 2, 70]
v0.6.0: Quiescence Search + SEE
Elo   | 351.67 +- 91.45 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=16MB
LLR   | 3.09 (-2.94, 2.94) [0.00, 10.00]
Games | N: 180 W: 155 L: 17 D: 8
Penta | [1, 0, 15, 8, 66]
v0.5.0: MVV-LVA
Elo   | 245.11 +- 65.34 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 3.01 (-2.94, 2.94) [0.00, 10.00]
Games | N: 204 W: 158 L: 34 D: 12
Penta | [3, 2, 26, 10, 61]
v0.4.0: PeSTO Evaluation
Elo   | 246.60 +- 50.92 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.95 (-2.94, 2.94) [0.00, 10.00]
Games | N: 190 W: 130 L: 14 D: 46
Penta | [0, 3, 15, 35, 42]
v0.3.0: Transposition Table
Elo   | 81.48 +- 23.95 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.98 (-2.94, 2.94) [0.00, 10.00]
Games | N: 330 W: 111 L: 35 D: 184
Penta | [1, 18, 66, 64, 16]
v0.2.0: Alpha-Beta Pruning
Elo   | 21.74 +- 9.36 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.97 (-2.94, 2.94) [0.00, 10.00]
Games | N: 624 W: 63 L: 24 D: 537
Penta | [0, 18, 238, 55, 1]
v0.1.0: Random Move Generator
Elo   | 135.39 +- 17.81 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 6.15 (-2.94, 2.94) [0.00, 10.00]
Games | N: 512 W: 192 L: 2 D: 318
Penta | [0, 2, 99, 118, 37]