Stockfish (chess)

Free and open-source chess engine From Wikipedia, the free encyclopedia

Stockfish (chess)

Stockfish is a free and open-source chess engine, available for various desktop and mobile platforms. It can be used in chess software through the Universal Chess Interface.

Quick Facts Developer(s), Initial release ...
Stockfish
Developer(s)The Stockfish developers[1]
Initial releaseNovember 2, 2008; 16 years ago (2008-11-02)
Stable release
17 / September 6, 2024; 5 months ago (2024-09-06)
Repository
Written inC++
Operating systemMicrosoft Windows
macOS
Linux
iOS
Android
TypeChess engine
LicenseGPL-3.0-or-later[2]
Websitestockfishchess.org 
Close

Stockfish has been one of the strongest chess engines in the world for several years;[3][4][5] it has won all main events of the Top Chess Engine Championship (TCEC) and the Chess.com Computer Chess Championship (CCC) since 2020 and, as of 16 November 2024, is the strongest CPU chess engine in the world with an estimated Elo rating of 3642, in a time control of 40/15 (15 minutes to make 40 moves), according to CCRL.[6]

The Stockfish engine was developed by Tord Romstad, Marco Costalba, and Joona Kiiski, and was derived from Glaurung, an open-source engine by Tord Romstad released in 2004. It is now being developed and maintained by the Stockfish community.[7]

Stockfish historically used only a classical hand-crafted function to evaluate board positions, but with the introduction of the efficiently updatable neural network (NNUE) in August 2020, it adopted a hybrid evaluation system that primarily used the neural network and occasionally relied on the hand-crafted evaluation.[8][9][10] In July 2023, Stockfish removed the hand-crafted evaluation and transitioned to a fully neural network-based approach.[11][12]

Features

Summarize
Perspective

Stockfish uses a tree-search algorithm based on alpha–beta search with several hand-designed heuristics, and since Stockfish 12 (2020) uses an efficiently updatable neural network as its evaluation function. It represents positions using bitboards.[13]

Stockfish supports Chess960, a feature it inherited from Glaurung.[14] Support for Syzygy tablebases, previously available in a fork maintained by Ronald de Man, was integrated into Stockfish in 2014.[15] In 2018 support for the 7-man Syzygy was added, shortly after the tablebase was made available. Stockfish supports up to 1024 CPU threads in multiprocessor systems, with a maximum transposition table size of 32 TB.[16]

Stockfish has been a very popular engine on various platforms. On desktop, it is the default chess engine bundled with the Internet Chess Club interface programs BlitzIn and Dasher. On mobile, it has been bundled with the Stockfish app, SmallFish and Droidfish. Other Stockfish-compatible graphical user interfaces (GUIs) include Fritz, Arena, Stockfish for Mac, and PyChess.[17][18] Stockfish can be compiled to WebAssembly or JavaScript, allowing it to run in the browser. Both Chess.com and Lichess provide Stockfish in this form in addition to a server-side program.[19] Release versions and development versions are available as C++ source code and as precompiled versions for Microsoft Windows, macOS, Linux 32-bit/64-bit and Android.

History

Summarize
Perspective

The program originated from Glaurung, an open-source chess engine created by Tord Romstad and first released in 2004. Four years later, Marco Costalba forked the project, naming it Stockfish because it was "produced in Norway and cooked in Italy" (Romstad is Norwegian and Costalba is Italian). The first version, Stockfish 1.0, was released in November 2008.[20][21] For a while, new ideas and code changes were transferred between the two programs in both directions, until Romstad decided to discontinue Glaurung in favor of Stockfish, which was the stronger engine at the time.[22] The last Glaurung version (2.2) was released in December 2008.

Around 2011, Romstad decided to abandon his involvement with Stockfish in order to spend more time on his new iOS chess app.[23] On 18 June 2014 Marco Costalba announced that he had "decided to step down as Stockfish maintainer" and asked that the community create a fork of the current version and continue its development.[24] An official repository, managed by a volunteer group of core Stockfish developers, was created soon after and currently manages the development of the project.[25]

Fishtest

Since 2013, Stockfish has been developed using a distributed testing framework named Fishtest, where volunteers can donate CPU time for testing improvements to the program.[26][27][28]

