freeAquarium


TL;dr: freeAquarium


Features

what you can do with freeAquarium:

all of this in the web, that means anytime from everywhere with every device.

(and much more to come…)

Updates:
04.03.18: users can self register! no need to ask for an account anymore!


Motivation

freeAquarium is inspired from Aquarium, let’s play chess, cerebellum book making and mixed in book making features.

Im (was) a long time user of Aquarium. One day I wanted to create a polyglot bin book from my tree, because as a linux user I hated the bookadapter.
So I began to write a plugin (in delphi…). That didnt end up very well, because it crashed a lot, data was wrong, documentation bad, etc and I quickly gave up.
Also, I always use engines on linux (because windows runs in a vm) and after years of fiddling around with ncat pipes to connect them to Aquarium, I got tired…


Overview

To get an overview, go to freeAquarium
You should see something like this:

The demo user cant write any data, except the book data.
This is in the column named “yourbook”, which can also be set with the right mouse button.

To download this data as a polyglot bin book “demo”, just click the “get your book” button.

You can sort the move grid per column names:
“k11-mx” means the minmax values for the Komodo engine. The same for the other engines “sf8-” and “sh13-”.
The “-eval” column is the evaluation of the engine, “+0.21|28” means score 0.21, depth 28.

Besides the “yourbook” column (which holds the weight of move), there are two other columns that belong to every user:
“yourcomment” is to type a comment with informator symbols for every move, and “youreval” is a special “human minimax” column:

You can type your own evaluation of a move there and even minmax it. Also, you can copy values from the engines columns with right click “copy to human” to this.
This column is for holding your own view/conclusion of a position which is important, if its different from the engines view/eval…


Connecting engines with “wsc”

Note: For browsing around in freeaquarium, you dont need to do this, especially the demo account cant write any data (except his book) anyway!
Update: For windows users, who dont like to fiddle with the cmdline, I made a small gui so they dont have to.
Unzip this archive to a folder and execute the “wsc-gui.exe”. This will ask for a username (demo if you logged in with demo), an enginename and the location of the engine.

For connecting an engine to freeaquarium, you need a small tool “wsc”.
This is a small go programm (source) that pipes the uci output of an engine to a websocket.
Compiled versions are available here

Please note that I havent tested the mac versions at all, because I have none.

To start wsc with an engine and connect, an example would be:
./wsc -u "ws://www.rohleder.de/freeAquarium/engine/demo/CFish9" -e /usr/games/cfish9 -d 20

Parameter:

Please note that I am pretty sure that chaos will arise if several demo users will connect their engines at the same time.
The intention of this system is to have several users using their own engines to contribute data, make a book (and compare them with other books…), not anon users.

(wss://) does only seem to work on linux? (I am not sure about this…)


User defined engines (and trees)

Every user can define their own engine definitions and trees. That means the user has responsebility for running which engines (and configs) to which trees.
The trees from these user defined names are private, which means nobody is able to see any data from it. (currently, the move itself is visible, but no data…)

“System” engines (and trees)

I only want engines that are running on linux (hence no Houdini) and support FRC (no Andsacs, etc)

Currently supported engines are:
(minimum eval depth means the minimum depth the engine needs so that the evaluation is written to the eval in the tree, the same for minimum minmax depth, but generating a minmax entry in the tree…)


Books

Every user has his own book in the “yourbook” column. If you want to add a move to your book, simply do an right click in this column to set the weight of the move to 100.

If you want more than one move in a position, the weight is the probability this move gets played in percentage.

To save your book in polyglot format, hit the button “download you book”. Maybe its a good idea to rename the file you get (your user name) to a .bin ending.

You can also view/compare your moves to another book in the “otherbook” column. To define which book that is, go to the “Options” dialog from the main menu. There are the books from other users and also I imported several other books that are available on the net:

I also imported komodo and shredder evals from the subproject “Project Cockpit” of the FEOBOS Project.


Technical

This is realized with some awesome tools that impress me every day:

A sample of the simple datamodel in neo4j:

Also, I would like to thank the authors of these libraries I use:

Without all of this, this project would not be possible. Thank you all so much, I learned a lot and still do!

Some parts I use here, are also part of the tourney manager.

I use it to test the book I made with fA against other books. results broadcast


Statistic

data as of (17.jun.19):

(~1400MB of neo4j data)


Contact

feel free to contact me.

I hang around at the irc freenode network with mroh and created a channel #freeaquarium there.

On lichess I am mroh and mrohBOT which runs the book made with this.

Some guix chess packages.