New improved ANALYSIS tab layout for testing

178 views
Skip to first unread message

Johan Sjöblom

unread,
Jun 7, 2026, 12:28:14 PM (8 days ago) Jun 7
to PicoChess
I have made a feature branch to test an improved ANALYSIS tab more like Antonio's original design. I have tried to save space. There is now more room for the chess-move analysis lines. And if they all hidden then the PGN Move window can use that space.

Please test on touch screens and mobile phones and throw in some improvement suggestions if you have them....
To test: Look at the ANALYSIS tab, click the SHOW/HIDE for Pico and Web client analysis respectively. On a remote web client like the mobile phone you can have more than one Web analysis row.

The branch to test: 412-web-client-analysis

-- Johan

Henri

unread,
Jun 8, 2026, 4:36:42 PM (6 days ago) Jun 8
to PicoChess
Hi Johan,
Like it!
-Henri

Op zondag 7 juni 2026 om 18:28:14 UTC+2 schreef messi...@gmail.com:

Johan Sjöblom

unread,
Jun 9, 2026, 1:23:58 PM (6 days ago) Jun 9
to PicoChess
This solution is now in master so anyone who upgrades gets the improvement now.

I also improved the WATCHER list in master code... It now colour codes the mistakes with traffic lights. And clicking a mistake will bring the position back to the chess position BEFORE the mistake was made, not to the halfmove AFTER the mistake move.

There is also a new blue button in the mistake list labelled "A" for analysis. It will autostart the web analysis if it did not yet start. Basically the "A"-button in blue simply switches to the position before the  mistake move, changes to the ANALYSES tab, and makes sure the Web analysis is in SHOW state.
The button will not show up until the game is finished. Now after your finished game you can chose your biggest mistake (red maybe) and click the A-button next to it. After the web analysis is in SHOW mode you can just click any other mistake anywhere on the row in the list and go back to ANALYSES tab yourself, or click the "A" button to quickly get back to the ANALYSES tab...

Comments are welcome.

// Johan

Dirk

unread,
Jun 10, 2026, 7:03:51 AM (5 days ago) Jun 10
to PicoChess

Hi Johan,


first of all, I really like the recent changes to the Analysis and Tutor sections.

The new analysis workflow feels much more intuitive, and the Tutor tab is especially useful now. Being able to jump directly to a position that the tutor flagged and then explore alternative continuations on the virtual board is a great learning tool.

If I understood correctly, the planned option to transfer such a position back to the electronic board and continue from there would be another excellent addition.


A few small observations from testing the current version:


1. History header visibility
Since the player names are no longer shown on the clock display, it might be nice to make the "Player vs Engine" header in the History tab slightly larger or bold. That would make it easier to immediately see who is playing whom.


2. Final move for MAME retro engines
In PicoChess V3, the final move that ended the game was still sent to the retro engine. This was not important for normal UCI engines, but it allowed many retro engines to show their final reaction or message after mate. It worked quite nicely back then.

Maybe this behavior could return specifically for MAME engines, without PicoChess waiting for a response of course.


3. Settings dialog
It would be great if the settings window with the tiles remained open until explicitly closed by the user. When changing several settings in succession, reopening the dialog each time feels a little cumbersome.


4. Shortcut buttons
A future usability idea could be configurable shortcut buttons for frequently used actions such as Engine selection, System functions, New Game, etc.

Even a reordering of the existing tiles based on usage frequency might help. Personally, I find myself using Engine and System much more often than some of the other menu entries.


These are all just ideas for future refinement. Overall, I'm very happy with the direction of the current GUI. 


Thanks again for all the work you're putting into PicoChess!

Johan Sjöblom

unread,
Jun 11, 2026, 7:00:39 AM (4 days ago) Jun 11
to PicoChess
Thanks again for good development ideas.
We can make one issue for each of these headings. The lowest hanging fruit and fastest to fix is the nr 3 Settings dialog. I had earlier tried to make sure that in the Tutor settings you can click all settings without closing it... We would need to list all the menu locations that should not remain open.... I think the Game menu has some direct actions were we don't want to leave the menu open... So we should list the actions that will close the menu immediately. Then its easy to fix the entire menu with one AI prompt.
-- Johan

Dirk