Changes to game-playing code are accepted or rejected based on results of playing of tens of thousands of games on the framework against an older "reference" version of the program, using sequential probability ratio testing. Tests on the framework are verified using the chi-squared test, and only if the results are statistically significant are they deemed reliable and used to revise the software code.

After the inception of Fishtest, Stockfish experienced an explosive growth of 120 Elo points in just 12 months, propelling it to the top of all major rating lists.[29]

As of February 2025, the framework has used a total of more than 17,000 years of CPU time to play over 8.8 billion chess games.[30]

NNUE

Thumb
Stockfish's NNUE visualized

In June 2020, Stockfish introduced the efficiently updatable neural network (NNUE) approach, based on earlier work by computer shogi programmers.[31][32] Instead of using manually designed heuristics to evaluate the board, this approach introduced a neural network trained on millions of positions which could be evaluated quickly on CPU. On 2 September 2020, the twelfth version of Stockfish was released, incorporating NNUE, and reportedly winning ten times more game pairs than it loses when matched against version eleven.[33][34] In July 2023, the classical evaluation was completely removed in favor of the NNUE evaluation.[35]

Competition results

Summarize
Perspective

Top Chess Engine Championship

Stockfish is a TCEC multiple-time champion and the current leader in trophy count. Ever since TCEC restarted in 2013, Stockfish has finished first or second in every season except one. Stockfish finished second in TCEC Season 4 and 5, with scores of 23–25 first against Houdini 3 and later against Komodo 1142 in the Superfinal event. Season 5 was notable for the winning Komodo team as they accepted the award posthumously for the program's creator Don Dailey, who succumbed to an illness during the final stage of the event. In his honor, the version of Stockfish that was released shortly after that season was named "Stockfish DD".[36]

On 30 May 2014, Stockfish 170514 (a development version of Stockfish 5 with tablebase support) convincingly won TCEC Season 6, scoring 35.5–28.5 against Komodo 7x in the Superfinal.[37] Stockfish 5 was released the following day.[38] In TCEC Season 7, Stockfish again made the Superfinal, but lost to Komodo with a score of 30.5–33.5.[37] In TCEC Season 8, despite losses on time caused by buggy code, Stockfish nevertheless qualified once more for the Superfinal, but lost 46.5–53.5 to Komodo.[37] In Season 9, Stockfish defeated Houdini 5 with a score of 54.5–45.5.[37][39]

Stockfish finished third during season 10 of TCEC, the only season since 2013 in which Stockfish had failed to qualify for the superfinal. It did not lose a game but was still eliminated because it was unable to score enough wins against lower-rated engines. After this technical elimination, Stockfish went on a long winning streak, winning seasons 11 (59–41 against Houdini 6.03),[37][40] 12 (60–40 against Komodo 12.1.1),[37][41] and 13 (55–45 against Komodo 2155.00)[37][42] convincingly.[43] In Season 14, Stockfish faced a new challenger in Leela Chess Zero, ekeing out a win by one point (50.5–49.5).[37][44] Its winning streak was finally ended in Season 15, when Leela qualified again and won 53.5–46.5,[37] but Stockfish promptly won Season 16, defeating AllieStein 54.5–45.5, after Leela failed to qualify for the Superfinal.[37] In Season 17, Stockfish faced Leela again in the superfinal, losing 52.5–47.5. However, Stockfish has won every Superfinal since: beating Leela 53.5–46.5 in Season 18, 54.5–45.5 in Season 19, 53–47 in Season 20, and 56–44 in Season 21.[37] In Season 22, Komodo Dragon beat out Leela to qualify for the Superfinal, losing to Stockfish by a large margin 59.5-40.5. Stockfish did not lose an opening pair in this match.[45] Leela made the Superfinal in Seasons 23 and 24, but was crushed by Stockfish both times (58.5-41.5 and 58-42).[46][47] In Season 25, Stockfish once again defeated Leela, but this time by a narrower margin of 52-48.[48]

Stockfish also took part in the TCEC cup, winning the first edition, but was surprisingly upset by Houdini in the semifinals of the second edition.[37][49] Stockfish recovered to beat Komodo in the third-place playoff.[37] In the third edition, Stockfish made it to the finals, but was defeated by Leela Chess Zero after blundering in a 7-man endgame tablebase draw. It turned this result around in the fourth edition, defeating Leela in the final 4.5–3.5.[37] In TCEC Cup 6, Stockfish finished third after losing to AllieStein in the semifinals, the first time it had failed to make the finals. Since then, Stockfish has consistently won the tournament, with the exception of the 11th edition which Leela won 8.5-7.5.

