TCEC Season 21 summary

From TCEC wiki
Jump to: navigation, search
TCEC Grand Champion Runner-up
Stockfish Leela Chess Zero
56 (19) 44 (7)
TCEC Season 20 summary TCEC Season 22 summary

The 21st season of the Top Chess Engine Championship began on 9 May 2021. The defending champion was Stockfish, which defeated Leela Chess Zero in the previous season's superfinal. The season 21 superfinal was a rematch between the same two engines. Stockfish once again came out ahead, winning by 12 games (won 19, drew 74, lost 7).[1]


There were no new changes to the rules for this season.[2] However, every season will now comprise of four events: the leagues, the Cup, a Fischer Random Chess (FRC) tournament, and a Swiss tournament.[3][4]



Qualification League

Several new engines played in the Qualification League, as well as a few old engines returning with new versions.[5] 8 of the 14 engines advanced to League 4. In its second season, Koivisto addressed the stability issues which plagued it in Season 20 and won the division, but still had one crash. Newcomer Classic Ara, a neural net, came second. Veteran Booot, which also suffered a crash, finished third, and returning engine Cheng finished a solid fourth. The lower promotion places were keenly contested, with two engines missing out despite scoring 50%.

League 4

League 4 began on 19 May 2021. The third-place finisher in QL, Booot, won the league with +13 =9 -0. It profited from a Koivisto crash in a head-to-head game, but also defeated five engines with both the white and black pieces. Rating favorite Halogen finished second, also without losing any games, while QL winner Koivisto took third in spite of the crash. Newcomer ClassicAra was the last engine to promote. The top four engines finished comfortably above their rivals, with two points separating 4th-placed ClassicAra from 5th-placed Monolith.[6]

At the other end of the table, ChessFighter suffered from a bug in its time-management code, such that it lost three games on time. The bug apparently only triggers at long time controls, hence it was not caught in testing.[7]

League 3

Three of the engines that promoted from League 4 also managed to promote from League 3, with Koivisto the only one missing out. They were joined by Minic, which had also promoted from League 3 in the previous season. Minic and Booot cruised through the competition without losing a single game, but Halogen and ClassicAra had to fight hard for promotion. Wasp almost tied ClassicAra in the points after a win over relegation-threatened Marvin in the penultimate round, but promptly lost its next game to Booot, and was left behind. ClassicAra's win over Marvin also had a major impact on the bottom of the table: Pirarucu, Topple and Weiss had already been relegated, but Marvin had a fighting chance for survival until its loss to ClassicAra, which ultimately left it half a point behind its relegation rivals.

League 2

League 2 was played with a Black-favored book, involving many gambit lines. Pedone won League 2 with a +8 score, comfortably above 2nd-placed Nemorino. Nemorino's position as the second promoted engine was under threat until the end of the league, as a cluster of four engines finished no more than a point behind. Former champion Fritz, playing without an update, outperformed expectations and was briefly in the promotion spots before finally being overtaken by Nemorino. Minic had started in the lead after it managed to win two games with White, but faded later. It finished as the only engine to win more games with White than with Black regardless.

At the other end of the table, Seer turned in an uncharacteristically poor performance that its developer attributed to a lack of similar positions in its training set. Its performance apparently worsens substantially when given obscure opening positions such as the ones used in the league.[8] Arasan performed even worse, and was relegated without winning a game.

League 1

League 1 saw Igel surging to an early lead. It had a 1.5-point lead after the first double round robin, conceding no losses. Only Ethereal and RubiChess remained close enough to fight Igel for the league championship. In the second round robin, Ethereal closed the gap with a head-to-head win, while Igel also lost to relegation-threatened rofChade. However, Igel also scored a head-to-head win against RubiChess, and the lead proved too great to overcome. Igel won the division, half a point ahead of Ethereal. RubiChess finished clear third in spite of the loss to Igel, 1.5 points ahead of SlowChess. SlowChess had played a disappointing first round to be -1, but won several openings in the second round to eventually finish on even. League 2 champion Pedone was briefly in contention for first place, but faded and eventually finished fifth. rofChade and Xiphos, both playing without updates, took up two of the bottom three slots. Both engines finished level on points, but Xiphos edged out rofChade on tiebreak courtesy of a head-to-head win. rofChade had been demoted from Premier Division last season, and was demoted again this season.

Premier Division

