top of page

Fruit - Oldie Goldie

Fruit is a chess engine that was created by Fabien Letouzey. Its first version, Fruit 1.0, was released in March 2004.


It was one of the first open source engines, and its code was publicly available. In the middle of the first decade of the 21st century, Fruit became a reference and source of inspiration for many developers who created chess engines.


Image generated by Darius using Microsoft Bing Image Creator


Fruit's source code served as a base for developing other engines, from which innovations, optimizations, and ideas were drawn. This acted as a kind of “fruit planting”, where the Fruit code was the seed that gave rise and “development shot” to new or existing projects.

In this way, many chess engines were created, some of which have achieved significant success in the world of computer chess.


Like Rybka - who was stripped of all its titles... But about that in a moment.



The power of Fruit's influence on computer chess since 2005 has been enormous!


It all started in earnest with Fruit version 2.1 released in 2005.


But before we get to that, it's worth noting that although earlier versions of Fruit were developed over a relatively short period of time (2004), its strength regularly grew significantly from version to version.



In those days, the increase in strength of each successive version of the chess engine 10 or 20 Elo was a normal and approved thing. A 50 Elo increase in strength was a very big step forward, especially for the world's top chess engines. Fruit, on the other hand, in each successive version was stronger by about 100 Elo. And that was something special. Fruit was becoming more powerful.


Fruit began to win over virtually every other chess engine including commercial giants such as, for example, multiple World Champion Shredder, award-winning Junior and Hiarcs, Sjeng, The King (ChessMaster), Gandalf. The free and respected Crafty, the ambitious Phalanx and many other non-commercial engines can also be included in the list of the defeated.


What a free chess engine “from nowhere” created by one man is capable of is shown by the results of the 2005 World Computer Chess Championship held in Reykjavík.


Source: CPW


Fruit took an excellent second place by becoming the World Vice-Champion, ahead of all the strongest competitors, only second to the Zappa chess engine.


Fruit was the only one to run on a computer equipped with a single CPU. All of its competitors played using multi-processor machines, such as Junior and Shredder using a 4-CPU. This fact further underscored the success Fruit had, beating its opponents with more computing resources.



Open source - the seed of creativity.


This could not go unnoticed.

Like "mushrooms after the rain" strong chess engines appeared, which drew the best from Fruit's source code.


At that time, the vast majority of chess engines were commercialized, only a few like Fruit and, for example, Crafty, Phalanx were free and their authors made the source codes available under the GPL license.


What a surprise it must have been in the world of computer chess to see such a powerful chess engine emerge, with its author sharing his ideas, techniques and programming methods. And it works!

Toga, Lion, Patriot, Strelka, Cyclone and so many other engines benefited from the fruits of Mr. Fabien Letouzey's work.


In 2006, Fruit dominated the top of the rating lists.

Mr. Fabien Letouzey worked intensively resulting in a leadimng position among the strongest.



Subsequent versions got stronger and stronger. Fruit 2.2.1 took the top spot on the most respected SSDF chess engine rating list, clearly leaving behind such commercial giants as Shredder, Fritz, Junior as well as Gandalf, Pro Deo, Tiger and ChessMaster. Even Hiarcs had to acknowledge its superiority.


The dimension of success for Fruit and its author was amazing. Fruit used new, innovative and effective programming techniques and methods. In addition, the C source code was written in an orderly manner and its structure was very clear.



Do you know...


That programmers and chess engine developers, although they had access to Fruit's source code, wondered on the computer chess forums what makes Fruit such a powerful chess engine?


Surprisingly, experts in the field, although they understood the C language, understood the source code and had experience in developing chess engines, it was a big challenge for them to understand the ideas behind Fruit, which made Fruit so strong.



Fruit is a chess engine that has been one of the most significant driving forces behind the development of the power and capabilities of a multitude of chess engines.


Rybka controversy


The strength and beauty of open-source software, among other things, is that anyone can use, enrich, improve - develop their project and also profit from it.