More information Event, Year ...
Main league
Event Year Time Controls Result Ref.
Season 1 2010 100+10 3rd [50]
Season 2 2011 150+30 5th [51]
Season 4 2013 150+60 2nd [52]
Season 5 2013 120+30 2nd [53]
Season 6 2014 120+30 1st [54]
Season 7 2014 120+30 2nd [55]
Season 8 2015 180+30 2nd [56]
Season 9 2016 180+15 1st [57]
Season 10 2017 90+10 2nd[note 1] [58]
Season 11 2018 120+15 1st [59]
Season 12 2018 120+15 1st [60]
Season 13 2018 120+15 1st [61]
Season 14 2018 120+15 1st [62]
Season 15 2019 120+10 2nd [63]
Season 16 2019 120+10 1st [64]
Season 17 2020 90+5 2nd [65]
Season 18 2020 90+10 1st [66]
Season 19 2020 120+10 1st [67]
Season 20 2020 120+10 1st [68]
Season 21 2021 120+10 1st [69]
Season 22 2022 120+12 1st [70]
Season 23 2022 120+12 1st [71]
Season 24 2023 120+12 1st [72]
Season 25 2023 120+12 1st [73]
Season 26 2024 120+12 1st [74]
Season 27 2024 120+12 1st [75]
Close
More information Event, Year ...
Cup
Event Year Time Controls Result Ref.
Cup 1 2018 30+10 1st [76]
Cup 2 2019 30+5 2nd[note 1] [77]
Cup 3 2019 30+5 2nd [78]
Cup 4 2019 30+5 1st [79]
Cup 5 2020 30+5 1st [80]
Cup 6 2020 30+5 3rd [81]
Cup 7 2020 30+5 1st [82]
Cup 8 2021 30+5 1st [83]
Cup 9 2021 30+5 1st [84]
Cup 10 2022 30+3 1st [85]
Cup 11 2023 30+3 2nd [86]
Cup 12 2023 30+3 1st [87]
Cup 13 2024 30+3 1st [88]
Cup 14 2024 30+3 1st [89]
Close
More information Event, Year ...
Fischer random chess (FRC)
Event Year Time Controls Result Ref.
FRC 1 2019 30+5 1st [90]
FRC 2 2020 30+5 1st [91]
FRC 3 2021 30+5 2nd [92]
FRC 4 2022 30+5 1st [93]
FRC 5 2022 30+3 1st [94]
FRC 6 2023 30+3 1st [95]
Close
More information Event, Year ...
Swiss
Event Year Time Controls Result Ref.
Swiss 1 2021 45+7 2nd [96]
Swiss 2 2021 45+7 2nd [97]
Swiss 3 2022 45+4.5 1st [98]
Swiss 4 2023 30+3 1st [99]
Swiss 5 2023 30+3 1st [100]
Close
More information Event, Year ...
Double fischer random chess (DFRC)
Event Year Time Controls Result Ref.
DFRC 1 2022 30+3 1st [101]
DFRC 2 2023 30+3 1st [102]
Close
More information Event, Year ...
Fischer random double (FRD)
Event Year Time Controls Result Ref.
FRD 1 2023 30+3 1st [103]
Close

Chess.com Computer Chess Championship

Ever since Chess.com hosted its first Chess.com Computer Chess Championship in 2018, Stockfish has been the most successful engine. It dominated the earlier championships, winning six consecutive titles before finishing second in CCC7. Since then, its dominance has come under threat from the neural-network engines Leelenstein and Leela Chess Zero, but it has continued to perform well, reaching at least the superfinal in every edition up to CCC11. CCC12 had for the first time a knockout format, with seeding placing CCC11 finalists Stockfish and Leela in the same half. Leela eliminated Stockfish in the semi-finals. However, a post-tournament match against the loser of the final, Leelenstein, saw Stockfish winning in the same format as the main event. After finishing second again to Leela in CCC13, and an uncharacteristic fourth in CCC14, Stockfish went on a long winning streak, taking first place in every championship since.

