Stockfish (chess)


Stockfish is a free and open-source chess engine, available for various desktop and mobile platforms. It is developed by Marco Costalba, Joona Kiiski, Gary Linscott, Stéphane Nicolet, Stefan Geschwentner, Joost VandeVondele, and Tord Romstad, with many contributions from a community of open-source developers.
Stockfish is consistently ranked first or near the top of most chess-engine rating lists and is the strongest conventional chess engine in the world. It won the unofficial world computer chess championships in seasons 6, 9, 11, 12, 13, 14, 16 and 18. It finished runner-up in season 5, 7, 8, 15 and 17.
Stockfish is derived from Glaurung, an open-source engine by Romstad released in 2004.

Features

Stockfish can use up to 512 CPU threads in multiprocessor 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, and late move reductions.
Stockfish supports Chess960, which is one feature that was inherited from Glaurung.
The Syzygy tablebase support, previously available in a fork 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.

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 because it was "produced in Norway and cooked in Italy". 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 the favor of Stockfish, which was the more advanced engine at the time. The last Glaurung 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.
2020: "Stockfish+NNUE has broken new ground in computer chess by incorporating a neural network into the already incredibly powerful Stockfish chess engine."

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 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.
, the framework has used a total of more than 1200 years of CPU time to play over 840 million chess games. 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.

Competition results

Participation in TCEC

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 3 and later against Komodo 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 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 blip, Stockfish went on a long winning streak, winning seasons 11, 12, and 13 convincingly. In Season 14, Stockfish faced a new challenger in Leela Chess Zero, but managed to eke out a win by one game. 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, it qualified and defeated Leela in season 18, 53.5-46.5.
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 gained its revenge in the fourth edition, defeating Leela in the final 4.5–3.5.

Stockfish versus Nakamura

Stockfish's strength relative to the best human chess players was most apparent in a handicap match with grandmaster Hikaru Nakamura 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-best human chess player at the time of the match, while Stockfish were 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.
An artificial-intelligence approach, designed by Jean-Marc Alliot of the Institut de recherche en informatique de Toulouse, which compares chess grandmaster moves against that of Stockfish, rated Magnus Carlsen as the best player of all-time, as he had the highest probability of all World Chess Champions to play the moves that Stockfish suggested.

Computer chess tournament

Ever since chess.com hosted its first 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.
EventYearTime ControlsResultRef
CCC 1: Rapid Rumble201815+51st
CCC 2: Blitz Battle20185+21st
CCC 3: Rapid Redux201930+51st
CCC 4: Bullet Brawl20191+21st
CCC 5: Escalation201910+51st
CCC 6: Winter Classic201910+101st
CCC 7: Blitz Bonanza20195+22nd
CCC 8: Deep Dive201915+51st
CCC 9: The Gauntlet20195+2, 10+51st
CCC 10: Double Digits201910+32nd
CCC 11201930+52nd
CCC 12: Bullet Madness!20201+13rd
CCC 13: Heptagonal20205+52nd

Stockfish versus AlphaZero

In December 2017, Stockfish 8 was used as a benchmark to test Google division Deepmind'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 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, but lost the superfinal of the next season to Leela 53.5-46.5. 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, but Stockfish won TCEC Season 18.

Platforms

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.
Stockfish has been a very popular engine for various platforms. On the desktop, it is the default chess engine bundled with the Internet Chess Club interface programs BlitzIn and Dasher. On the mobile platform, it has been bundled with the Stockfish app, SmallFish and Droidfish. Other Stockfish-compatible graphical user interfaces include Fritz, Arena, Stockfish for Mac, and PyChess. As of March 2014, Stockfish is the chess engine used by Lichess, a popular online chess site.

Authors

