All support/help is welcome and highly appreciated!
This page is for downloading BanksiaGUI – a free chess GUI with beta versions, before officially releasing.
To run the app, just download, unzip and click the program. You need a 64-bit OS, Windows, macOS, or Linux.
Bug reports, ideas, suggestions, feature requests… are highly appreciated! Please use some below ways:
- post on Banksia GUI support forums
- write down here as comments
- email to banksiagui at gmail dot com
- a topic about Banksia GUI in the forum Talkchess.com
New: You are welcome to join and post on Banksia GUI forums. Forums’ topics are chess/computer chess in general. Recently, it has just been eased temporarily for registering.
Sponsors
We plan to support/study some hardware. Some of them are expensive. Thus we need some help from you all. You may donate us some hardware (such as electronic chessboards). Used or new is fine. Or even lend us for a while (for a few months). You may donate or advertise on our app too. For any donation above US$50, we will display your name/information/advertisement in the About dialog box of BSG as a golden sponsor for one year (for being Diamond sponsors with unlimited time, please discuss with us). All help is highly appreciated!

Download
Version 0.58 (RC1 version) (18 Jan 2023)
- BanksiaGUI 0.58/rc1 for MS Windows 64 bit
- BanksiaGUI 0.58/rc1 for macOS
- BanksiaGUI 0.58/rc1 for Apple Silicon
- BanksiaGUI 0.58/rc1 for Linux, 64 bit
This version is RC1 to prepare for the first official version (1.0)
Most of the efforts are to find and fix bugs and do some small changes such as colors, help, guides, and tooltips. However, there are some new things, including:
- Limit tournament concurrency by the number of threads (Fig. 1)
- Edit PGN tags (Fig. 1)
- Marks of made moves can be changed from some built-in styles to customs (Fig. 1)