The Premier Division featured a high-bias opening book, leading to a lot of decisive games. Stockfish played a sterling first round, winning every game with White while successfully drawing with Black, and had a full point lead after 7 games. The streak did not last as Komodo Dragon won the reverse game against Stockfish in the second round, inflicting Stockfish's first loss in the Premier Division. This was followed by last season's runner-up Leela winning an opening against Stockfish in the second double round robin, a victory that put it in clear second, half a point behind Stockfish but a point ahead of Komodo Dragon. Perennial dark horse Stoofvlees acquitted itself well in the first round and was briefly tied with Komodo Dragon and Leela for second spot, but fell behind in the third round and spent the rest of the Division comfortably in fourth place. Newly-promoted Igel played without an update, but still successfully drew every game it played in the first round. Its draw streak was ended in the second round, losing games to Stockfish, Leela and ScorpioNN. After three rounds, it occupied the last two spots in the table along with fellow promoted engine Ethereal, but it played a strong fourth round to win three games and overtake ScorpioNN in the table. Leela also played a strong fourth round, and managed to briefly overtake Stockfish at the start of the fifth round before Stockfish once again regained the lead. At the other end of the table, Ethereal had a miserable sixth round, losing every opening it played except the one against Komodo Dragon, and then suffered a disaster in its seventh round match (playing white) against Igel as it failed to convert a position that, by just move 24, both engines had assessed as completely winning for white. It finished the Premier Division a full four points behind Igel. Both engines were relegated, whilst at the other end of the table, Stockfish finished with a 1 point lead over Leela, meaning the two would advance to the Superfinal. Leela performed very well against Stockfish in the 8 games they played, being the only engine to score more than 50% against it, but an early unexpected loss to Stoofvlees proved decisive in splitting the two engines. Komodo finished a further 3 points back of Leela in third, with Stoofvlees rounding out the top four, holding a comfortable lead over AllieStein in fifth. AllieStein overall had a somewhat below-par showing in the Premier Division, finishing just half a point ahead of ScorpioNN and only recording 6 wins in 56 games.


TCEC organized a special 50-game infrafinal for the 3rd and 4th placed engine, as a precursor to the superfinal. The infrafinal turned out to be incredibly one-sided, with Komodo Dragon comprehensively defeating Stoofvlees 30.5-19.5. Komodo Dragon won all but two of the first ten opening sets, and never relinquished its lead. It finished the infrafinal without conceding any openings. The 11-point margin of victory over 50 games was greater than the TCEC record for most decisive win in the superfinal (+20 over 100 games, by Stockfish over Komodo in Season 12).


In the lead-up to the superfinal, Stockfish's developers trained an NNUE that made use of Leela's evaluations,[9] in apparent violation of TCEC's official guidelines that engines should not use another engine's search and eval code.[10] TCEC's admins decided to allow Stockfish to use this NNUE regardless because it still utilized a lot of original code.[11]

The superfinal was won comprehensively by Stockfish, which put in a dominant display, especially in the second half of the 100-game match. Stockfish drew first blood in the very first opening, successfully winning with White in a Richter-Rauzer Variation of the Sicilian defence in Game 2.[12] However, Leela immediately struck back in Game 3, winning with White in the Benoni defence and then drawing the same position as Black, creating a strong pawn formation that Stockfish was unable to break down. Games 5 and 6 in the Queen's Gambit Declined were both drawn; Stockfish mounted a promising attack in Game 6 with the white pieces, but Leela played an accurate defence to force a theoretically drawn Rook and pawn versus rook endgame. Stockfish scored an excellent win in Game 8 by successfully breaking down Leela's stubborn defence to take the lead in the match, and then scored another win in Game 10 after finding a refutation to Leela's 37...a4? (something that very few engines managed to spot).[13] The next 12 games were all somewhat uneventful draws with neither engine able to create many attacking chances, but Leela played a brilliant Game 23, outplaying Stockfish in the English opening to close the gap to 1 point. In the following game, despite being down a pawn, Leela's defence as Black in the same opening was holding well until it played the highly aggressive 28...Ne3?; it was only after Stockfish's reply of 29. Qe2 followed by 30. Qf2 that Leela realised 28...Ne3 was actually a mistake, as it allowed Stockfish to eventually reach an easily winning same-coloured bishop endgame with two extra pawns. In Games 25 and 26, however, played in the French Defence, Leela once again proved its proficiency in the opening, outclassing Stockfish with the white pieces to cut the deficit to 1 point, and then had no problems holding the reverse.[12]

The superfinal was temporarily halted midway through Game 29 as Typhoon In-Fa (Fabian) struck the coast of Shanghai where the CPU machine resided, causing a software malfunction. At the point which the system stopped working, both Leela (white) and Stockfish (black) were adjudging the position they had reached in Game 29 as drawn, and the TCEC organisers decided to manually adjudicate this game as such, rather than restarting the game entirely or allowing the engines to continue from the position they'd reached. When the match resumed in Game 30, Leela played the position far more aggressively as Black than Stockfish had in Game 29, but although it was able to force Stockfish to give up the exchange to prevent from Leela queening its b-pawn, Stockfish's subsequent counter-play on the kingside was enough to hold a draw. The roles were completely reversed in Game 34[14] in the Robatsch defence, when Stockfish outplayed Leela in the middlegame to the point that Leela had to give up its queen and 3 pawns in exchange for a rook, bishop and knight, but remarkably, Leela managed to hold the position despite Stockfish assessing its winning chances at move 33 as 99.9%. Leela could not pull off the same escape twice, however, as Stockfish proved more adept at handling White's advantageous starting position in Game 40 than Leela had in the reverse, winning the opening and reestablishing a 2-point lead.[15]