unread,
Jun 11, 2026, 7:29:29 AM (4 days ago) Jun 11
to pico...@googlegroups.com
Hmmm - I really don’t know for sure but why just leave the menu open and let the user decide when he has finished all his setting changes.

I still can imagine cases where even after pressing a function like New Game (when playing with no eBoard) I would like to do additional changes like changing the level or the engine afterwards etc.

What should be the criteria for leaving some settings open and some not? What would you leave the menu open when someone changes the language but not if someone wants to read a pgn for example. Maybe after reading the pgn he wants to change form NORMAL to ANALYSIS mode in addition for that etc.

I would just keep it simple and let the user decide…..

But that it is of course a matter of taste.

Dirk

Johan Sjöblom

unread,
Jun 11, 2026, 7:38:35 AM (4 days ago) Jun 11
to PicoChess
Ah, good point. Well that makes it easy enough... I will fix it next time I have "computer time"...
-- Johan

Dirk

unread,
Jun 11, 2026, 7:56:11 AM (4 days ago) Jun 11
to PicoChess
But I see from where the option of immediately closing the menu comes from: When you have a dedicated button for specific menu functions (like New game or Leave PicoChess or Change Engine etc.) it makes absolutely sense!  

Hopefully we will get some menu-shortcut buttons in the near future ;-)  

Johan Sjöblom

unread,
Jun 13, 2026, 1:58:57 PM (2 days ago) Jun 13
to PicoChess
Now I added a possibility to start a new game from any selected PGN move list position on the web client.
If you want to play a new game from any web client position then use the new menu item Position -> Set Pos. Its kind of like the reverse of the Scan function.
After you have finished a game, you can use the Watcher mistake list to chose a position you would like to try again and play better :-)
... or just pick up any PGN game and chose any position in the web client by clicking in the PGN move list. It could be from a famous game or some champion game etc?

With the feature test branch: 417-send-position-to-backend

And I can see you started to add the above mentioned 4 issues to the list. Thats good! We can take them one-by-one.

// Johan

Randy Reade

unread,
Jun 13, 2026, 3:54:46 PM (2 days ago) Jun 13
to pico...@googlegroups.com
Hi Johan, 

I haven't checked this new function but I'm not really sure what it is. Is this for no-eboard mode when you are playing in the web browser?

On a side note, maybe it's time to get your friend Claude to play with PicoChess for a while and document all the features into a nice manual. 😊

Randy

Johan Sjöblom

unread,
Jun 14, 2026, 1:53:08 AM (yesterday) Jun 14
to PicoChess
Its a function to start a new game from any point in the move history, maybe analyse a mistake by switching to analysis mode, or simply play again from that point. And yes, it works with eboards, but obviously you have to set up the pieces following the ”set pieces” instructions and/or looking at the web display.

At work we are using github copilot, codex, and claude. In this project I have used codex only, but I do think that DJ Dekker has used Claude. I have created a set of documentation to be used by AI. They are the AGENTS.md files. Whenever you use Claude or github copilot you have to instruct (prompt) the AI to always read the AGENTS.md files, otherwise AI coding will create quality issues. AND, you will save a lot of tokens when the AI can read documentation and not figure out everything from scratch everytime. its a ”green” thing to do.
Front end coders could use Claude Design to further improve the web client. I have only used made minor improvements as I am not an expert on front ends.

Having said that, what an obvious and nice idea Randy. We should also have documentation for humans :-)
 I had focused my limited time on making sure that we have documentation for AI coding. As AI tokens started getting more expensive I felt I was in a hurry to create the AGENTS.md that AI needs. Now its time to also document it for users.

I will ask my friend Codex to write a user manual based on the new modernized menu. We can place that help on the top level of the web client somewhere…

Johan Sjöblom

unread,
Jun 14, 2026, 2:16:55 AM (yesterday) Jun 14
to PicoChess
The new feature to start a new game from any web client position is now in master so no need to use a separate branch 417-send-position-to-backend to test it. It will be available on your next update.
For the manuals I will make one post in this group, starting with an english manual... and maybe we can add manuals in the other languages as well as separate posts...

Dirk

unread,
Jun 14, 2026, 6:58:12 AM (20 hours ago) Jun 14
to PicoChess
Hi Johan,

that's a cool function - I just tested it and I like it! Don't know how I often I will use this feature but that is really an important and nice option to have. Now we can scan a given position on the physical eBoard or we take a current position on web board  and start a game from there. Nice!!!