More information Event, Year ...
Main events
EventYearTime ControlsResultRef.
CCC 2017 15+2 1st [104]
CCC 1: Rapid Rumble201815+51st[105]
CCC 2: Blitz Battle20185+21st[106]
CCC 3: Rapid Redux201930+51st[107]
CCC 4: Bullet Brawl20191+21st[108]
CCC 5: Escalation201910+51st[109]
CCC 6: Winter Classic201910+101st[110]
CCC 7: Blitz Bonanza20195+22nd[111]
CCC 8: Deep Dive201915+51st[112]
CCC 9: The Gauntlet20195+2, 10+51st[113]
CCC 10: Double Digits201910+32nd[114]
CCC 11201930+52nd[115]
CCC 12: Bullet Madness!20201+13rd[116]
CCC 13: Heptagonal20205+52nd[117]
CCC 14 2020 15+5, 5+2, 1+1 4th [118]
CCC Blitz 2020 2020 5+5 1st [119]
CCC Rapid 2021 2021 15+3 1st [120]
CCC Blitz 202120215+51st[121]
CCC Chess 960 Blitz20215+51st[122]
CCC 16: Rapid202115+31st[123]
CCC 16: Bullet20212+11st[124]
CCC 16: Blitz 2022 5+5 1st [125]
CCC 17: Rapid 2022 15+3 1st [126]
CCC 17: Bullet 2022 2+1 1st [127]
CCC 17: Blitz 2022 5+5 1st [128]
CCC 18: Rapid 2022 15+3 1st [129]
CCC 19: Blitz 2022 5+5 1st [130]
CCC 19: Rapid 2022 15+3 1st [131]
CCC 19: Bullet 2023 1+1 1st [132]
CCC 20: Blitz 2023 3+2 1st [133]
CCC 20: Rapid 2023 10+3 1st [134]
CCC 20: Bullet 2023 1+1 1st [135]
CCC 21: Blitz 2023 3+2 1st [136]
CCC 21: Rapid 2023 10+3 1st [137]
CCC 21: Bullet 2023 1+1 1st [138]
CCC 22: Blitz 2024 3+2 1st [139]
CCC 22: Rapid 2024 10+3 1st [140]
CCC 22: Bullet 2024 1+1 1st [141]
CCC 23: Blitz 2024 3+2 1st [142]
CCC 23: Rapid 2024 10+3 1st [143]
CCC 23: Bullet 2024 1+1 1st [144]
CCC 24: Blitz 2025 3+2 1st [145]
Close
More information Event, Year ...
Bonus
EventYearTime ControlsResultRef.
CPU Blitz Madness 2020 3+2 1st [146]
Trillion-Node Throwdown III 2020 150+5 1st [147]
No-Castle II 2020 5+2 1st [148]
Bullet Chess is Fun 2020 2+1 1st [149]
Checkmate in 4 2020 3+2 1st [150]
Odds Ladder 2020 3+2 1st [151]
Merry Queen Sac 2020 2+1 1st [152]
Budapest Bullet 2020 2+1 2nd [153]
King Gambit Madness 2021 5+5 1st [154]
Drawkiller Update Party 2021 2+1 1st [155]
To Castle Or Not To Castle II 2021 3+2 1st [156]
Eco Mega-Match 2 (part 1) 2021 1+1 1st [157]
Eco Mega-Match 2 (part 2) 2021 1+1 1st [158]
Caro-Kann Special 2021 5+2 1st [159]
King's Indian Defense Special 2021 10+2 2nd [160]
Dutch Defense Special 2021 10+2 1st [161]
Evans Gambit Madness 2021 10+2 2nd [162]
Sicilian Najdorf Special 2021 10+2 1st [163]
Belgian Stew 2021 2+1 1st [164]
Saragossa 2021 2+1 2nd [165]
Double Bongcloud, Rapid 2021 10+2 2nd [166]
The Hillbilly Attack 2021 10+2 3rd [167]
Romantic Openings: Danish Gambit Accepted 2021 3+2 1st [168]
Romantic Openings: Evans Gambit Accepted 2021 3+2 1st [169]
Romantic Openings: Urusov Gambit Accepted 2021 5+2 1st [170]
Romantic Openings: Blackmar-Diemer Gambit 2021 5+2 1st [171]
Romantic Openings: Stafford Gambit 2021 1+2 2nd [172]
Romantic Openings: Calabrese Countergambit 2021 5+2 1st [173]
Romantic Openings: Traxler Counterattack 2021 5+2 2nd [174]
No Black Castling 2022 5+5 1st [175]
Draw Killer Bonus 2022 15+5 1st [176]
Romantic Openings: Wing Gambit 2022 5+2 1st [177]
Chess 324 Bonus 2022 5+2 1st [178]
Classical Cup #1 2023 30+5 1st [179]
Rating Brawl: Fall 2023 2023 1+1 1st [180]
Classical Cup #2 2024 30+5 1st [181]
Classical Cup #3 2024 30+5 1st [182]
Close

