Dinkelhuber is a purely browser based 9x9 Go client and opening explorer that you can visit at go.yannikkeller.de.
In the tab on the right, you can explore over 400k OGS games, exploring the number of games, winrates for black and white and the average rating of the players of each move. By clicking on the cogwheel in the top-right, you can also filter the games for rules, komi or player strength. Below the moves on the right, you will find a list of top OGS games played in the line, which you can easily reach by clicking on them. Note that the ratings might not always perfectly match with the ones shown at OGS, but that's caused by the way OGS handles ratings and rating change.
You can directly import OGS games to dinkelhuber. Just visit your game on OGS, copy the Game ID from the end of the URL, enter it into dinkelhuber's Game ID input field, hit enter, and the use the arrow keys to navigate through the game.
The browser go client can show engine lines in lizzie style. Of course, as I am not rich, I can't provide free katago analysis from my server, so you will have to run katago on your own machine. To get going, first make sure, that you have a working katago on a Linux machine (No Windows support yet). Then clone this repository. Navigate to python_server/gtp_socket_wrapper and create a folder
katago where you put your katago executable as well as your
default_model.bin.gz in. You will need Python 3 with the websock package installed
pip3 install websock. Now start a terminal in
python_server/gtp_socket_wrapper and run
python3 websocket_server.py. In a browser navigate to go.yannikkeller.de and enter
localhost:8030 into the GTP engine field and hit enter. If everything worked correctly, you should see engine evaluations plopping up on the board after a few seconds.
The neat thing about running katago via a websocket is that you can also access your katago instance remotely via your local network or even via the internet (If you have a good understanding of networking and sockets). To do this, you will need to edit the ip in
server = WebSocketServer(ip="localhost", port=8030, in websocket_server.py to your machines network ip and then you can access it via this ip from your phone for example.
Thanks OGS for providing such a nice and easy game downloading api, without which dinkelhuber would not be possible.
Thanks to lichess the forever free and awesome chess platform, I got my opening explorer design from.
Thanks to kocsten for some awesome button designs.