Things got even worse for Leela in Game 42 when it chose to castle into an already weakened kingside which Stockfish proceeded to gradually chip away at and eventually force a winning endgame, leaving Leela a full three points down, but it recovered instantly in Game 43 by successfully installing a 'thorn-pawn' on h6, positionally hampering Stockfish's kingside for much of the game and resulting in a comfortable win.[16][12] However, Stockfish scored another win in a slow-burning Game 46, and after four further draws, held a 3-point lead over Leela at the half-way stage of the superfinal. Whilst a commanding lead, Leela was nonetheless still very much in with a chance of closing the gap.

The second half of the superfinal, however, went badly for Leela. It suffered losses in both Games 52 and 60,[17][18] and failed to convert a more advantageous position in Game 55, leaving it a full 5 points down, a deficit that has proven to be insurmountable for any engine at any stage in any past TCEC Superfinal. Leela did pull a game back with an excellent win in Game 61, but in the following 9 games, Stockfish played brilliantly, winning Games 64, 66,[12] 68 and 70, while producing a miracle save in Game 63 (diagram). Of particular note was Stockfish's win in the 217-move-long Game 68 when, working with less than a minute left on its clock in a position which Leela considered a dead draw, Stockfish found a remarkable bishop sacrifice that led to an improbable victory. Leela pulled a point back in Game 71, taking full advantage of a rare Stockfish miscalculation, but with Stockfish still holding a huge 7-point lead with fewer than 30 games remaining, the superfinal was virtually decided.[19]

Neither Leela nor Stockfish managed to make any inroads in the subsequent 13 games, all of which were relatively uneventful draws. However, in Game 85, Stockfish used the big advantage Black had out of the predetermined opening to score the first and (what would turn out to be) only win with the black pieces by either engine in the entire superfinal. It then managed to hold the reverse game, restoring its 8-point lead. Leela blundered a chance to win Game 87 with the white pieces; with both engines assessing the position at just move 27 as almost completely winning for White, Stockfish was expecting Leela to play 28. Re6, keeping Black's kingside cramped, but Leela played the questionable 28. Qxf4??, a decision that gave Stockfish a crucial tempo which made the position a draw. Although Leela did manage to score a win in Game 91 in the King's Indian, Stockfish completely outplayed Leela for the remainder of the superfinal, winning another four games (92, 94, 96,[12] and 98) whilst Leela was unable to muster any other serious attacking chances. What had started as a closely fought match turned into a complete rout, as Stockfish ended the superfinal as the comprehensive winner by a scoreline of 56-44 (+19 -7 =74).


This event is also known as the TCEC Cup 9, and is a 5-round best of 4total points series knockout tournament with a third place playoff, with the top 32 engines in the leagues participating in the cup.[20] However, prior to this event, TCEC received a hardware upgrade and Allie did not work on the new hardware, and so it did not participate in the cup and was replaced with the 33rd-best engine in the leagues, Amoeba.[21]

In each playoff, the engines initially play of 2 pairs of games (4 games, every second with reversed colors and the same opening), and the engine with the greater number of points advances. If the score is still drawn after the four games, then additional pairs of games are played and a decisive pair of games decides the playoff.[22]

Stockfish and Leela fought their way through the brackets to meet each other in the final, with Stockfish again coming out ahead. In the early rounds, however, there were several "cupsets", with the most notable being Nemorino eliminating Stoofvlees in round 2, and Koivisto eliminating Ethereal in round 1. Koivisto further held Leela to 26 draws before finally succumbing in the quarterfinals.


This event is also known as the TCEC Swiss 2, and is an 11-round Swiss-system tournament. All engines that participated in the leagues can participate in the Swiss.[23] However, after the Leagues, TCEC received a hardware upgrade, and neither Allie nor Francesca worked on the new hardware, and so neither engine participated in the Swiss. In addition, the TCEC organisers invited a new engine Zahak to participate in the Swiss. Thus, in total, 44 engines participated in the Swiss.[24]

