Stockfish is a
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
chess engine
In computer chess, a chess engine is a computer program that analyzes chess or chess variant positions, and generates a move or list of moves that it regards as strongest.
A chess engine is usually a back end with a command-line interface wit ...
, available for various desktop and mobile platforms. It can be used in
chess software through the
Universal Chess Interface
The Universal Chess Interface (UCI) is an open communication protocol that enables chess engines to communicate with user interfaces.
History
In November 2000, the UCI protocol was released. Designed by Rudolf Huber and Stefan Meyer-Kahlen, the au ...
.
Stockfish has consistently ranked first or near the top of most chess-engine rating lists and, as of October 2022, is the strongest CPU chess engine in the world. It has won the
Top Chess Engine Championship
Top Chess Engine Championship, formerly known as Thoresen Chess Engines Competition (TCEC or nTCEC), is a computer chess tournament that has been run since 2010. It was organized, directed, and hosted by Martin Thoresen until the end of Season 6; f ...
13 times and the Chess.com Computer Chess Championship 19 times.
Stockfish is developed by Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad, Stéphane Nicolet, Stefan Geschwentner, and Joost VandeVondele, with many contributions from a community of open-source developers.
It is derived from Glaurung, an open-source engine by Tord Romstad released in 2004.
Features
Stockfish can use up to 1024
CPU threads in
multiprocessor
Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. There ar ...
systems. The maximal size of its
transposition table is 32 TB. Stockfish implements an advanced
alpha–beta search and uses
bitboards. Compared to other engines, it is characterized by its great search depth, due in part to more aggressive
pruning
Pruning is a horticultural, arboricultural, and silvicultural practice involving the selective removal of certain parts of a plant, such as branches, buds, or roots.
The practice entails the ''targeted'' removal of diseased, damaged, dead, ...
and
late move reductions. , Stockfish 15 (4-threaded) achieves an
Elo rating
The Elo rating system is a method for calculating the relative skill levels of players in zero-sum games such as chess. It is named after its creator Arpad Elo, a Hungarian-American physics professor.
The Elo system was invented as an improved c ...
of 3540 on the CCRL 40/15 benchmark.
Stockfish supports
Chess960
Fischer random chess, also known as Chess960 (often read in this context as 'chess nine-sixty' instead of 'chess nine hundred sixty'), is a variation of the game of chess invented by the former world chess champion Bobby Fischer. Fischer anno ...
, which is one feature that was inherited from Glaurung. The
Syzygy tablebase support, previously available in a
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
maintained by Ronald de Man, was integrated into Stockfish in 2014. In 2018 support for the 7-men Syzygy was added, shortly after becoming available.
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 interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, ins ...
s (GUIs) include
Fritz, Arena, Stockfish for Mac, and
PyChess
''PyChess'' is a free software chess client developed for GNU. It allows users to play offline or online via the Free Internet Chess Server (FICS). PyChess also incorporates a built-in chess engine, which in contrast to most other chess AIs is wr ...
. Stockfish can be compiled to
WebAssembly
WebAssembly (sometimes abbreviated Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environmen ...
or
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
, allowing it to run in the browser. Both
chess.com and
Lichess
Lichess (; ) is a free and open-source Internet chess server run by a non-profit organization of the same name. Users of the site can play online chess anonymously and optionally register an account to play rated games. Lichess is ad-free and ...
provide Stockfish in this form in addition to a server-side program.
Release versions and development versions are available as
C++ source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
and as precompiled versions for
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
32-bit/64-bit and
Android.
History
The program originated from ''Glaurung'', an open-source chess engine created by Romstad and first released in 2004. Four years later, Costalba, inspired by the strong open-source engine, decided to fork the project. He named it ''
Stockfish
Stockfish is unsalted fish, especially cod, dried by cold air and wind on wooden racks (which are called "hjell" in Norway) on the foreshore. The drying of food is the world's oldest known preservation method, and dried fish has a storage lif ...
'' because it was "produced in Norway and cooked in Italy" (Romstad is Norwegian, Costalba is Italian). The first version, Stockfish 1.0, was released in November 2008.
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 more advanced engine at the time. 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. 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. An official repository, managed by a volunteer group of core Stockfish developers, was created soon after and currently manages the development of the project.
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.
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 test
The sequential probability ratio test (SPRT) is a specific sequential hypothesis test, developed by Abraham Wald and later proven to be optimal by Wald and Jacob Wolfowitz. Neyman and Pearson's 1933 result inspired Wald to reformulate it as a seq ...
ing. Tests on the framework are verified using the
chi-squared test
A chi-squared test (also chi-square or test) is a statistical hypothesis test used in the analysis of contingency tables when the sample sizes are large. In simpler terms, this test is primarily used to examine whether two categorical variables ...
, 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. In Stockfish 7, Fishtest author Gary Linscott was added to the official list of authors in acknowledgement of his contribution to Stockfish's strength.
, the framework has used a total of more than 8650 years of CPU time to play over 5.1
billion chess games.
NNUE
In June 2020, an
efficiently updatable neural network (NNUE) fork introduced by
computer shogi programmers called Stockfish NNUE was discussed by developers. In July 2020 chess news reported that Stockfish NNUE had "broken new ground in computer chess by incorporating a neural network into the already incredibly powerful Stockfish chess engine." A NNUE
merge into Stockfish was then announced and development builds became available.
On 2 September 2020, the twelfth version of Stockfish was released, incorporating the aforementioned neural network improvement. According to the blog announcement, this new version "plays significantly stronger than any of its predecessors", typically winning ten times more game pairs than it loses when matched against version eleven.
Competition results
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. In TCEC Season 4 and 5, Stockfish finished runner-up, with Superfinal scores of 23–25 first against
Houdini
Harry Houdini (, born Erik Weisz; March 24, 1874 – October 31, 1926) was a Hungarian-American escape artist, magic man, and stunt performer, noted for his escape acts. His pseudonym is a reference to his spiritual master, French magician ...
3 and later against
Komodo
Komodo may refer to:
Computers
* Komodo Edit, a free text editor for dynamic programming languages
* Komodo IDE an integrated development environment (IDE) for dynamic programming languages
* Komodo (chess), a chess engine
People
* Komo ...
1142. 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".
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.
Stockfish 5 was released the following day. In TCEC Season 7, Stockfish again made the Superfinal, but lost to Komodo with the score of 30.5–33.5.
In TCEC Season 8, despite losses on time caused by buggy code, Stockfish nevertheless qualified once more for the Superfinal, but lost the ensuing 100-game match 46.5–53.5 to Komodo.
In Season 9, Stockfish defeated Houdini 5 with a score of 54.5 versus 45.5.
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 vs. 41 against Houdini 6.03),
12 (60 vs. 40 against Komodo 12.1.1),
and 13 (55 vs. 45 against Komodo 2155.00)
convincingly. In
Season 14, Stockfish faced a new challenger in
Leela Chess Zero, but managed to eke out a win by one game (50.5–49.5).
Its winning streak was finally ended in
season 15, when Leela qualified again and won 53.5–46.5,
but Stockfish promptly won
season 16, defeating AllieStein 54.5–45.5, after Leela failed to qualify for the superfinal.
In
season 17, Stockfish faced Leela again in the superfinal, losing 52.5–47.5. However, Stockfish convincingly defeated Leela in the next four superfinals: 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.
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.
Stockfish recovered to beat Komodo in the third place playoff.
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.
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.
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
Rybka is a computer chess engine designed by International Master Vasik Rajlich. Around 2011, Rybka was one of the top-rated engines on chess engine rating lists and won many computer chess tournaments.
After Rybka won four consecutive Wo ...
, and in the next two games, he received White with pawn odds but no assistance. Nakamura was the world's fifth-best 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.
Stockfish 8 versus AlphaZero
In December 2017, Stockfish 8 was used as a benchmark to test
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
division
DeepMind
DeepMind Technologies is a British artificial intelligence subsidiary of Alphabet Inc. and research laboratory founded in 2010. DeepMind was acquired by Google in 2014 and became a wholly owned subsidiary of Alphabet Inc, after Google's restru ...
's
AlphaZero, with each engine supported by different hardware. AlphaZero was trained through self-play for a total of nine hours, and reached Stockfish's level after just four.
In 100 games from the normal starting position, AlphaZero won 25 games as White, won 3 as Black, and drew the remaining 72, with 0 losses.
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.
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),
but lost the superfinal of the
next season to Leela 53.5–46.5 (+14 =79 -7).
The two engines remain very close in strength to each other even as they continue to improve: Leela defeated Stockfish in the superfinal of
TCEC Season 17
The 17th season of the Top Chess Engine Championship began on 2 January 2020 and ended on 22 April 2020. TCEC Season 16 3rd-place finisher Leela Chess Zero won the championship, defeating the defending champion Stockfish 52.5-47.5 in the superfin ...
, but Stockfish won
TCEC Season 18
The 18th season of the Top Chess Engine Championship began on 4 May 2020 and ended on 3 July 2020. The defending champion was Leela Chess Zero, which defeated Stockfish in the previous season's superfinal. The two season 17 superfinalists qualifi ...
,
TCEC Season 19 The 19th season of the Top Chess Engine Championship began on 6 August 2020 and ended on 16 October 2020. The season 19 superfinal was a rematch between Stockfish and Leela Chess Zero, the same two engines that had contested the superfinal in the pr ...
,
TCEC Season 20
The 20th season of the Top Chess Engine Championship began on 1 December 2020 and ended on 1 February 2021. The defending champion was Stockfish, which defeated Leela Chess Zero in the previous season's superfinal. The season 20 superfinal was a ...
, and
TCEC Season 21, each time defeating Leela in the superfinal.
Derivatives
* YaneuraOu, a strong shogi engine and the origin of NNUE. Speaks USI, a variant of
UCI for shogi.
* Fairy Stockfish, a version modified to play
fairy chess. Runs with regional variants (chess, shogi,
makruk, etc.) as well as other variants like
antichess.
*
Lichess
Lichess (; ) is a free and open-source Internet chess server run by a non-profit organization of the same name. Users of the site can play online chess anonymously and optionally register an account to play rated games. Lichess is ad-free and ...
Stockfish, a version for playing variants without fairy pieces.
* 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.
* Brainfish, which contains a reduced version of Cerebellum, a chess opening library.
* BrainLearn, a derivative of Brainfish but with a persisted learning algorithm.
* ShashChess, a derivative with the goal to apply Alexander Shashin theory from the book Best Play: a New Method for Discovering the Strongest Move.
* Fat Titz, a fork of CFish which name is a pun of Fat Fritz 2 with a HalfKAv2-2048x2-64-64-1 evaluation network, which contains 4 times the knowledge of Stockfish 14. It was trained partially on Lc0 data, which gives a unique positional style, while still preserving the tactical sharpness of Stockfish.
*
Houdini
Harry Houdini (, born Erik Weisz; March 24, 1874 – October 31, 1926) was a Hungarian-American escape artist, magic man, and stunt performer, noted for his escape acts. His pseudonym is a reference to his spiritual master, French magician ...
6, an alleged Stockfish 8 derivative without providing the sources on request, violating the GPL license.
* Fat Fritz 2, an alleged Stockfish 12 derivative without providing the sources on request, violating the GPL license.
See also
*
List of free and open-source software packages
Notes
References
Further reading
Interview with Tord Romstad (Norway), Joona Kiiski (Finland) and Marco Costalba (Italy) programmers of Stockfish
External links
*
*
WebAssembly port of StockfishDevelopment versions built for Linux and WindowsDevelopers forumStockfish Testing Framework
{{DEFAULTSORT:Stockfish (Chess)
2008 software
Chess engines
Free software programmed in C++
Distributed computing projects
Software using the GPL license
Applied machine learning