Notes:
In previous versions, we can limit tournament concurrency by a number of games. That is simple and works well for typical matches when all engines play with the same-fixed number of threads. However, sometimes users may want some tournaments in which engines could play with different numbers of threads/CPU and/or remote engines. A new way to limit tournament concurrency via the number of threads helps to play those tournaments in a more efficient and safer way
Language packages
To use Banksia GUI with some languages, users can download language packages (extension .qm) and copy them into folder languages (it is located in the same folder with the runnable file of Banksia GUI. For macOS, it is in package BanksiaGui.app, right-click on that to popup menu and select Show Package Contents)
You may help people by translating BSG into your languages by forking one of the below repositories:
https://github.com/silitho/BanksiaGUI-Translation
https://github.com/nguyenpham/BanksiaGUI-Translation
Youtube channel
https://www.youtube.com/channel/UCwzPwT0syFRiNILDpf6Q0KQ
Open-source
BanksiaGUI is built based on our open-source Banksia. You may visit, download and/or contribute:
https://github.com/nguyenpham/Banksia
Other Downloads
Download engines, databases, and opening books:
574 thoughts on “Download”
too close => https://prnt.sc/res4y6
it’s only 10px, maybe 25px would be good
Thanks a lot. It is fixed for the next release
I saw a very good analysis tool from HIARCS GUI, maybe it could be your consideration…
=> http://prntscr.com/rdab6f
=> http://prntscr.com/rdabah
=> http://prntscr.com/rdabev
-for every inacurracy move, will be marked with “?!”
-for every mistake move, will be marked with “?”
-and for every blunder move, will be marked with “??”
here for the details…
=> https://prnt.sc/rda9x9 (Lichess Analysis)
=> http://prntscr.com/rdaeu2 (HIARCS analysis)
-Lichess did not mention the engine that used to analyze, but HIARCS did
-HIARCS did not provide these information, “inaccuracy, mistake or blunder”, but Lichess did
so, combining these 2 types of analysis will be awesome
Thanks a lot for the suggestion. In the tech view, it is not hard to implement: the GUI will assign annotations to move based on the difference between current and previous scores. However, it is hard for me since I don’t know which score’s difference (threshold) to assign which annotation. If someone knows (thresholds) and can share he will help us much.
Please add “miliseconds” in these 3 time control
http://prntscr.com/rcuibn
http://prntscr.com/rcuili
http://prntscr.com/rcuio6
this is very important when we want to make super fast testing with thousands of games
this feature is also available in Arena 3.5.1 & LittleBlitzer
thanks,
Thanks a lot for the suggestion. As I have understood, Windows (at least old versions) has its timer resolution about 15ms (its clock is called 64 times per second), far above 1ms – the unit if we use millisecond. Thus let a whole game played under a second and measure all elapsed time in millisecond has a high risk of having large errors
not under 1 second, but I want to make a Tournament with fixed TC = 50ms/move, if the number of moves is around 60 moves/game, then 1 game is 6 seconds, unfortunately, I can’t make a Tournament with this format in BSG, but in Arena 3.5.1 this feature is available (http://prntscr.com/rd5um9)
what I mean is that BSG should have a feature that allows us to make a Tournament with fixed TC less than 1 second/move, not less than 1 second/game
Thanks for the details. I will try
-too close => http://prntscr.com/rcifgq
-why does “Cross” table look like this => http://prntscr.com/rci9er
-i think this “http://prntscr.com/rcif0a” is wrong, because you can’t take average data from different engines
-what is this (https://prnt.sc/rcicjy)?
Thank you very much for the report. 1, 2, 3 will be fixed for the next release. 4) time/m = time per move. It is the name of a column
-Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” happens again in this Ver 0.17, in Ver 0.16 this problem has been fixed
-Score in white view is not working => http://prntscr.com/rchk1t
-when we change “Piece”, BSG stop working => https://prnt.sc/rchte1
-when we tick “Shadow”, BSG also stop working => http://prntscr.com/rchlb4
-too close, not good to see => http://prntscr.com/rci1bl
-too close => http://prntscr.com/rchwws
-too close => http://prntscr.com/rci245
-not in the center => https://prnt.sc/rchyhw
Thanks a lot for the report. All bugs are fixed for the next release
Draw adjudication should follow this rule: “Both engines have an evaluation between +/- 0.09 cp for 10 consecutive moves with NO PAWN MOVES or CAPTURES”
in BSG, “Both engines have an evaluation between +/- 0.09 cp for 10 consecutive moves” has been implemented well, but why are “pawn moves” and “captures” also counted?
…this rule means that when there is a “pawn moves” or “capture”, then the rule must be reset from the beginning
Wow, you checked so deeply. I had a bit different thoughts about draw conditions. However, I have changed my mind. Will fix it as your suggestion. Many thanks
This rule (called Rule X) is a TCEC and CCC rule, so I don’t think it needs to be modified, because this rule is really safe
You can change it according to your mind, but it must be based on data, I mean like this:
-Create a Tournament with 10,000 games without “Draw Adjudication”
-Then, create another Tournament with 10,000 games as well with “Draw Adjudication” as you think (called Rule Y)
-If the results are the same, then this “Rule Y” can be applied
I have tested this Rule X for many times, and the results are the same between games that using and not using this Rule X
The “no pawn moves or capture” rule should be optional. In cutechess, it’s always on for draw adjudication, and I actually find it annoying as many dead games end up lasting much longer because of it.
I can think of more complicated rules that would allow optimizing even more the amount of time saved while keeping incorrect adjudication low, but they would likely be considered too much for implementing. In particular, adjusting draw adjudication aggressiveness in relation with the number of pieces left on board.
-please add this very important feature on BSG => http://prntscr.com/rbat4u
-why does “Cross table” look like this? => http://prntscr.com/rbauva
Thanks a lot. All have been fixed, implemented for the next release
Could you please change how the score is indicated? I’m very used to seeing an engine’s eval score (For example, Leela would output +1.23) I don’t want to have to constantly convert the scores in my head, that is just rather silly.
Thanks for the feedback. Banksia GUI can display engines’ scores in two units: pawn and centipawn. To change unit: menu->File->Settings to open Settings dialog, select the first tab then tick on “Pawn unit” or “Centipawn”
why does engine evaluation look like this?
http://prntscr.com/r9e947
http://prntscr.com/r9e9yf
http://prntscr.com/r9e8at
http://prntscr.com/r9eabh
http://prntscr.com/r9ea3y
http://prntscr.com/r9eb93
http://prntscr.com/r9eayl
Thanks a lot for the report. I have tried some optimized algorithms to speed up displaying but look like they did not help but created some messy instead. It will be fixed for the next release
BSG’s resignation adjudication is 3 consecutive moves, I think, 5 consecutive moves is safer. TCEC uses 5 consecutive moves.
for example I want to know how much the strength of SF 11 increases if using “Cerebellum Leela Net T40.T8.610
for this, I will make a Tournament with the following format…
Engine 1: SF11
Engine 2: SF 11 + Cerebellum Leela Net T40.T8.610
the problem is, at BSG, when we use Polyglot (https://prnt.sc/r7ylpx), then the Polyglot is used by both engine, while in this Tournament, I want Polyglot to only be used by Engine 2
Ver 0.16
-File -> Settings -> Graphics -> Shadow (does not work)
-File -> Settings -> Graphics -> Piece (cannot be changed)
-File -> Open Game (PGN can’t be loaded)
-too close, no distance (http://prntscr.com/r7e3jg & http://prntscr.com/r7e3ve)
-The engine has moved to the left box, but it still exist in the right box too (http://prntscr.com/r7e6vi)
-I clicked on 2. Nh3, but why is the black box on Nc6? (http://prntscr.com/r7eoo9)
Thanks a lot for the report. All bugs will be fixed for the next release.
For temporary fix for changing piece style and shadow, just close BSG the reopen.
For tournament creating, an engine can be selected several times (it will be displayed in ping color as a warning but it is still accepted), thus engines are still shown in the right box after being selected.
an engine can be selected several times” …FOR WHAT??
who will play the tournament using the same engine? => http://prntscr.com/ra1cqb
It is from my experience: sometimes I need tournaments of one engine only. Sometimes I need tournaments in which one or some engines play more frequently than the rest. Note that after creating a tournament I may quickly edit by deleting some matches, change their orders thus I can have a new tournament as I need.
then you have to make 2 releases, for yourself, and for the public.
because, if we want to play Tournament using the same 2 engines, then the two engines must be separated, not only playing one engine from the same Path… this is to prevent the engine from using the previous analysis.
Hi. I have been testing this wonderful GUI since version 0.14 (currently testing 0.16).
1. Is it possible to allow logos of up to 200 pixels wide ? The current logo size is too small and a lot of the details can’t be seen clearly. The GUI already allows adjustment of the height, but the width can’t be adjusted. With a maximum width of 200 pixels, the GUI wouldn’t have to scale down the logo (unless the width exceeds 200 pixels).
2. I also observed this behavior when using a polyglot book:
The polyglot book used has the following distribution (as seen in Scid vs PC):
d4 – 38, e4 – 27, Nf3 – 18, c4 – 13, g3 – 2, b3 – 1
When the “Top” is set to 0%, all the tournament games started with d4. When the “Top” is set to 100%, there is a preponderence of King’s Gambit games for games that start with e4. When the “Top” is set to 50%, there is a preponderrence of Giuco Piano games for games that start with e4. In both 100% and 50% settings most of the games started with Nf3 or c4. In all “Top” settings (0%, 50%, 100%) none of the games started with g3 or b3. With several thousand games already played, there should have been several g3 or b3 games already.
What should happen is that when the “Top” setting is set to 0%, the GUI should just follow the book’s default distribution. Then as the “Top” setting is increased towards 100% that’s the only time that the GUI would modify the move distribution until all moves in the book would have equal chances of being played (“Top” setting = 100%). It might even be simpler if you remove the “Top” setting altogether and just allow the default distribution set in the book, as what other chess GUIs do.
Thanks a lot for the very-detail reports
1) I have added the suggestion into my TODO list
2) The design of BSG when picking up moves from polyglot books for a given position: a) it takes tops % (by weights) moves; b) if there are multi-moves, pick up randomly a move. Thus, the top 100% means BSG picks up move totally random. Top 0% means it picks up the best. If there are few best moves (same weights), it picks randomly between them. BSG always tries to use random whenever it sees some equal choices, just to make games/tournaments be more interesting. You don’t want that (random factor), do you?
Thank you for the reply. Regarding item 2, randomizing for moves of equal distribution is ok, but there should be an option to bypass this randomization and just allow the book’s default distribution to be used. As my testing shows, “In all Top settings (0%, 50%, 100%) none of the games started with g3 or b3. With several thousand games already played, there should have been several g3 or b3 games already.” , so the default distribution in the book is not being followed at all, no matter what “Top” setting you use.
This GUI is amazing, has many features that other GUIs don’t have, but unfortunately, the engine speed is about 15% lower in this GUI compared to Arena 3.5.1
Thanks a lot for the report. Could you please give me more information to reproduce: which engines, what is your computer (CPU, memory) and how did you observe that speed (tournament, play vs computer or run some tests)?
-My laptop: Asus X441UB (Intel Core i3-7020U/4GB RAM)
-i play vs computer using sf11 with tc=5 seconds/move, Then I see the engine speed reported by the both GUI, Arena 3.5.1 and your GUI
ver 0.16
“Swap Sides” feature (http://prntscr.com/r614r7) doesnt work, each Opening is only played once
why don’t you test it first before releasing it? in ver 0.15, these fitur called “swap, same opening 2 games” worked well
this tool does not work => https://prnt.sc/r6nd5w
Thanks a lot. The bug will be fixed for the next release
Thanks for the report. I have redesigned a bit for pairing and selecting openings. If you want a pair of engines to play one opening, please select “One for each pair” in Select type box.
I chose this setting (http://prntscr.com/r7r8h4) in Tournament. The result is that Opening is played sequentially, but each Opening is only played once, not twice, so when Game 1 is finished, Game 2 uses Opening 2 and this is clearly wrong, because Game 2 must use Opening 1, not Opening 2, Opening 2 is for Game 3 & Game 4
it should be like this (x):
Opening 1 => game 1 & game 2
Opening 2 => game 3 & game 4
Opening 3 => game 5 & game 6
and not like this (y):
Opening 1 => game 1
Opening 2 => game 2
Opening 3 => game 3
but if I don’t tick “Swap sides”, then the correct order is (y)
Author: Stéphane Nicolet
Date: Sat Jan 18 01:44:37 2020 +0100
Timestamp: 1579308277
Stockfish 11
Official release version of Stockfish 11.
Bench: 5156767
…and we estimate that on a modern four cores CPU, Stockfish 11 could give 1:1000 time odds to the human chess champion having classical time control, and be on par with him…
this means, if I want to play Stockfish 11 at Carlsen’s level, then I have to play Stockfish with Time Control: 0.18 second / move
Standard Time Control: 3 minutes / move = 180 seconds / move
180/1000 = 0.18
But in BSG, we can’t play Stockfish with TC = 0.18 s / move, because in BSG, the minimum Time per Move is 1 second / move (https://prnt.sc/r1bvj4)
I set the Tournament in this order => http://prntscr.com/r1174n
1. Stockfish
2. Komodo
but why in the Tournament Result Report and in PGN file the order is reversed? => https://prnt.sc/r117ar
1. Komodo
2. Stockfish
I have just used easy algorithms to generate tournament games without carrying about their order (it is actually a revert order). By popular situations, users will sort those games anyways.
Actually, there is a reason why this thing is important. for example I make a Tournament like this:
100k vs 200k nodes
200k vs 400k nodes
then the sequence in the PGN file should be like this…
100k vs 200k nodes
1. 100k nodes vs 200k nodes
2. 200k nodes vs. 100k nodes
200k vs 400k nodes
1. 200k nodes vs 400k nodes
2. 400k nodes vs 200k nodes
and not like this…
100k vs 200k nodes
1. 200k nodes vs 100k nodes
2. 100k nodes vs 200k nodes
200k vs 400k nodes
1. 400k nodes vs 200k nodes
2. 200k nodes vs 400k nodes
with this, our database will be neat and more comfortable to look at
I have checked my algorithms for generating a tournament matches. Actually they generate games based on the order of players. However, I have added a random factor to swap players for each game. That makes sure that all players can play white and black equally even users set games/pair is an odd number.
In multi-timer mode, timers will be attached to players, thus a given player will play with a given timer, regardless of his side or order.
this is my previous report…
ver 0.14…
– the report of Tournament Results (http://prntscr.com/qovceb) shows that the length of the game is only 38 moves, but in the PGN file, the length of the game is 48 moves => http://prntscr.com/qovhef
…but in ver 0.15, it has not been fixed yet
Thanks for the report! Yes the bug has been fixed already. However, there is a reason why the number of moves in Tech tab may be smaller than the games’ moves. If you put the mouse pointer over the tech table you may see a tooltip explaining that: “Stats based on computing moves only, ignored moves with zero node” (there is a line with a similar explanation too in Plain text tab). That means all opening moves, as well as moves without node-reporting from engines, won’t be counted here. The reason for ignoring is that some stats of averages per move (such as NPS, time/move) may be significantly smaller than what engines report if we count all no-node-reporting moves.
oke thanks for the explanation 🙂
after reducing the number of moves in the PGN file by the number of moves from the Opening Positions, the result is the same as the number of moves in the Tournament Result report
ver 0.15
1) pasting a FEN to BSG (http://prntscr.com/qya68k) doesnt work, in previous version this feature worked well. I tried to paste this FEN (rnbqkbnr/ppp2ppp/4p3/8/3PN3/8/PPP2PPP/R1BQKBNR b KQkq – 0 4) to BSG, but nothing happened on the Board.
2) Engine Speed report (NPS) didnt uppear on “results File” => http://prntscr.com/qyafyn, https://prnt.sc/qyadwv
Thanks a lot for the report. All have been fixed for the next release.
A tip: an option to be able to stop a tournament between engines after finishing a game and then be able to continue it in the future
Thanks a lot for the suggestion. Do you mean when a user stops the tournament, BSG should wait until finishing all playing games? I am just wondering that is mot much time the user may save.
Is there a way to save the ongoing Game Data in a temporary file? so when the Tournament is resumed, the game that was stopped will resume from the position when the game was stopped?
Theoretically, we can. However, I have seen some discussions about saving playing games, stop then resume them. There are some problems: 1) we almost can’t save/load the internal data of involving engines (such as hash, pawn tables) thus when resuming engines may play totally different ways (compared with playing uninterruptedly); 2) the majority of tournaments nowadays are fast ones. Saving time for a few half-games is not much and not worth, compared with having much more complexity of both using and implementing.
1) thus when resuming engines may play totally different ways
I think that’s not a problem, as long as the engine starts from the last position when the Tournament is stopped, then the results will be the same. Because the engine takes different moves (usually up to 7 different moves) from the same position is common… it’s the same as we enter a FEN of certain position, then tell the engine to analyze it.
MEMORY LEAK UPDATED INFO.
Hello again! I see you are making good progress on BanksiaGUI stability issues. Although it is much better than before, I believe you still have at least one major memory leak. The good news is I can now tell you where to look for the leak!
I finally thought to run a somewhat long tournament (272 games) with the chessboard display turned OFF (uually I like to watch at least some of the games). Well, that was the solution to the memory problems and overall sluggishness. The memory used remained within “normal” limits (about 85mb – 105mb) for the whole tourney with board display OFF. But if I run the same tourney with board display ON, memory usage zooms from 85mb to about 220mb!
So the memory leak must be somewhere in the board display routines. I sure hope this helps you chase it down!
I will post this here (forum) and on your download page.
Good luck and thanks for all of your work on BanksiaGUI!
-Ken (kenpchess)
Thanks a lot for the report. I have known that issue (memory leaking) and still working on that. Perhaps it is one of the hardest issues for me with BSG thus I am not sure when I can fix it. Hope the leak is not too bad and BSG can keep working on all systems.
Ver 0.15
-Sequential Openings work well.. Good job 🙂
-in this version (ver 0.15), no draw games ended with “adjudication by engine ‘score”), out of 1000 games, all draw games are only in these adjudications (adjudication by egtb, repetition, fifty move… these adjudications have been available in previous versions), So I want to say that this feature “Draw adjudication by engine score” has not been implemented yet
Thanks a lot for the report. I have found a bug (it was created when I cleaned the code) to disable that function. It is fixed for the next release.
what did BSG do??? => http://prntscr.com/qsa7fa
how can 200 games be the same???
this happened after I set concurrency = 2
I was wrong, after I tested using another GUI, it turns out that at nodes = 100000 & 200000, sf 11 always make the same moves
Thanks 🙂
Thank you for the great work you’ve been putting into this!
A few things to note:
1. Tournament Stats.
On the tournament results pane, the tech stats sometimes do not update. I noticed this after I tried to open the PGN of a different tournament which I had published the results and then to see they had changed. I checked again for another tournament, and I see that NPS and average Node per move info had changed. – By the way, this is a great feature, as NPS count and average nodes are quite important for NN engine testing.
2. Sequential Openings.
It is important to have this, as I am facing issues when it comes to engine testing. In order to get a fair and trustworthy result of a test, I need all engines to play the same openings. For example, I just played a Gauntlet tournament of 2 LC0 networks vs Stockfish. The first network played one set of openings, while the second played different openings. I used a 500 opening book but played 400 matches each. I cannot trust the results, as one network played King’s gambit games, while the other played different ones. The best thing would be for the engines to play the same opening sequence. Network 1 plays white and black against SF, QGD. And then Network 2 plays against SF black and white as well the same opening: QGD.
3. Game adjudication.
Move counter for resign and draw. It would be great to have draw adjudication added. It would drastically improve the speed of resolution of games, which speeds up testing. Some games last for far longer than they should, because there is no draw adjudication. Also, we need to have a move count for these adjudication results. For example when using Cutechess we can define the move number to make the adjudication start being true. Let’s say DRAW Adjudication: On move number 50. Move Count = 5, Score = 10. This will ensure that the adjudication rule starts only on move 50 >=(or any other user defined move) and it will count it for 5 moves in a row that the score has to be <= than 10. Move number and move count should be added to resign adjudication as well.
4. Rounds vs Games.
I notice on the PGN that it only counts the games and not the rounds. And this probably has to do with the issue with sequential openings, and also the way Banksia sees what a game is.
In Cutechess, when I want to start a tournament of 2 engines to play 200 games. I put it as Games=2 and Rounds= 100. This way, I am certain that the engines will play 100 openings twice (both black and white). Maybe I am misusing Banksia and I haven't found the right way to count the rounds and use sequential openings. But I really can't see the options for the number of rounds there.
Think of it this way. Tata Steel Masters has 14 rounds, with 1 game for each pair. That means that each player will play 1 game against each opponent and nothing else. If it was 2 games and 14 rounds. Each player would play 2 games against each opponent (black and white) to a total of 28 games per player, while it is still 14 rounds. Each round, 2 games.
I hope these comments help!
Thanks a lot for your suggestions/report. 1, 2, 3 have been added to my TODO/verify lists. 4) BSG has only rounds for Round robin but not other tournament types – that is why you won’t see round info. I have added a note about it anyways and will come back later.
2 & 3, I have suggested these many times, but it looks like the BSG TEAM thinks that it’s not important, because it has been updated 3 times (Ver 0.12, Ver 0.13, & Ver 0.14) but these feature is not available yet
@Adam: the developer has been adding quite a few new features and bug fixes for each release. Perhaps your requests aren’t as critical as some of the other items. Most of the feedback is occurring on the talkchess site not on this blog, so you may want to provide your feedback there.
See this site: http://talkchess.com/forum3/viewtopic.php?f=2&t=72350
what I recommended (especially 2 & 3) are BASIC feature that must be owned by a modern GUI, these are as important as the Tournament feature that a modern GUI must have. So at the beginning of the GUI development, these features (2 & 3) should be available and not put in the back queue in your TODO list
…and for (2. Sequential Openings) this is a very very BASIC feature, without this, the Tournament result will not be accurate. We need a different opening for every 2 games, and if 1 opening is played more than 2 times, then the Tournament result will be inaccurate. That’s why at TCEC or CCC, they use 50 different openings for 100 games, and 100 different openings for 200 games, the purpose is that they get accurate Tournament results
Your and others’ suggestions are very important for us and they help to make BSG be stronger and better. Thanks again.
I have just implemented both 2 & 3 for the coming release ver 0.15. Please help us to test them
this is what i mean => http://prntscr.com/qovt6j
“Use Percent” Box is ticked, but the score is still “1”, it should be 100
it also the same here => http://prntscr.com/qovuiu
how could the score be more than 100??
156 is the Total Score, or if in Percent it should be 52
(156/300) * 100% = 52%
So, when the “Use percent” Box is ticked, the value in the box must change from 156 to 52
Thanks,
ver 0.14 …
– the report of Tournament Results (http://prntscr.com/qovceb) shows that the length of the game is only 38 moves, but in the PGN file, the length of the game is 48 moves => http://prntscr.com/qovhef
-the Tool X i requested before did not work at all => http://prntscr.com/qovc4t
-there is still no option to use Starting / Opening Positions in sequence yet
-Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” has not been fixed yet
-“Open PGN from URL” also doesn’t work => http://prntscr.com/qovful
Thanks for the very details and easy-to-reproduce report!
1) The bug will be fixed for the next release
2) It is Ongoing tournament to load/save tournaments. To enable buttons, just select a line.
To see statistics of a PGN file, just drag and drop it into BSG, then click on the button “Stats” on the popup dialog
3), 4) still in my TODO list
5) The link you load is not a pure PGN, it is an HTML format content
in this Ver 0.16, this problem “Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” has been fixed. and i want to say that Ver 0.16 is much more smoothly than ver 0.15, GOOD JOB 🙂
Thanks a lot 🙂
in the Tournament results (http://prntscr.com/qmfb96), the “Score” parameter doesn’t seem to work in real time
when the Tournament is running, the number shown is inaccurate, it’s only accurate after the Tournament is over
and for “los%” parameter, what exactly is this? I do not understand
…and for “time / move” it also seem inaccurate
I run a 1m + 1s Bullet Tournament, and the Tournament Results shows that the average move is 48.5 moves/game (http://prntscr.com/qmfm2k)
so I counted like this…
Bullet 1m + 1s = 60 + 48.5 = 108.5 seconds
Total number of moves / game = 48.5
then,
time / move = 108.5 / 48.5 = 2.237 seconds or 2237 ms
Move overhead for Brainfish = 30 ms
so i get…
2237 – 30 = 2207 ms = 2.2 seconds / move and not 2.0
Thanks a lot for your long report!
1) I can’t reproduce the issue with scores, can you capture another image in which score is inaccurate?
2) LOS = Likelihood of Superiority. You may read at https://www.chessprogramming.org/Match_Statistics.
Frankly speaking, I am not good at that knowledge and plan to come back to improve it later.
3) time/move average: the result depends on the way we sum up, divide and round up. Basically I use some simple tricks: sum as many items as possible, keep dividing and rounding up as late as possible. Some numbers are reported when their sums are done earlier than the others. It means their results are less accurate than others. However, their results are still in reasonable and acceptable ranges.
If you or anyone wants to look/help me to verify at code, it is from banksia open source (https://github.com/nguyenpham/Banksia)
1) I don’t have time to play Tournament right now, maybe in a few days I will give you the screenshot
2) Thank you, I have understood
3) I think this parameter (time/move) is correct, I was wrong before because I did not count the amount of time left after the game ended
…btw, I feel happy with this GUI, because this is the only GUI that anyone can give suggestions for development
I also think about a Tool that I think is really very important
for example I have 50 Starting Positions / Opening Positions (OP) to be played on 100 games
We can’t just take any Opening from the Grandmaster Games and use it directly to Engine Match, we must ensure that the SP is balanced from both sides
A good OP is an OP that has a Score in the range of +/- 0.44 at the “End Position”, so I have to do analysis at the end of each position using Engine to see the Score.
the problem is, I have 50 OPs to analyze and I don’t have time to analyze them one by one
but with this tool, I just need to open a PGN file that contains 50 OP using this tool, and let this Tool analyze itself and issue the “Score” for each end position of the 50 OP
and after I get the “Score” for every OP, I just need to download it, and in the “Download Section” there must be an option, for example I only want to download OP with a score in the range of +/-0.44, or +/-0.60, in this way I don’t have to delete the OP manually with a score that is not in the range I want
Thanks,
Thanks for suggestions. I have added them to my TODO list. However, OP tools are always hard. I have seen many discussions on Talkchess and other forums with some methods/ways but almost none is really successful.
okay let’s make it clear …
for example, i have 3 OPs as you can see in this screenshot => http://prntscr.com/qoywrc
OP 1 is the OP that I want to use in Engine Match, but I can’t just use it, I have to make sure that the white position is not much better than black and vice versa
therefore, I analyze the End Position of this OP 1, if the Score is in the range of +/- 0.44, then I will use it, because the Score +/- 0.44 shows that this position is balanced for both sides (white and black)
but if the score is out of this range, let’s say +1 for white (which means -1 for black), then it is very likely that any Engine that plays White will always win … OP like this certainly cannot be used in Engine Match
from these 3 OPs, I just need to analyze them one by one using engine and the Score will appear in the “Score Box” as you can see in the screenshot
now, if there is a Tool that can do it (which will be very very helpful)… i mean this Tool works by analyzing OP 1 (for example 3 minutes/OP), then displaying the Score in the “Score Box”, after that the Tool continues to analyze OP 2 and so on…
The parameters used can be … time/OP, nodes/OP, or Depth/OP => for example: 180 seconds/OP, 1,000,000,000 nodes/OP, or depth 50/OP
Thanks,
There are still many questions to create an opening book, for example here are some quick ones in my mind: 1) until which length the book will take? 2) you said about scores in ply at n. How about moves before? If they conflict (says, the last one is good but previous ones are bad) how to take and use them?
The opening book of the page chessdb.cn is built by computing. I think the authors have use a complicated method, plus a lot of running time. However, the quality of that book is still a question and needs someone to prove, evaluate.
hi,
I’ve tested your GUI, very good interface, but the engine Speed (nps) 21% SLOWER in this GUI compared to other GUIs
Thanks a lot for the report!
21% is much larger than normal. 1) Can you give me some information: a) what is your hardware (cpu, cores, mem) b) how many engines you used for that test c) what is concurrency?
2) Can you rerun the tournament with all logs turned off (when creating a new tournament, uncheck all logs checkboxes) then run the test again? Many thanks again.
1) Laptop: ASUSTeK COMPUTER INC. X450CC (Ivy Bridge)
core: 2, threads: 4
used for testing: 1 thread
concurrency: 1
Engines: sf 10, komodo 10, houdini 1.5a
2) Still happen
maybe this gui dosen’t work well for Sandy Brdige or Ivy Bridge processors, maybe it only work well for haswell, broadwell, or the latest processors
Thanks a lot for the report. Look like BSG does not work well in a bit old/weak computers. I guess it may take more resources than older GUIs. I will optimize BSG in the hope that it can run better in those systems.
I’ve tried installing the Scid GUI, it’s 133MB in size and runs smoothly, while BSG is only 49MB, so there should be no problem
there are still many people who use computers with Ivy Bridge Processors, and actually this processor is included in Modern Computers, so it’s a bit strange if someone makes any App and doesn’t optimize it well on these systems
Frankly speaking, I don’t know the reason. Theory, when engines + GUI run far under 100% CPUs, engines are almost independent and have enough space to run. Thus the GUI should not affect to speed of any engines since it mainly catches output only. I suspect: 1) the ways BSG and Scid GUI calculating speeds are different. Say, BSG reports speed based on engine’s report and calculate only if it does not receive speed information from engines; other GUIs may calculate based on nodes report and elapse time; 2) BSG may affect to engines’ speed in mystery ways (I means unknown yet bugs). All need time. I will focus on this issue a bit later.
in this v0.14, the engine speed is still low compared to other GUIs
Please add the CPU Speed report (kN/s) to the Tournament results
Maybe it can be placed between Nodes & Depth
=> http://prntscr.com/qjtshd
——————————–
and also… if you can, please add this Tool (called Tool X) to BSG, the purpose is so that we can get data about Nodes, kN/s, Depth, time / move & time from any PGN file that containing engine games
for example, I have a PGN file containing 100 games between Engine X vs Engine Y as a result of Tournament in another GUI
well, now I want to get data about Nodes, kN/s, Depth, time/move, & time of the two engines
so I just need to open the PGN file using this Tool X, and these Data come out
I think this is a very good TOOL to be added to BSG
Thanks a lot for suggestions. I have added them to my TODO list
Hi, I would like to second this request, as I believe that when testing Lc0 networks, we need average speed of an engine measured in nodes per second for a tournament in order to quantify the strength.
Adam, what is Tool X, and where can we find it?
it was my request to the BSG Team, maybe it will be available in the next release
There is a tech problem: BSG has saved information about nodes into PGN. However, it is not popular. Some GUIs/software stores only score, depth and elapse time for each move. It means I may not retrieve any information about nodes, speeds… when working with general PGN.
BTW, I will postpone this feature a bit (to ponder)
That tool is completed for the next release. It is in the form of dialog for getting statistics from games in a PGN file. The information is quite similar to one in the tournament result of BSG.
These are too small => http://prntscr.com/qjmey8
and please show material difference like this => http://prntscr.com/qjmfct
Thanks for the report. The buttons on move-list panel are designed small sizes (they are extra buttons). You may use buttons on the toolbar which much larger sizes. BTW I have added a note about them and will take a review.
Showing material is added to my TODO list.
I tried playing a few games against Stockfish 10, and when its evaluation showed “Mate in 6″, Mate in 5” or “Mate in 4”, then starting from here Stockfish 10 spent a long time to make a move
=> https://postimg.cc/WFshsF49
Thanks for the report. Do you have the engine log of that game? If yes, please send to me (via email). BTW, which time control did you use? As I have understood, Stockfish is not optimized for none-standard/traditional time controls. Can you re-test with the new version (0.13). Thanks again
it sent
check your email
Thanks a lot. Unfortunately, I did not receive it after waiting for a while. Can you resend to banksiagui at gmail . com. Thanks
it sent => http://prntscr.com/qkfc3o
Thanks a lot, I got it
This is what i mean => http://prntscr.com/qm5it6
“Not responding” when engine evaluation is Mate in 3
thing like this starts happening when the engine evaluation shows Mate in “6, 5, 4, 3, 2 & 1”
I want to report that “Starting Positions” (called “Openings” in BSG => http://prntscr.com/qj5ev3) on Tournament are not played all
for example, I made a small Test with 50 Starting Positions in 100 games
this means that every Starting Position must be played twice
but the Tournament Result showed that not all Starting Positions were played, some were played more than twice (4 to 6 times) and some were not played at all
Thanks again for the report. At the moment, BSG picks up the opening positions randomly but not in sequent. Thus it is not guaranty all positions from a book will be used.
Thus it is not guaranty all positions from a book will be used… Exactly! …but only if the number of openings are more than the number of games
for example, the number of Openings are 50, and each Opening is used a maximum of 2 times (once for White and once for Black). Now, I make a tournament of 50 games, then of course only 25 openings will be chosen randomly
But if the number of games are 100, then all Openings must be used a maximum of 2 times
And if the number of games are more 100, then out of the 50 Openings, of course there are several Openings will be used more than twice
…I think there must be an option to pick up the Opening Positions sequentially
Thanks for the suggestion. I have added it into my TODO list
Bug report on v12:
* Crashes when opening certain games in database. Trying to figure out which games. Or it may be on order of selecting. Double click one game to load. Then double click on second game, and it crashes.
* Crashes when creating new database. Tool>Create Database. Fill in various fields then select Process. Crashes.
* When doing analysis, countdown (eg. 0 of 38) never increases. closed down banksiagui and when reopened the whole game was analyzed.
Config: Mac OSX, Mojave, Mac Air 2018
Thanks a lot for the report. I have taken a note and tried to reproduce. However, I am struggling to reproduce (all 3 issues using an iMac) at the moment thus I will come back to those issues later. If you know how to reproduce steps by steps please let us know. Thanks again.
I reproduced on my other laptop, Windows 10.
Result: Crash when creating new database.
Steps to reproduce (assume creating empty new db):
1. Click New Database icon.
2. On new db form, fill in:
3. On Game folder, click Browser and select Documents Games folder.
4. For Database file field, put in “simpletest”.
5. Click Process.
6. Crashes.
Result: Crash when creating new database from PGN.
Use Alekhine PGN downloaded from pgnmentor.com
Steps to reproduce (assume creating empty new db):
1. Click New Database icon.
2. On new db form, fill in:
3. On Game folder, click Browser and select Documents Games folder that has Alekhine.pgn file.
4. For Database file field, put in “alekhine”.
5. Click Process.
6. Crashes.
I’ll try the other reports too when I get a few more minutes.
Thanks a lot for the so detailed report. I can reproduce now. The bug is fixed for the next release.
v.12 More Test Cases
Result: Crash when opening games in database.
Steps to reproduce (assume existing game database gm2001.bgdb):
1. Click Database icon.
2. Database file is gm2001.bgdb location
3. Click on first game (on mine Kramnik v Leko 2001-1-2). Game is opened in game window but focus remains in db listing.
4. Select next game in list (on mine Kranmik v Leko 2001-1-4). At this point it crashes.
5. If not crash on step 4, select another game. By this time it will crash if not on previous step.
Note: sometimes it crashes on first game selected.
Report: No UI update when doing analysis, countdown (eg. 0 of 38) never increases.
I am not able to reproduce this as it seems to be working correctly now. I’ll test some more to see if I can reproduce, but it was probably some strange config or state that I was in.
**New bug report: mispelling of Medium on Preferences>Book/egtb tab>Bubble Size
Thanks a lot for the reports. All those bugs are (hopefully) fixed for the next version 0.13. Please help us to verify.
Thank you for another informative site. Where else could I get that kind of information written in such a perfect way? I have a project that I am just now working on, and I’ve been on the look out for such great information like yours. Thanks!
Really liking your program. I think it will be a hit especially for Linux and Mac users.
1) Is there a way to lower the playing strength of an engine? For example on stockfish it shows level 20 but no option to change it.
2) When bringing up a game from the database list, it defaults to showing the last move. It would be nice to start at the beginning of the game (like chessbase, fritz, scid, arena, etc others I’ve tried). Not a huge deal to scroll to top to first move, but still.
3) It would be nice to have a Resign button to record the proper PGN
4) Is there way to edit PGN Information (player names, event, etc)
1) For Stockfish, you go to its options (open Settings->Engines tab-> select Stockfish, scroll screen of Engine options to see Skill Level, double click on the number -> change it to what level you need
2) Thanks for the suggestion, I have added to my TODO list
3) BSG used to have Resign button but then I have removed it since it is not really useful. I took a note about this and maybe reimplement
4) It is in my TODO list. Thanks again
I found a problem, we could not use more than 1,000,000 Nodes in the tournament.
Thanks for the report. The limit is actually 1 billion (1,000,000,000). I consider increasing that limit.
Hello Pham! I have 2 problems with Banksia gui:
1) I cant read a pgn file. Can you post the process i have to follow to read a pgn file ?
2) I cant force installed engines to use a specific bin book and play automatically the first opening moves.
Thanks for your hard work…
1) Just drag and drop the PGN file into Banksia GUI. Other way is to press Control-O or open menu File -> Open Game -> select your PGN from that dialog
2) Look like there is a bug on the opening book for game human vs engine. Thanks for the report
1) Just drag and drop the PGN file into Banksia GUI. Other way is to press Control-O or open menu File -> Open Game -> select your PGN from that dialog.
Seems that not help either! No game list appears. Only one game from entire pgn file.
You are right. At the moment BSG reads and shows only a game from a PGN file (even it can read all games when creating databases). Support PGN database (multi games) is on my TODO list (I may implement it within 2 weeks).
Some suggestions:
Add human to tournament
Resign button (in Human vs Comp)
Human has Elo and is updated after playing games against Comp
Add WhiteElo BlackElo to created PGNs
Thanks a lot for the suggestion!
1) Add human to tournament: interesting idea. However, we confuse since human players usually don’t want to wait for playing vs software. Human vs human matches are no point since we are using only one offline-computer.
2) Resign button: BSG used to have that button. But we removed it since the human can easily stop the game and/or close program instead 😉
3) Elo update: We don’t know how to update Elo after a game. If you know please send us the method/document, thanks
1) It’s quite common to do that, I loved to play fake tournaments in Chessmaster way back. Watching your opponents play is fun. I don’t know how hard that would be to add, but I’d really enjoy that feature.
2) It’s just so the game gets correctly scored in the PGN as LOSS, I know that ending it is quite easy, but what if I want to save it and take a look at it later? Or use it in a database?
3) There’s an example here: https://metinmediamath.wordpress.com/2013/11/27/how-to-calculate-the-elo-rating-including-example/
It’s not too hard, basically a single exponential function and some addition and multiplication.
4) Any update on this? [WhiteElo] and [BlackElo] tags in PGN should contain the player’s Elo rating.
For some reason my reply doesn’t show up so I’ll write it again:
1) Playing a tournament against (weak!) engines was one of my favourite features of Chessmaster. That coupled with 3) would make it very fun! If it’s not much work, I’d love to see it added.
2) The main use of resign would be so the PGN files get labeled as LOSS/WIN correctly, I save all my games so it’s very annoying to have to manually change the Results in the PGN.
3) Updating Elo is quite easy, it’s just a couple of additions and multiplications (and one exponential function). If you google ‘The Math Behind ELO’ you should find a blog post that even has sample code.
4) Any update on this? WhiteElo and BlackElo in the PGN would be very useful, and it seems like a simple addition.
Hi,
Thank you very much for the very cool Chess GUI.
Is there a way to run an engine gauntlet tournament where one engine will always play as white (without swiping sides) and using a pgn as an opening -opening order sequential?
Could you please increase the maximum number of games per tournament from 10000 to 250000.
Any assistance you can provide would be greatly appreciated
For the current version, BSG can lock engines to a given side. However, it is a bit complicated (and maybe buggy) since users have to edit JSON files. Thus, we are working to improve and hope users can do easily in the next release.
The idea about using PGN in order sequence looks good, we put it in TODO list – thanks. The increment of the limit is ready for the next release.
Thank you very much for your reply.
May God Bless your work
Is there a way to analyze a played game, or have the engine show move ratings on a played game? When I bring up games from the database, it seems the engine is not turned on at all.
Analyze a played game is a task in my TODO list – not available at the moment. When you load a game (from PGN or database) BSG will match players’ names with engine-name list, if a name totally matched, the engine of that name will be invoked.
That was under Mac OS 10.13 (High Sierra) as were previous versions that I tested.
Thanks a lot for the report and the log. I have just uploaded new binaries to fix (hopefully) the problem. Please try.
Hello again. Thanks for the quick turnaround. V .010b seems to run fine now. I think the GUI is also a little more responsive. I particularly like the “score meter” and some of the other small UI improvements (the button to edit the interface files is also good!). You are definitely making progress. I did not update this issue again, but I am fairly sure you still have a “smaller” memory leak. When I run my “test” 144 game tourney the banksia app still grows to about 250mb, (but it was about twice that or 500mb until you worked on it with version 0.9). Mac Activity Monitor is a good way to look at the size of the app over time.
You have done very good work and this GUI is showing great promise. Just needs some more polishing and stability tweaking! Thanks for such a fine app addition to the chess community!
Thanks again 🙂
Hello again. Sorry, but version .10 (14 Dec) doesn’t startup (no UI screen) and then immediately crashes (with no error msg) on my old Core 2 Duo 2 mini 64 bit. All previous versions ran fine. Maybe a bad build? Thanks in advance.
Thanks for the arrow keys and OSX support.
Small edit: On Settings screen, General tab, next to Move stat bubbles, Medium is misspelled. Same with Book/Egtb tab.
And for Database Viewer, can you tighten up the game list. It seems that there is too much space between lines.
Also when selecting a game from the DB Viewer, it always brings up the game with the last move shown instead of showing the initial game ready to play move 1 (which seems different from other GUI’s I’ve used).
Thanks a lot for your ideas/suggestions!
One more thing, on another Mac: can you enable making moves with arrow keys instead of having to use buttons on toolbar?
OSX El Capitan and arrow keys (for reviewing moves) will be supported in the next release
This does not support OSX El Cap (10.11)? Says it requires 10.12+, which seems a shame.
One more thought. I did have logs, etc. enabled on these tournies. Are you maybe putting them in memory before Banksia writes them out and then maybe not releasing the memory, etc! Just a thought!
Hello again. Well, it is good that you are at least aware of the problem. It does make sense that the “slowdown” is probably worse on an old slower processor like mine, but NOT desirable on any machine. I am not a C++ programmer (mostly pascal and flavors of basic), but you should probably ask around on TalkChess for some suggestions. There are lots of sharp folks on that forum. Good luck. If I can be of any further help, let me know.
I sent you the following email (with attachments) to banksiagui gmail com.
Hello again. I have a bit more info on the “freezing” behavior. I am now using version 0.8alpha which seems somewhat better. But it still slows down and the apparent memory usage is “bloated” (much larger) about halfway through a tourney. I have attached several screenshots that show memory usage growing steadily as my tourney progresses. Banksia memory started at a modest 88mb (even though I forgot to take a screenshot at start). But the images (look for Banksia process at bottom of each image) show the memory steadily increasing with the last memory image being about halfway through a 144 game round-robin tourney (but Banksia has not “frozen” at this point, just slowed down). Surely this memory increase in the Banksia process is not normal? I would bet that some data structure is constantly being allocated memory that often does not get released. I did see the memory usage dip a bit for short periods but always ends up increasing steadily. I hope this info helps!
By the way, I really like the tournament info tabs in v0.8. The “tech” info is very useful. All in all you have done a very good job with Banskia! I hope it continues to progress!
-Ken
P.S. – I use cutechess (both cli and GUI) and several other chess GUIs on a constant basis. You already have some features in Banskia that they don’t have!.
I got your email. Thanks a lot!
Yes, it looks like BSG has trouble with the memory leak. I have been fighting on this issue. It is not clear how hard the leak since BSG keeps some info of completed games, thus memory must increase after each game. In my computer (16 GB memory) BSG can play continuously thousands of games. BTW, I will focus on this issue now.
Hello! Very promising GUI. I really like the general layout with the tourney schedule, tables, multi-games, etc.
I am using v0.7 alpha on an old circa 2010 Mac Mini Core 2 Duo 2 under 10.13 High Sierra. It seems to freeze about 20-30 games into a tourney (round-robin or gauntlet, concurrency set only to 1). I have to force quit the app. I have 16gb memory and lots of disk space and was only running a browser in the background. I do not know whether this is a slow memory-type leak or something else. Sorry I cannot report more info at this time. I have lots of experience with other engines and other Chess GUIs so I thought I should report this.
Thanks for this very promising GUI. I will definitely follow its progress.
Thank you for using Banksia GUI. I don’t have mac mini to try, thus I need your help to check further. Can you do the following steps:
– run the app Activity Monitor to check frequently computer’s memory
– pick up 1 or 2 “good” chess engines. That is for making sure they are not the problem. Stockfish is usually a good one. Don’t try Lc0 since it is not good for macOS and may freeze the screen
– now run Banksia GUI, create a tournament with above engines, first set Games/pair small, say 4, then increase later, turn off almost all things, don’t use opening books, no log, no syzygy… Set time controller to very fast (say, standard 10 seconds per games) -> you can try fast
– start the tournament
Just observe if BSG can complete the tournament and check memory if it becomes exceeding your physic memory.
If the tournament completed well, try to double the number of games by double the games per pair…
Please report here your experiments. Thanks
I don’t think the “mac-mini” itself (type of processor) would make any difference. I think the freeze would probably happen on ANY Mac processor. I have 16gb of physical memory for just these type of applications and rarely use more than 50% (as reported by menu-bar stats). I did indeed use all known good engines (Stockfish 10, Komodo 13.2.5, etc.) that I have used before. I think you may have a pointer or memory-structure leak somewhere. I will run some more tests and note the CPU and memory usage. When it froze several times before Mac OS simply reports (“BanksiaGUI has become non-responsive”). I was using eight well-known engines with a 3-minute+1sec time control. I will of course test the new version 0.8 alpha. Very promising GUI when it becomes stable.
Thanks for the reply and help. The problem (for me) I can’t reproduce that issue on my iMac (2017, it has a similar 16 GB memory but quad-cores and using Catalina). I will do some more tests too.
I would like to have a 4th option for tournament mode: gauntlet. As I test for CCRL that is the mode I use almost exclusively with all other GUI’s.
Thanks for the idea, I will implement it soon
I also use gauntlet a lot. If you can program the player running the gauntlet to choose his color for all rounds, that would be a first. All the gui’s I know play White in the first pass.
BSG doesn’t have an interface to do that. However, you may edit manually the file banksiatour.json to lock some engines to a given side as the following text. Please try and tell me the result.
“inclusive players” :
{
“guide” : “matches are counted with players in this list only; side: white, black, any”,
“mode” : true,
“players” : [ “crafty”, “stockfish 10” ],
“side” : “black”
},