If we think further it would be even more practical/useful (for me ;-) when we would have a chance to not only play a real game from there but if we could do further analyzing a variant from a position either
a) found by the tutor in the watcher tab 
or
b) a position in the current line of an analysis path (either from web analysis or from Pico)  on the analysis tab 

For this it must be possible to sync the web board  with the position of the watcher throe (that is already possible) and from the analysis main line (for this teh user should be able to stop the analysing and the line should still be shown. Then the user could select a move/position in the main line (by just clicking/touching it) and the web board should sync to this position (was this not even possible in V3???? - I can't remember - V3 is so the long ago ;-)

Then this current move path could be incorporated as a variant in the game/move history section if this is not too complex/complicated  (then we could skip this part)

Then the user should be able to "play" some further moves in order to analyze/have a look at the game how it would have developed alternatively by just seeing the current web analysis of current web board positions while executing some players and the opponent moves.

When finished the user just presses the sync to current (real) position button or just plays another move on the eBoard in order to continue the real game.

For me such an analysis of alternatives/variant would dramatically enhance the learning feature of PicChess.

But anyway - thanks for the first step by adding this new position feature ;-)

Dirk 

Johan Sjöblom

unread,
Jun 14, 2026, 9:52:49 AM (17 hours ago) Jun 14
to PicoChess
Wow Dirk. We are being creative here. If I think about the architecture ”out loud” a simple analysis of the enablers needed would be like this:

At the moment neither the backend nor the web client remembers any variations of the main line = main variation. The PGN node structure in the new chess library does support storing variations as its just a tree structure where the main line / variation is simply the first sub-tree. I remember that because I had to rewrite how the save file is being produced when I switched to the new chess library. Fact is therefore that the backend would have the capacity to store many variations that we in human language call side lines. For the web client PGN move list handling I would have to check what kind of model is being used.

I would need to add those variations in the backend as they are discovered by the tutor. Currently I only keep a dictionary of the lost centipawns, eval score, and the best move etc. That dictionary is just kept as a reference in picotutor and its not stored in the PGN game tree. I dont think it needs to be, but this new variation information (the side lines) should be stored in the game tree. In fact, the tutor has 50 lines available at that point. We could store all the variation moves that ”are better” than the selected one, but limit to max 3 better ones, as that is probably enough. Storing them should not affect the save, or the sync with the eboard as the chess library PGN tree can take care of it.
Not sure how to capture the variations reported by the selected engine if the tutor is off, but we could start by capturing the tutor lines.

There is a a possibility to capture the lines in the web client logic also… It could capture the tutor or the engine lines depending on which one it receives. That would not require any new variation storage in the backend as said in the above paragraph. This is closer to your idea perhaps,… making it possible to click on an analysis line position and then ask to continue the game from there.

Regardless of how the variations are captured, they would need to be available to click on in the web client. My preference would be that you could see them in the PGN move list and be able to expand them. When expanded you could click on them to have a look at them.

Now comes the challenging part. If you would be allowed to click on the side line variations and start a new game from that  variation we have to decide if we are going to remember the entire earlier game and be able to go back to it, or if we simply switch over to the ”alternative world” like a parallell universe for a while and play from there. If we try to maintain the entire original main game and allow a completely parallell universe kind-of sideline game we might get a complicated state machine. The simplest way would be to keep the original game in a hidden parallell variable that you can go back to, but I would say that also that is too complicated and risky.
Solution: We would need to reload the original game from disk instead to avoid the complexity of remembering two parallell universes. That means that the saved game should store all the side variations as well, and also read them back so that they are available after you have spent some time in the parallell universe of a variation side line.

Maybe the first solution would be to store the tutor side line variations in the backend PGN node tree, and keep sending the entire node tree back to the web client all the time. In the web client you would be able to expand into one of those side line variations and then force a new game from any position you chose.
In this case we are still missing the ability to capture the engine (not tutor) side line… But it should be possible to capture those on the backend as well, I just dont know how yet. So phase 1 could be using the tutor analysis lines only.

// Johan

Johan Sjöblom

unread,
Jun 14, 2026, 1:21:22 PM (14 hours ago) Jun 14
to PicoChess
Done. More work than expected, but mostly done.

The branch to test is: 422-experimental-side-line-variations

There is an explanation text in the PR. To achieve this I had to change the behaviour of the Read (load) Game and PGN Replay. I think this is better now. Strangely this new sideline ability forced me to redesign the PGN Replay mode and I think it improved. The reading of a stored PGN game like last_game or 1, 2, 3, or uploading a PGN game NO LONGER auto-switches to PGN Replay. That has the advantage that you see the entire game PGN info immediately when loading a game from disc (or uploading).... including that you see the new tutor side variations if the loaded game already contained them. And all positions in the web client are clickable for continuing a new game in.
Playing a game with the tutor will now save the sidelines so they are there next time you load a game.

You can switch to PGN Replay manually. If you do so it will replay whatever game you have "in memory". PGN Replay will not reload any game. It will reload latest_game only if there are no PGN moves in memory. This means that this new cool function with sidelines added has de-coupled the game loading/uploading and the PGN Replay. They are now independent functions giving the user more visibility and more choices on what to do.

At least one thing remains to be solved. Now the sidelines works, but they take up A LOT of space in the PGN Move window. We have to add some show/hide for them as well. But for now I have tested playing games, watching the sidelines, loading games with sidelines saved from before etc. It seems to work according to your idea Dirk. But it does need testing :-)