Other matches

Summarize
Perspective

Stockfish 5 versus Nakamura

Stockfish's strength relative to the best human chess players was most apparent in a handicap match with grandmaster Hikaru Nakamura (2798-rated) in August 2014. In the first two games of the match, Nakamura had the assistance of an older version of Rybka, and in the next two games, he received White with pawn odds but no assistance. Nakamura was the world's fifth highest rated human chess player at the time of the match, while Stockfish 5 was denied use of its opening book and endgame tablebase. Stockfish won each half of the match 1.5–0.5. Both of Stockfish's wins arose from positions in which Nakamura, as is typical for his playing style, pressed for a win instead of acquiescing to a draw.[183]

Stockfish 8 versus AlphaZero

In December 2017, Stockfish 8 was used as a benchmark to test Google division DeepMind's AlphaZero, with Stockfish running on CPU and AlphaZero running on Google's proprietary Tensor Processing Units. AlphaZero was trained through self-play for a total of nine hours, and reached Stockfish's level after just four.[184][185][186] In 100 games from the starting position, AlphaZero won 25 games as White, won 3 as Black, and drew the remaining 72, with 0 losses.[187] AlphaZero also played twelve 100-game matches against Stockfish starting from twelve popular openings for a final score of 290 wins, 886 draws and 24 losses, for a point score of 733:467.[188][note 2]

AlphaZero's victory over Stockfish sparked a flurry of activity in the computer chess community, leading to a new open-source engine aimed at replicating AlphaZero, known as Leela Chess Zero. By January 2019, Leela was able to defeat the version of Stockfish that played AlphaZero (Stockfish 8) in a 100-game match. An updated version of Stockfish narrowly defeated Leela Chess Zero in the superfinal of the 14th TCEC season, 50.5–49.5 (+10 =81 −9),[37] but lost the Superfinal of the next season to Leela 53.5–46.5 (+14 =79 -7).[37][190] The two engines remained close in strength for a while, but Stockfish has pulled away since the introduction of NNUE, winning every TCEC season since Season 18.

Derivatives

  • YaneuraOu, a strong shogi engine and the origin of NNUE[citation needed]. Speaks USI, a variant of UCI for shogi.[191]
  • Fairy Stockfish, a version modified to play fairy chess. Runs with regional variants (chess, shogi, makruk, etc.) as well as other variants like antichess.[192]
  • Lichess Stockfish, a version for playing variants without fairy pieces.[19]
  • Crystal, which seeks to address common issues with chess engines such as positional or tactical blindness due to over reductions or over pruning, draw blindness due to the move horizon and displayed principal variation reliability.[193]
  • Brainfish, which contains a reduced version of Cerebellum, a chess opening library.[194]
  • BrainLearn, a derivative of Brainfish but with a persisted learning algorithm.[195]
  • ShashChess, a derivative with the goal to apply Alexander Shashin theory from the book Best Play: a New Method for Discovering the Strongest Move.[196][197]
  • Pikafish, a free, open source, and strong UCI Xiangqi engine derived from Stockfish that analyzes xiangqi positions and computes the optimal moves.[198]
  • Houdini 6, a Stockfish derivative that did not comply with the terms of the GPL license.[199][200]
  • Fat Fritz 2, a Stockfish derivative that did not comply with the terms of the GPL license.[199][201][202][200]

Notes

  1. This result takes into account the disqualification of Houdini 6 from TCEC.
  2. The academic paper on this sequence of games does not provide the computer resources allocated to each engine.[189]

References

Further reading

Wikiwand - on

Seamless Wikipedia browsing. On steroids.