As expected, Premier Division engines took up most of the top-ranked spots. However, the romance of the Swiss format meant some top engines never played each other, allowing underdogs to sneak into the top places. Komodo Dragon won the Swiss with 15/22 after scoring a crucial 2-0 win over Slowchess. Superfinalists Stockfish and Leela Chess Zero finished equal on 14/22, a full point behind, with Stockfish narrowly beating out Leela on Sonneborn–Berger score. Four engines finished tied 4-7, including league one Revenge (renamed from Pedone), and QL competitor Berserk. At the other end of the table, Cheese and tomitankChess finished well off the pace in the last two spots, with both engines failing to score a win.

Fischer Random Chess

This event, also known as the TCEC FRC 4, started on 20 December 2021.[25] The structure of the tournament is as follows: the engines are equal-distance seeded into four different double round robin leagues, where the top two engines of each league are put into two semi-final leagues each with four teams, where three double round robins are played. The top two engines of each semi-final league get promoted to the final league, where four double round robins are played. The top two engines of the final league are promoted to the superfinal, a series of 50 games, the winner of which is the winner of this tournament. All engines that participated in the leagues and have support for Fischer random chess can participate in the FRC tournament.[26]

There were no real surprises in three of the preliminary leagues, as the premier division engines crushed their competition. The only surprise was in League D. Stoofvlees played with characteristic optimism, sacrificing multiple pieces for a strong attack against Rubichess[27][28] and Minic.[29] Although this aggressive play might have bluffed human players into blundering, both Minic and Rubichess defended cold-bloodedly to win. Stoofvlees missed out on the semifinals on tiebreak as a result.

The semifinals, played without books, led to a lot of draws. In Semileague 1, Ethereal was able tie to Leela in points, but was eliminated on tiebreak. ScorpioNN served up an even bigger surprise in Semileague 2 by pipping Stockfish to win the division on tiebreak.

The finals was played with a high bias book, leading to a lot of 1-0, 1-0 game pairs. ScorpioNN was clearly the weakest of the four engines, and the other three finalists took turns to win openings against it. There was little to separate the other three engines however, and it ultimately came down to a head-to-head win that Leela & Stockfish scored against Komodo Dragon, allowing them to finish one point ahead at the end. In the last game of the finals, between Leela and Stockfish, Leela managed to entomb Stockfish's knight and light square bishop behind its own pawns unable to move, resulting in Stockfish functionally being down three pieces, allowing Leela to win the game.[30][31]

The two engines advanced to the superfinal. Leela surprised by winning the first two openings, but Stockfish eventually fought back to win the match by four games (+13 -9 =28).

Other events

Stockfish and Leela participated in a bonus event where they played with very very long time controls (360+60).[32][33][34]

External links


  1. GM Matthew Sadler, Not 100 draws, no double kills, New In Chess Yearbook 141, December 7, 2021
  2. TCEC Leagues Season Rules
  3. TCEC Leagues Season 21
  4. TCEC at the latest ICGA Journal]
  5. TCEC S21 starts today
  6. Booot kicks into high gear, wins TCEC S21 L4
  7. The failed triumvirate report
  8. connor_m_seer is Seer's developer.
  9. Official release version of Stockfish 14
  10. [ Rules
  12. 12.0 12.1 12.2 12.3 12.4 Levy Rozman, Stockfish vs. Leela: 3600 ELO BATTLE,
  13. [ The Madness Begins! – Stockfish 14 vs Leela C Zero – TCEC Season 21 Superfinal – NAJDORF SICILIAN
  14. Game 34 from TCEC Superfinal of season 21
  15. [ A Blade on the Wade! – Stockfish 14 vs Leela C Zero – TCEC Season 21 Superfinal – Wade Defense
  16. Deepest Bad Bishop Strategy – Leela C Zero vs Stockfish 14 – TCEC Season 21 Superfinal
  17. [ Neural War Strategies – Stockfish 14 vs Leela C Zero – TCEC Season 21 Superfinal – French Defense
  18. Keith Holzmueller, Artificial intelligence comes to the fore in computer chess, September 8, 2021
  19. Leela Chess Zero traps Stockfish in the King's Indian Defense, Simagin variation
  20. Rules
  21. TCEC Cup 9
  22. TCEC Cup Rules
  23. Rules
  24. TCEC Swiss 2
  25. TCEC FRC 4
  26. Rules
  27. Rubichess vs. Stoofvlees, FRC League D, game 6
  28. Stoofvlees vs. Rubichess, FRC League D, game 36
  29. ] Minic vs. Stoofvlees, FRC League D, game 1]
  30. James Canty, The Worst Bishop and Knight Ever
  31. GM Matthew Sadler, Silicon Road: Chess960! Leela Zero - Stockfish TCEC FRC4 FRC #605
  32. Pedro Pinhata, Awards Winners
  33. Matthew Sadler, Silicon Road: Engines and Openings #03. Chilling the Chigorin!
  34. TCEC Season 21 - VVLTC Bonus