// Johan

waldomiro dias machado junior

unread,
Jun 14, 2026, 2:25:12 PM (13 hours ago) Jun 14
to pico...@googlegroups.com

Hi Johan, 

Let me ask you a question, would it be possible to make Picochess also save games in PNG format to a USB drive, which would fit in one of the Raspberry Pi's USB ports? 

I like to play on the 10-inch screen or on my Certabo or Chessnut. 

Having the USB drive option would also be great!

Congratulations on your work, it's amazing!!!

Waldomiro 
--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/fba08ef2-7fab-46b4-baff-d888cde099f6n%40googlegroups.com.

Johan Sjöblom

unread,
Jun 14, 2026, 2:54:46 PM (12 hours ago) Jun 14
to PicoChess

Oh I recognize that idea Waldomiro. You have mentioned it before I believe. I would do it with an rsync script that makes sure the games folder always copies a synchronized copy to any chosen location. The only thing picochess would need to do is to trigger that sync every time a game is saved…
So its doable… cannot say when I have time to do it, but its not a lot of work. The challenge is that we need to add yet another setting to picochess.ini… which would be the location of the usb drive on your system.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.

waldomiro dias machado junior

unread,
Jun 14, 2026, 4:45:06 PM (10 hours ago) Jun 14
to pico...@googlegroups.com
Hi Johan, 

Yes, I already made that suggestion. 

If you manage to do that in the future, it will be great to have that option! For me, it will be an excellent option!

Waldomiro

Em domingo, 14 de junho de 2026, Johan Sjöblom <messi...@gmail.com> escreveu:

Ah, reconheço essa ideia, Waldomiro. Acho que você já mencionou isso antes. Eu faria com um script rsync que garante que a pasta de jogos sempre copie uma cópia sincronizada para qualquer local escolhido. A única coisa que o picochess precisaria fazer é acionar essa sincronização toda vez que um jogo for salvo…
Então é possível… não posso dizer quando terei tempo para fazer isso, mas não é muito trabalhoso. O desafio é que precisamos adicionar mais uma configuração ao picochess.ini… que seria a localização do pen drive no seu sistema.
No domingo, 14 de junho de 2026, às 21:25:12 UTC+3, pet...@gmail.com escreveu:

Olá Johan, 

Gostaria de fazer uma pergunta: seria possível fazer com que o Picochess também salvasse partidas em formato PNG em um pen drive, que seria compatível com uma das portas USB do Raspberry Pi? 

Gosto de jogar na tela de 10 polegadas ou no meu Certabo ou Chessnut. 

Ter a opção de usar um pen drive também seria ótimo!

Parabéns pelo seu trabalho, está incrível!!!

Waldomiro 

Em domingo, 14 de junho de 2026, Johan Sjöblom <messi...@gmail.com> escreveu:
Feito. Deu mais trabalho do que eu esperava, mas está quase tudo pronto.

O ramo a ser testado é: 422- variações-experimentais-na-linha- lateral

