Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: We used 890M chess games to make an interactive opening graph (chessroots.com)
295 points by chessroots on Dec 1, 2019 | hide | past | favorite | 38 comments

Using the Lichess Database containing every live Lichess game ever played, we created a website to visualize chess openings. Each move on the graph is colored by the average Lichess rating of a player who makes it, you can use the graph to visualize several games at once and find transpositions between games. Transpositions are particularly interesting on a graph as they can be hard to spot otherwise.

You can see data from players similar to you by filtering the graph by Elo or time control. If you are interested in really high rated games you can swap the database and see tournament games with >2000 Elo from the Kingbase dataset, or to go even higher you can view a dataset from chess engines playing each other. It can be surprising how different the graph looks in tournament games compared to even high rated Lichess games, to swap or filter the dataset click the graph button at the top of the screen.

If you want to see the opening from a specific game on the graph you can use the "Trace Game" feature, then you can paste a PGN in, or if you are a Lichess player you can grab games from your Lichess account. To find a position you are interested in you can click search and enter it into a chessboard.

When I first looked at the website, I thought that it looked like a nice student assignment or a weekend project. But seeing that you are already attempting to monetize this website and that you are treating this somewhat seriously, I have to tell you that your software is lightyears behind the chess opening modules of professional chess software such as ChessBase 15 or Chess Assistant 12.



This costs £2 per month, while ChessBase 15 costs anywhere from €119.90 to €469.90 and Chess Assistant costs €59.96.

I can't speak to Chess Assistant, but as a longtime Chessbase owner/user, it lets you:

* Search any database (proprietary or freely downloaded) for games matching positions (partial position matches too)

* Quiz yourself on openings; e.g. the actual memorization of the move orders, which I don't believe ChessRoots is showing

* Generate endless tactics problems to drill on

* Generate annotations for games; e.g. branching moves, variations, text comments etc.

* Graphical markup of positions, to show tactics like pins, skewers, forks, etc.