The condition is to comply with the license provisions of the software in question, such as GPL 3.


Unfortunately, not all authors of chess engines have respected this requirement.

A negative example of this is the Rybka chess engine, whose author Vasik Rajlich was accused of violating the GPL by failing to disclose that he used Fruit source code in his chess engine. The GPL requires that any modifications made from GPL-licensed code must also be made publicly available under the terms of the same license.


****In December 2005, Mr. Vasik Rajlich gave an interview to Mr. Alexander Schmidt for uciengines.de, in which, among other things, he said, quote:

"(...) I went through the Fruit 2.1 source code forwards and backwards and took many things."


As a result of the investigations, *in June 2011, the ICGA (The International Computer Games Association) disqualified and banned Rybka and her programmer Vasik Rajlich from participating in previous and future World Computer Chess Championships.


The ICGA has therefore decided as follows:

  • Vasik Rajlich is hereby disqualified from the World Computer Chess Championships (WCCC) of 2006, 2007, 2008, 2009 and 2010.

  • The 2nd-3rd place awarded to the program called “Rajlich” in the 2006 WCCC is hereby annulled, sole 2nd place is awarded to the program Shredder, and 3rd place in that event is awarded to the program Zappa.

  • The 1st places and World Computer Chess Champion titles awarded to the program Rybka in the 2007, 2008, 2009 and 2010 WCCCs are hereby annulled, and all the other programs that competed in those events are moved up in the final tournament standings by one place.


Thanks to its author, the Rybka chess engine was stripped of all its titles, was erased from the list of winners and its creator was covered in disgrace.

As we can see from this example, violating the licensing rules of open-source software can lead to the most serious consequences.


Unfortunately, this kind of licensing violation situation arose again after 2011, one of which I described in the article Fat Fritz 2 - free for all under the GNU GPL 3.0 license.

And in this case, too, violations of licensing provisions related to the use of open-source software had consequences, this time in court.



What you sow, you reap.


Without going into the details of programming techniques, Fruit's source code contained breakthroughs, which is what allowed this engine to climb to heights in the world of computer chess and resulted in the inspiration for new powerful engines.


Image generated by Darius using Microsoft Bing Image Creator


Just how fertile were and are the ideas sown by Fruit in other chess engines, in clones and in subsequent versions of frut developed by other developers, can be seen in the CCRL rating list, which includes as many as 34 (!) fruits of the original ideas contained in Fruit 2.1.


Source: CCRL - 2024-01-16


The strongest among them, Dark Toga 1.1, achieved 3207 Elo, as much as 515 Elo more than Fruit 2.1, with which it all began (according to the CCRL measurement scale).


The new engines, which used Fruit's source code, were equipped with additional performance parameters and capabilities in addition to additional chess knowledge. For example, the Gambit Fruit features a sharp and uncompromising style of play, Toga III already uses a neural network, Dark Toga 1.1 can use multiple CPUs.



The end of Fruit's development by Fabien Letouzey.


Just 2 years after the release of Fruit 2.1, author Mr. Fabien Letouzey decided to end his involvement in Fruit development as lead programmer.


As I have been following the history of the Fruit chess engine, I became sad when I found out about this.


What a great pity and loss to the world of computer chess that such a beautiful and prolific mind stopped developing his work. It is only up to speculation how Fruit would be played today, what level it would have reached, how many more developers it would have inspired had its development continued.



GNU Chess 6


In 2011, GNU Chess transitioned to version 6, which is based on Fabien Letouzey's Fruit 2.1 chess engine.


This should certainly be considered a great honor, because GNU Chess is the open source chess engine of the Free Software Foundation.


***"(...) GNU Chess was initially written by Stuart Cracraft in the mid 80s, joined by John Stanback who contributed his own code to GNU Chess 2 and 3 which was laboriously and meticulously well-written. Dozens of developers have enhanced GNU Chess over the times. Version 5 was a complete rewrite by Chua Kong Sian, incorporating his chess program Cobalt and Cracraft's Gazebo. Fabien Letouzey is the primary author of GNU Chess 6, based on Fruit 2.1."