Author NameGitHub ID
Adityaabsimaldata
Adrian Petrescuapetresc
Ajith Chandy Joseajithcj
Alain SavardRocky640
Alayan FehAlayan-stk-2
Alexander Kure
Alexander PagelLolligerhans
Ali AlZhraniCooffe
Andrew GrantAndyGrant
Andrey Neporadanepal
Andy Duplain
Aram Tumanianatumanian
Arjun Temurnikar
Auguste Pop
Balint Pfliegel
Ben KoshyBKSpurgeon
Bill HenryVoyagerOne
Bojun Guonoobpwnftw, Nooby
Unknownbraich
Brian SheppardSapphireBrand, briansheppard-toast
Bryan Crosscrossbr
Unknowncandirufish
UnknownChess13234
Chris Cainceebo
Dan Schmidtdfannius
Daniel Axtensdaxtens
Daniel Dugovicddugovic
Dariusz Orzechowski
David Zar
Daylen Yangdaylen
UnknownDiscanX
Unknowndouble-beep
Eduardo Cácereseduherminio
Eelco de GrootKingDefender
Elvin Liusolarlight2
Unknownerbsenzaehler
Ernesto Gatti
Linmiao Xulinrock
Fabian Beukemadnight
Fabian Fichterianfab
Unknownfanon
Fauzi Akram DabatFauziAkram
Felix Wittmann
Unknowngamander
Gary Heckmangheckman
Unknowngguliash
Gian-Carlo Pascuttogcp
Gontran Lemairegonlem
Goodkov Vasiliy Aleksandrovichgoodkov
Gregor Cramer
UnknownGuardianRM
Günther Demetzpb00067, pb00068
Guy Vreulsgvreuls
Henri Wiechers
Hiraoka TakuyaHiraokaTakuya
UnknownhomoSapiensSapiens
Hongzhi Cheng
Ivan IvecIIvec
Jacques B.Timshel
Jan Ondrušhxim
Jared KishKurtbusch
Jarrod TorrieroDU-jdto
Jean GauthierOuaisBla
Jean-Francois Romangjromang
UnknownJekaa
Jerry Donald Watsonjerrydonaldwatson
Jonathan CalovskiMysseno
Jonathan DumaleSFisGOD
Jörg Osterjoergoster
Joseph Ellisjhellis3
Joseph R. Prostko
Unknownjundery
Justin BlanchardUncombedCoconut
Kelly Wilson
Ken Takusagawa
Unknownkinderchocolate
Kiran PanditraoKrgp
UnknownKojirion
Leonardo Ljubičić
Leonid Pecheniklp--
Linus Arverlistx
Unknownloco-loco
Lub van den BergElbertoOne
Luca Briviolucabrivio
Lucas Braeschlucasart
Lyudmil Antonovlantonov
Maciej Żenczykowskizenczykowski
Malcolm Campbellxoto10
Mark Tenzer31m059
Unknownmarotear
Matthew Laimatthewlai
Matthew SullivanMatt14916
Michael Anman
Michael ByrneMichaelB7
Michael ChalyVizvezdenec
Michael Stemberamstembera
Michael Whiteleyprotonspring
Michel Van den Berghvdbergh
Miguel Lahozmiguel-l
Mikael Bäckmanmbootsector
UnknownMira
Miroslav FontánHexik
Moez JellouliMJZ1977
Mohammed Litthsqe12
Nathan Ruggnmrugg
Nick Pellingnickpelling
Nicklas PerssonNicklasPersson
Niklas Fiekasniklasf
Nikolay KostovNikolayIT
Nguyen Pham
Ondrej MosnáčekWOnder93
Oskar Werkelin Ahlin
Pablo Vazquez
UnknownPanthee
Pascal Romaret
Pasquale Pigazzinippigazzini
Patrick Jansenmibere
Unknownpellanda
Peter ZsifkovitsCoffeeOne
Praveen Kumar Tummalapraveentml
Rahul Dsilvasilversolver1
Ralph Stößer
Raminder Singh
Unknownrenouve
Reuven Peleg
Richard Lloyd
Rodrigo Exterckötter Tjäder
Ron BritvichBritvich
Ronald de Mansyzygy1, syzygy
Ryan Schmitt
Ryan Takker
Sami Kiminkiskiminki
Sebastian BuchwaldUniQP
Sergei Antonovsaproj
Sergei Ivanovsvivanov72
Unknownsf-x
Shane Boothshane31
Stefano CardanobileStefano80
Steinar Gundersonsesse
UnknownThanar2
Unknownthaspel
Unknowntheo77186
Tom Truscott
Tom Vijlbrieftomtor
Tomasz SobczykSopel97
Torsten Franztorfranz, tfranzer
Tracey Emerybasepr1me
Unai Corzounaiic
Uri Blassuriblass
Vince Negricuddlestmonkey