Há um texto explicativo no PR. Para conseguir isso, precisei alterar o comportamento da função Ler (carregar) Jogo e da Repetição PGN. Acho que agora está melhor. Curiosamente, essa nova funcionalidade de linhas laterais me obrigou a redesenhar o modo de Repetição PGN e acredito que isso melhorou o resultado. A leitura de um jogo PGN armazenado, como last_game ou 1, 2, 3, ou o upload de um jogo PGN NÃO alterna mais automaticamente para a Repetição PGN. Isso tem a vantagem de você ver todas as informações do jogo PGN imediatamente ao carregar um jogo do disco (ou fazer o upload)... incluindo as novas variações laterais do tutor, caso o jogo carregado já as contenha. E todas as posições no cliente web são clicáveis ​​para continuar um novo jogo.
Jogar uma partida com o tutor agora salvará as linhas laterais para que estejam disponíveis na próxima vez que você carregar um jogo.

Você pode alternar para a Repetição PGN manualmente. Se fizer isso, ela reproduzirá qualquer jogo que você tenha "na memória". A Repetição PGN não recarregará nenhum jogo. Ela recarregará latest_game somente se não houver lances PGN na memória. Isso significa que essa nova função interessante, com a adição de linhas laterais, desacoplou o carregamento/upload do jogo e o Replay PGN. Agora são funções independentes, oferecendo ao usuário mais visibilidade e mais opções de ação.

Pelo menos uma coisa ainda precisa ser resolvida. Agora as linhas laterais funcionam, mas ocupam MUITO espaço na janela do PGN Move. Precisamos adicionar uma opção para mostrá-las/ocultá-las também. Mas, por enquanto, testei jogando partidas, assistindo às linhas laterais, carregando partidas com linhas laterais salvas anteriormente, etc. Parece funcionar conforme sua ideia, Dirk. Mas ainda precisa de testes :-)

// John

No domingo, 14 de junho de 2026, às 16:52:49 UTC+3, Johan Sjöblom escreveu:
Uau, Dirk. Estamos sendo criativos aqui. Se eu pensar na arquitetura "em voz alta", uma análise simples dos facilitadores necessários seria assim:

No momento, nem o servidor nem o cliente web armazenam variações da linha principal (variação principal). A estrutura de nós PGN na nova biblioteca de xadrez suporta o armazenamento de variações, pois é uma estrutura em árvore onde a linha principal/variação é simplesmente a primeira subárvore. Lembro-me disso porque precisei reescrever a forma como o arquivo de salvamento é gerado quando migrei para a nova biblioteca de xadrez. Portanto, o servidor teria capacidade para armazenar muitas variações, que em linguagem humana chamamos de linhas laterais. Para o tratamento da lista de lances PGN no cliente web, eu precisaria verificar qual modelo está sendo utilizado.

Você
recebeu esta mensagem porque está inscrito no grupo "PicoChess" do Google Groups. Para cancelar sua inscrição neste grupo e parar de
receber e-mails dele, envie um e-mail para picochess+...@googlegroups.com . Para
visualizar esta discussão , acesse https://groups.google.com/d/msgid/picochess/fba08ef2-7fab-46b4-baff-d888cde099f6n%40googlegroups.com .

Você
recebeu esta mensagem porque está inscrito no grupo "PicoChess" do Google Groups. Para cancelar sua inscrição neste grupo e parar de receber e- mails
dele, envie um e-mail para picochess+...@googlegroups.com .
Para visualizar esta discussão , acesse https://groups.google.com/d/msgid/picochess/3506f5c1-d7a8-4c0f-86c6-37c18dc3625an%40googlegroups.com .

Johan Sjöblom

unread,
12:49 AM (2 hours ago) 12:49 AM
to PicoChess
In the new test branch mentioned above: 422-experimental-side-line-variations

There are still things to be fixed but now you can:
a) click the explore button on the ANALYSIS tab which allows you to make moves on the web client without disturbing the game play, if you click it back to OFF the web client will return to its previous position, same if you make a new move on the eboard. You can also use it after game has finished and start from the main line or from a sideline variation
b) click the new button "lines" SHOW/HIDE to show the sideline variations in the PGN window (its the tutor variations that was considered better than the move you chose)

Needs testing. In the new explore mode I still sometimes need to wake up the web client stockfish by SHOW/HIDE toggle... And other small things, but the main feature is there for testing.

Reply all
Reply to author
Forward
0 new messages