GNU Chess is a project still under development today. As of the date of writing this article (January 2024), the current version is GNU Chess 6.2.9.



10 years after the release of Fruit 1.0


In 2014, exactly on March 17, which is 10 years since the publication of the first version of Fruit, Mr. Fabien Letouzey shared his new chess engine called Senpai 1.0 as a free chess engine under the GNU GPL 3 license.


Senpai 1.0 is able to use multiple processors and is much more advanced than Fruit 2.1. It outperformed it by about 300 Elo (the version using 4-CPU) playing at 3050 Elo.


In 2017, Senpai 2.0 came out, which was stronger by another 100 Elo which translated into a strength in the range of 3150 Elo.


I would like to emphasize that Senpai 2.0 does not enjoy the benefits of a neural network.

Let me guess that if Mr. Fabien Letouzey were still actively developing Fruit or Senpai, today we could enjoy a chess engine playing at least at the level of Stockfish or even higher.



2024 - 20 years after the release of Fruit 1.0


With full consciousness I wrote this article in 2024. Soon it will be exactly 20 years since a very important event in the world of computer chess, the appearance of Fruit 1.0. I am glad that in this modest way I can make my small contribution to the commemoration of this remarkable chess engine.


Will a new and even more powerful engine, the fruit of the work of Mr. Fabien Letouzey, appear this time too in 2024 ?

I hope so, and such hope I leave to you dear reader :)



How strong is Fruit 2.1 today ?


To determine this, I decided to compile the Fruit 2.1 source code in a contemporary development environment and give this engine a few thousand games a play.

Fruit 2.1 used a MacBook Pro with an Apple Silicon M1 CPU.



Source: MCERL (ongoing)



2723 Elo, is the playing strength of an engine created in 2005, an engine that at the time was winning over the strongest of its computer rivals.


I will venture to speculate that Fruit 2.2.1 and its 2853 Elo and first place on the SSDF rating list in 2006, it's as if today (January 2024) the chess engine achieved about 3900 Elo in MCERL (Mac Chess Engines Rating List). As a reminder, the strongest development version of Stockfish from January 2024 achieves a score of 3850 Elo in the MCERL, in which several hundred chess engines participate.



So let's see how Fruit 2.1 plays against modern computer opponents.


Playing conditions same as in MCERL: 1 minute / game + 0.6 seconds / move


Game #1

White; Fruit 2.1, MCERL: 2723 Elo

Black: Carp 2.0, MCERL: 3132 Elo


Carp, is a chess engine written in the Rust language. Its successive development deserves respect, which is reflected in the MCERL rating list, where five versions of it are playing: from one of the first Carp 1.1.0 (2287 Elo), to Carp 3.0.1 (3328 Elo).

In this game, Fruit 2.1 is up against Carp 2.0.0 - the first version of this engine to use a neural network.


409 Elo difference in strength! How to win against a much stronger opponent?


**Black's move.


Carp with solid and balanced play has developed an advantage for itself on the chessboard. It leveled white's attacks and can look to the future with optimism, having a strong Pawns structure in the center. Unfortunately for it, the advantages gained were paid with a long time to think.

Black had only 1 second left to complete the game.


34...Qa7??

A catastrophic mistake resulting from insufficient time to think.



Dear reader, there is a tactical puzzle before you.

I invite you to look for one move by white, after which black will be in a hopeless situation.


......




..................







....................................




35.c5!

Yes!



If you managed to find this move, congratulations :)


The white Pawn move wrecks black's position by exploiting a weakness on the g8 square - where checkmate threatens.


35...Rc4


Carp is forced to give up Rook for free to avoid immediate defeat.

Other moves such as 35...Qa8 or 35...Qb8 also led to the loss of Rook through 36.Rxa4.


36.cxb6



36...Qb7

It sets a trap.


37.Rxc4!



If Fruit had taken the black Rook 37.Qxc4? then after 37...c5+ there would have been an equalization of the position 38.Re4 d5!


White gains a significant material advantage.

The game ended with a victory for Fruit.


As we have seen, it is possible to win against a much stronger opponent even with an inferior position. It is enough to lead to a situation that will create little time for thinking ;)

This is how Fruit 2.1 won this game.


Below this game prepared for download.


Fruit-2.1_vs_Carp-2.0.0
.zip
Download ZIP • 1KB


Game #2


White; Counter 5.0, MCERL: 3015 Elo

Black: Fruit 2.1, MCERL: 2723 Elo


Counter is a valiant chess engine that has surprised me more than once when I watched it's duels within MCERL.

It is one of the few chess engines written using Go language only and only because its author Mr. Vadim Chizhov stated that programming in C/C++ is not funny at all :)


The use of a rather uncommon programming language such as Go did not prevent its author from creating a Counter playing with the power of more than 3000 Elo!


White's move.


The middle game. Both computer players play an interesting and sharp game looking for chances to gain an advantage on the opposite wings of the chessboard. Counter in order to seize the initiative did not hesitate to sacrifice Knight on the f5 square. Fruit, however, does not let himself be provoked by playing prudently.


The position oscillates around equal with a very slight indication for black.



36.Bxe5?!

Uncompromising! Counter wants to win!



Fruit must be careful.

The playing style of its opponent often resembles that of Grandmaster Mikhail Tal; it may not play the most accurate, but it only takes one mistake by the opponent to sweep it off the chessboard.


36...dxe5

Correct answer. If 36...gxf5 then 37.Qxf4 leads to a decisive advantage for white.



37.d6 Qb6


38.Rb1

Prevents black from infiltrating the white camp by moving the black Queen to the b2 square.



38...Nxc4!

Strong play. Fruit does not give up the battlefield.



39.Bxc4 Bxf5!



Blow for blow. Fruit is not worried about the potential loss of the black Queen, as it could then exploit with its Bishop the weakness of the e4 square and the exposed position of the white King.


40.exf5



The more defensive 40.Rb3 didn't change the situation significantly, example continuation: 40...Bxe4+ 41.f3 Rxh7+ 42.Nh2 Qxb3! 43.axb3 Bxf3+ 44.Rg2 Bxg2+ with a complete breakdown of the white King's position and an obvious win for black.



Back in the game.


40...Rh7+



41.Nh2



41...Qxb1



42.Bf1

If 42.Rxb1 then 42...Rxb1+ with checkmate.



42...Qb7+

43.Bg2



43...Rxh2+!!



The sacrifice must be accepted.


44.Kxh2 Qh7+

45.Kg3 Ne2+!



And again the hit, and how impressive.


46.Kf3

If Counter takes Knight 46.Qxe2 then 46...Qh4+ 47. Kf3 Qf4#


46...Nxg1+

Nothing can save the white King in this game anymore.



47.Ke4 Rb4+

48.Ke5 Qg7+

49.Kd5 Qf7+

50.Kc6 Qb7+

51.Kxc5 Qb5#



Quite a successful demonstration of Fruit's capabilities, right?

This is exactly how the Fruit 2.1 that defeated the strongest opponents in its time plays chess :)


Below this game prepared for download.


Counter-5.0_vs_Fruit-2.1
.zip
Download ZIP • 1KB


Game #3


White; Fruit 2.1, MCERL: 2723 Elo

Black: Berserk 4, MCERL: 3086 Elo


In the last game I will comment on, Fruit 2.1's opponent will be the chess engine Berserk 4.


As Chessengeria readers may know, the Berserk engine is one of my favorites. Several years ago, Berserk charmed me with its style of play and its efficiency and ability to find unusual chess continuations. Today, on the day this article was published (January 2024), Berserk is the clear number two on the chess engine rating lists, just behind Stockfish.