* ChessBase gives you a perpetual license. You can upgrade if you think new versions are worth it (they usually aren't). I happily used ChessBase 9 for several years before upgrading to 14.

It's really not a fair comparison. If ChessBase is Photoshop, ChessRoots as it is now is just a simple painting tool. This isn't to say that ChessRoots can't be something worth the price down the road, but for now this is not a great comparison.

Chess.com is also something that I've happily paid for for many years. For $99 a year, you get unlimited tactics training, engine analysis (with Stockfish), and a full license to what used to be called Chess Mentor, in addition to opening specific training.

That is not a favourable comparison for this website.

For those who are looking for chess opening preparation software for free, I recommend just using lichess.org. Considering that lichess is ad-free and run by volunteers only, it is amazing how much it offers (although it's not enough for chess professionals).

Lichess is for professionals. Plenty of GMs ims and masters play on it. Even Magnus plays the tournaments. This is like saying Linux is not enough for computer professionals.

For anyone else like me who knows a little about chess but was wondering what a "transposition" is:


Oooh, this would be really useful for debugging minmax and other search algorithms if you can increase it to encompass the whole game. Congrats on shipping! What stack are you using?

cool tool. is the source code available?

The UI is not very clear. It's not obvious that you must doubleclick a node to expand it. Also, the options in the first move is to wide and it doesn't enter in the screen.

Feature request: Can I permalink a node?

Stuff that I found by clicking ..

1. click one of the "Connections" in the lower right to advance through a game.

2. click the copy symbol to the right of the board to copy as FEN

This might have been added since your comment, but for me it had a popup that told me to double click a node to expand it on first load.

If you need a popup to tell you how to use the most basic feature of your UI, that is a sign you need to rethink your UI.

How is this different than a standard opening database? Chessgames.com has had this for probably at least 10 years-- https://www.chessgames.com/perl/explorer as do a bunch of other sites and software packages.

It's a toy compared to serious chess database software.

It looks like it only goes about 6 moves deep and often only considers the most popular moves. For example, after 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3, reaching one of the most popular positions in all chess, it only continues with 6...e5. Chessbase mobile shows 42k games for 6...e5 and 25k for 6...e6, as well as 17 other options, at least 3 of which are theoretically important. It also shows their statistical score and some stats about the strength of the players who chose each move. A couple of taps away are the full games and a computer analysis on my phone: on the desktop app I'd also have crowdsourced evaluations with up to three different engines at depths my phone would take all day to reach.

I see the warning to try it on tablet or desktop for the best experience, and maybe I'm missing some features I need to see later. But for now I don't think this even offers a cool visualization. I'd be interested to see a competitor here, but the state of the art (lichess, Chessbase, chessgames, chess24, Scid) is around 10 years ahead of this.

I don’t think this is a toy and frankly, referring to the results of someone’s hard work as ‘a toy’ is extremely disrespectful. Be kind.

My heart tells me that the vast majority of serious chess players are kind and genuine people (eg Jerry from ChessNetwork), but the amount of rank snobbery i actually observe severely limits my interest in learning more about the game.

You have to subscribe to go deeper.

There are a few ways I find the graph representation of openings to be interesting:

You can naturally view transpositions in a way that can be tricky with other opening explorers. I find coloring moves by player rating to be very helpful for spotting obscure moves better players make (Black-White win rate can be less helpful as good players play each other so win rates don't change much). I also just find it more fun to look at a graph than a standard opening explorer, so find myself exploring openings I otherwise would not have looked at.

Think this dataset is heavily favored towards fast time controls, which gives the great lead on e4 over d4, as opposed to 365chess https://www.365chess.com/opening.php

This looks very interesting on first try, I'll take more of a look when I'm on a decent screen.

Can you at the moment, or would it be possible to show a position score calculation at each point? Obviously that is going to be time intensive if the scores are not already available in your source data, but it might be a useful addition as an option at any point. Explanatory comments also - where available - would be nice.

Excellent work, good luck.

Thanks for the feedback. I like the idea of adding position evaluations. Perhaps we could do this with a precomputed pass over the dataset, or possibly do a shallow analysis in the browser using a js port of stockfish, though this is probably not the best option.

It is not at all apparent that you have to purchase a subscription in order to see additional branches or go deeper.

Instead of a "+ 21 Supporter Links" button that can not be clicked, how about a "Subscribe to see 21 other branches!" with a link to your Support Us page.

If you follow the thickest lines, you get into the fried liver or 5... Na5 lines. Very suspicious.

This is DEFINITELY biased towards fast time controls and low ELO.

You're very likely correct. The Lichess dataset that we have used contains almost all live games played on the site. As fast time controls seem to be more popular on Lichess generally, and take less time to play, we do see a lot more of these in the data. If you'd like to filter the dataset to different time controls or skill levels, you can click the graph button at the top of the page, then click dataset from the drop-down.

Also it's "Elo", not "ELO" (it's not an acronym).

Nice Finegold call-out btw.

I am not suspicious :). I have taught my son to avoid the fried liver attack as black, but he has often walked into it and lost.

The fried liver was the first opening I ever studied while learning chess as a 8 year old. I had so much fun with it until someone pulled out 5... Na5 on me. Then I cried.

Awesome work! Is there a reason the isn't integrated into the Lichess opening explorer?

Lichess already has it inbuilt and in realtime. Just head into the analytics and then click on opening explorer.

Oh, I had not thought to look in the settings for the opening explorer until today. I knew it had the database of master's games, but didn't know you could explore games played on lichess and filter by rating. Learn something new all the time.

What's missing is restricting it to your own games only, like chess.com has for members. I think it'll come one day.

Our website is designed to be a more general viewer for these interesting chess datasets, although our main database is the Lichess one because of its size, we do also have other datasets from tournament games, and from chess engines playing against each other. We are not directly associated with Lichess.

Cool interface! What did you use to build it?

Does anyone know of any JavaScript based tools that let you explore graphs in a similar way?

h3, e5, uh... ️

What do I need to know in order to make something like this from scratch as a novice programmer?

Is understanding the HTML source code enough?

Far from it. You'll need to know, at a mininum, some Javascript and a database technology such as SQL. But it's good to start with being able to make a web page in HTML and figure out how to add new small features one at a time, learning new technologies as they come up.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact