Fat Fritz 2 is a chess engine recently published and sold by Chessbase. Release article. It uses the Stockfish binary, and replaces the NNUE in Stockfish with its own. Stockfish itself is licensed under GPL; the text on Stockfish's website is:
Stockfish is free, and distributed under the GNU General Public License Version 3 (GPLv3). Essentially, this means that you are free to do almost exactly what you want with the program, including distributing it among your friends, making it available for download from your web site, selling it (either by itself or as part of some bigger software package), or using it as the starting point for a software project of your own.
The only real limitation is that whenever you distribute Stockfish in some way, you must always include the full source code, or a pointer to where the source code can be found. If you make any changes to the source code, these changes must also be made available under the GPL.
Fat Fritz 2 uses Stockfish's binary, and the (small) modifications the author made to the binary is publicly available. However, its NNUE is closed source. Does Fat Fritz 2 violate Stockfish's license? Stockfish's developers certainly aren't happy with Fat Fritz 2, but I am wondering if they have a legal argument against Fat Fritz 2, or if the criticism is entirely on moral grounds.
If it is necessary for context: engines work by searching through the game tree and returning their so-called "eval function" on the end position. In other words, there are two crucial prongs of engine code:
- search, which governs how the engine searches through the game tree (e.g., which moves it looks at first)
- eval, which governs how the engine judges the final position of the search (e.g., the side that has more material is usually better)
Different engines usually have different search & eval code. In the case of Stockfish, its eval function is a neural network of a specific type ("NNUE"). Fat Fritz 2 uses Stockfish's search, but replaces Stockfish's NNUE with its own (definitely different) NNUE.