The fourth version of Berserk against which Fruit 2.1 will play was released in 2021. That is to say, Fruit 2.1 will be facing a "tough one" that was created 16 years later than it was!


Let's go :)


White's move.


I would like to emphasize that this is the 28th move!

Why? Well, Berserk is an enforcer when it comes to theoretically weaker chess engines. It's not uncommon for Berserk to end their lives before putting up 20 moves and in this game you don't see such a quick result ;)



The position is equal.

Figures of both sides occupy optimal positions. And white and black have some weaknesses: Pawns on d4 and d5 but can this be exploited somehow right now ?

Yes, and this will be demonstrated by Fruit 2.1.


28.Ng6!



Other possibilities were, for example, 28.Re3 or 28.Nf3, which, although more passive, objectively did not worsen white's position.

Fruit chose the most promising and undoubtedly attractive continuation.


28...Bb4?

An unforced error.



It is likely that Berserk did not want to allow an equal, albeit uncomfortable, position to be forcibly created by

28...Nxg6 29.Qxd5+ Kh7 30.Qxd6 Qxa4 31.bxa6 bxa6 32.Rc7



White has one Pawn more, a Rook on the seventh line and a perfectly positioned Knight looking at squares f5 or h5.

Although this position looks not so good for black, it is equal, because black can concentrate its forces on the f2 square near the white King and on top of that their two Rooks are perfectly positioned for a potential attack.


Back in the game.


29.Nxf4



29...Bxc3



30.Nxd5!



Berserk probably counted on 30.Qxd5+?! with the next 30...Rf7 31.Ng6 and equalizing positions 31...Rd8.



Back in the game.


30...Bd2

Black wants to complicate the game. White must be on guard; every next move must be accurate.



31.Ne7++

Double check.



31...Kh8

32.Ng6+ Kh7

33.Nxf8+ Rxf8


34.Rc5



Ok, Fruit explained the situation. White has two more Pawns than black, which, with this arrangement of figures, should give them the win.


Berserk did not want to lose easily. The game continued until the 90th move.

Below are some selected situations from the rest of this skirmish.


38...bxa6



Fruit led to the removal of the Queens from the chessboard, which significantly helped it realize its advantage.


69.Nxh5



Move by move, slowly but gradually white's advantage grows. They already have three more Pawns.


82.Nxc7

The last hope of the blacks disappears, they lose the Bishop.



90.Rh7#



The end.


Wooow...

When I first watched this game, the first thing I did was check to see if I was sure Berserk played black. At first I couldn't believe that Fruit gave Berserk such a lesson in humility! And yet it did :)


Below this game prepared for download.


Fruit-2.1_vs_Berserk-4
.zip
Download ZIP • 1KB


The domain of Oldie Goldie chess engines is that they are capable of playing thrilling duels and winning even against much stronger opponents.


Such a remarkable Oldie Goldie is Fruit, the beautiful fruit of the thoughts of the talented creator Mr. Fabien Letouzey, who is forever part of the passionate history of chess engines development.


Image generated by Darius using Microsoft Bing Image Creator



Dear reader, at this point there is nothing left for you to do but download Fruit 2.1 for your operating system and enjoy its gameplay :)



Android – Compiled by Archimedes & Unknown

Fruit-2.1_Android
.7z
Download 7Z • 5.48MB

Linux arm64 & x64 – Compiled by Darius

Fruit-2.1_Linux_arm64_&_x64
.7z
Download 7Z • 449KB

Mac Apple Silicon & Intel – Compiled by Darius

Fruit-2.1_Mac_Apple_Silicon_&_Intel
.7z
Download 7Z • 435KB

Windows – Compiled by Darius

Fruit-2.1_Windows_x32_&_x64
.7z
Download 7Z • 501KB



 

* Source: CPW


** Diagrams created in the ChessX.


*** Source: CPW


**** Source: CPW

Comments


bottom of page