Chess Artist

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Ferdy
Posts: 4018
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Chess Artist

Post by Ferdy » Sat Oct 15, 2016 1:48 pm

Version 0.1.0
A python script that can annotate chess games in pgn file with
static evaluation or search score of an engine, can annotate games
with cerebellum book moves using the Brainfish engine with its
Cerebellum_Light.bin book file, can annotate an epd file with acd,
acs, bm, and ce opcodes and can test engine with epd test suite.
Download.
https://github.com/fsmosca/chess-artist/releases


Sample annotated game.

[pgn]
[Event "New York"]
[Site "New York, NY USA"]
[Date "1927.03.13"]
[Round "15"]
[White "Aron Nimzowitsch"]
[Black "Jose Raul Capablanca"]
[Result "0-1"]
[EventDate "1927.02.19"]
[ECO "B12"]
[WhiteElo "?"]
[BlackElo "?"]
[PlyCount "92"]
[Annotator "Brainfish 280816 64 POPCNT"]

{Hash 32mb, Threads 1, @ 3.0s/pos}
1. e4 (1. e4 {cerebellum}) 1... c6 (1... e5 {cerebellum})
2. d4 (2. d4 {cerebellum}) 2... d5 (2... d5 {cerebellum})
3. e5 (3. Nc3 {cerebellum}) 3... Bf5 (3... c5 {cerebellum})
4. Bd3 (4. Nf3 {cerebellum}) 4... Bxd3 (4... Bxd3 {cerebellum})
5. Qxd3 (5. Qxd3 {cerebellum}) 5... e6 (5... e6 {cerebellum})
6. Nc3 (6. Nf3 {cerebellum}) 6... Qb6 (6... c5 {cerebellum})
7. Nge2 (7. Nf3 {cerebellum}) 7... c5 (7... c5 {cerebellum})
8. dxc5 (8. O-O {cerebellum}) 8... Bxc5 (8... Bxc5 {cerebellum})
9. O-O (9. O-O {cerebellum}) Ne7 $0 {+0.12}
10. Na4 $3 {+0.00} Qc6 $0 {+0.10}
11. Nxc5 $0 {+0.06} Qxc5 $0 {+0.12}
12. Be3 $0 {+0.17} Qc7 $0 {+0.02}
13. f4 $0 {+0.03} 13... Nf5 $6 {+0.22} ({Better is} 13...O-O 14. Rac1 Nbc6 15. c3 Rfd8 {+0.03 - Brainfish})
14. c3 $0 {+0.14} ({} 14. Bf2 {+0.22 - Brainfish}) Nc6 $1 {+0.18}
15. Rad1 $0 {+0.03} ({} 15. Bf2 h5 16. Rac1 O-O 17. Rfd1 {+0.18 - Brainfish}) 15... g6 $1 {+0.00} ({} 15...h5 16. Bf2 h4 17. c4 Nb4 {+0.03 - Brainfish})
16. g4 $0 {-0.05} ({Better is} 16. Bf2 h5 17. Ng3 Nxg3 18. Qxg3 {+0.20 - Brainfish}) Nxe3 $0 {-0.10}
17. Qxe3 $0 {-0.08} h5 $0 {+0.00}
18. g5 $0 {-0.09} 18... O-O $1 {-0.15} ({} 18...Kf8 19. a4 Kg7 20. Rc1 Rac8 {-0.09 - Brainfish})
19. Nd4 $6 {-0.34} ({Better is} 19. Kg2 Rfc8 20. Ra1 b5 21. Rac1 {-0.15 - Brainfish}) 19... Qb6 $0 {-0.19} ({Better is} 19...Nxd4 20. Rxd4 b5 21. a3 a5 {-0.34 - Brainfish})
20. Rf2 $1 {-0.17} ({} 20. Qe2 Rfc8 21. Kg2 Nxd4 22. Rxd4 {-0.19 - Brainfish}) Rfc8 $0 {-0.18}
21. a3 $3 {-0.29} 21... Rc7 $0 {-0.23} ({} 21...Kg7 22. h4 Nxd4 23. Rxd4 Rc4 {-0.29 - Brainfish})
22. Rd3 $1 {-0.20} ({} 22. Kg2 Kg7 23. Qe2 Nxd4 24. Rxd4 {-0.29 - Brainfish}) 22... Na5 $0 {-0.10} ({} 22...Nxd4 23. Rxd4 Kg7 24. Rfd2 a5 {-0.20 - Brainfish})
23. Re2 $6 {-0.17} ({} 23. Kg2 Kg7 24. h4 Nc6 25. Nf3 {-0.12 - Brainfish}) 23... Re8 $0 {-0.01} ({Better is} 23...Rac8 24. Qf2 Rc4 25. Red2 Nb3 {-0.17 - Brainfish})
24. Kg2 $0 {-0.11} ({} 24. a4 a6 25. b4 Nc6 26. a5 {-0.01 - Brainfish}) 24... Nc6 $0 {-0.06} ({} 24...a6 25. Nf5 Qxe3 26. Nxe3 Nb3 {-0.11 - Brainfish})
25. Red2 $0 {-0.15} ({} 25. Nf3 Qa6 26. Rd1 Qa4 27. Qd2 {-0.06 - Brainfish}) Rec8 $1 {-0.25}
26. Re2 $0 {-0.33} ({} 26. Nxc6 Qxc6 27. Qf3 Kg7 28. Rd4 {-0.25 - Brainfish}) 26... Ne7 $0 {-0.11} ({Better is} 26...Nxd4 27. Rxd4 Kg7 28. Kg3 a5 {-0.33 - Brainfish})
27. Red2 $6 {-0.18} ({} 27. Kg3 Rc4 28. Qf2 Nc6 29. Red2 {-0.11 - Brainfish}) 27... Rc4 $0 {-0.16} ({} 27...Nc6 28. Kg3 Nxd4 29. Qxd4 Qb5 {-0.18 - Brainfish})
28. Qh3 $1 {-0.09} ({} 28. Qe2 Nc6 29. Qf2 Nxd4 30. Rxd4 {-0.16 - Brainfish}) 28... Kg7 $1 {-0.33} ({} 28...Ra4 29. Qf3 Nc6 30. Qd1 Rc4 {-0.09 - Brainfish})
29. Rf2 $1 {+0.00} ({} 29. Qe3 Nc6 30. Qf2 Nxd4 31. Rxd4 {-0.33 - Brainfish}) 29... a5 $1 {-0.28} ({} 29...Rh8 30. Qe3 h4 31. h3 Qa6 {+0.00 - Brainfish})
30. Re2 $0 {-0.68} ({Better is} 30. Qe3 Qc5 31. Rfd2 a4 32. Rd1 {-0.28 - Brainfish}) 30... Nf5 $2 {+0.00} ({Better is} 30...Nc6 31. Qe3 Nxd4 32. Rxd4 Rxd4 {-0.68 - Brainfish})
31. Nxf5+ $0 {-0.16} gxf5 $0 {-0.06}
32. Qf3 $6 {-0.25} ({Better is} 32. Rf2 Rh8 33. Qh4 Qc7 34. Rd4 {-0.06 - Brainfish}) 32... Kg6 $0 {-0.20} ({} 32...Re4 33. Rdd2 h4 34. h3 Rh8 {-0.25 - Brainfish})
33. Red2 $0 {-0.34} ({} 33. Rf2 Re4 34. Qd1 h4 35. Qd2 {-0.20 - Brainfish}) Re4 $0 {-0.26}
34. Rd4 $0 {-0.66} ({Better is} 34. Qf1 h4 35. Rf2 Rh8 36. h3 {-0.26 - Brainfish}) 34... Rc4 $0 {-0.36} ({Better is} 34...Rxd4 35. cxd4 Rc1 36. Kg3 Rg1+ {-0.66 - Brainfish})
35. Qf2 $2 {-0.82} ({Better is} 35. Rxc4 Rxc4 36. h4 Re4 37. Qf2 {-0.36 - Brainfish}) 35... Qb5 $0 {-0.65} ({Better is} 35...Rcxd4 36. Rxd4 Qb5 37. Kf3 Rxd4 {-0.82 - Brainfish})
36. Kg3 $4 {-1.75} ({Excellent is} 36. Rxe4 Rxe4 37. Kf3 Qc4 38. Rd4 {-0.65 - Brainfish}) Rcxd4 $0 {-1.54}
37. cxd4 $0 {-1.75} 37... Qc4 $2 {-1.50} ({Better is} 37...Qb3+ 38. Kg2 Qe3 39. Qxe3 Rxe3 {-1.83 - Brainfish})
38. Kg2 $4 {-1.59} ({} 38. Kh3 Qb3+ 39. Kg2 b5 40. Qg3 {-1.50 - Brainfish}) b5 $0 {-1.53}
39. Kg1 $0 {-2.59} ({Excellent is} 39. h4 Qb3 40. Qf3 Qe3 41. Qxe3 {-1.53 - Brainfish}) 39... b4 $2 {-1.79} ({Excellent is} 39...Qc1+ 40. Kg2 Re1 41. h3 Qb1 {-2.59 - Brainfish})
40. axb4 $0 {-1.31} 40... axb4 $1 {-2.70} ({} 40...Qxb4 41. Kg2 Qb3 42. Qf3 Qe3 {-1.31 - Brainfish})
41. Kg2 $0 {-2.56} Qc1 $0 {-2.65}
42. Kg3 $0 {-2.82} Qh1 {-3.25} 43. Rd3 {-3.03} Re1 {-3.15}
44. Rf3 {-3.90} Rd1 {-3.42} 45. b3 {-3.87} Rc1 {-5.14}
46. Re3 {-21.81} Rf1 {-14.54} {[WhiteAveError=0.21, BlackAveError=0.07] [ratingDiff=33]} 0-1
[/pgn]

Henk
Posts: 5648
Joined: Mon May 27, 2013 8:31 am

Re: Chess Artist

Post by Henk » Sat Oct 15, 2016 2:27 pm

Currently you can only use computers to find tactical mistakes.

User avatar
gbtami
Posts: 362
Joined: Wed Sep 26, 2012 11:29 am
Location: Hungary
Contact:

Re: Chess Artist

Post by gbtami » Sat Oct 15, 2016 6:54 pm

Congrats on first github release!

Ferdy
Posts: 4018
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Chess Artist

Post by Ferdy » Sat Oct 15, 2016 11:55 pm

Henk wrote:Currently you can only use computers to find tactical mistakes.
When someone is no longer that competitive, it is just better to let the computer find the best move for us :).

Ferdy
Posts: 4018
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Chess Artist

Post by Ferdy » Sun Oct 16, 2016 12:07 am

gbtami wrote:Congrats on first github release!
Thanks. I actually screwed everything from commit, pull request, up to my locat git repo, this .ignore file is giving the most headache of what it is :).

In the release there is a source code downloadable file, but it automatically includes my other directories which is not a source code :shock:.

swami
Posts: 6535
Joined: Thu Mar 09, 2006 3:21 am

Re: Chess Artist

Post by swami » Sun Oct 16, 2016 2:11 am

Very good choice of a program name. :-)

Regards,
Swami

Ferdy
Posts: 4018
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Chess Artist

Post by Ferdy » Sun Oct 16, 2016 4:00 am

swami wrote:Very good choice of a program name. :-)

Regards,
Swami
Analysis and annotate were already taken :)

tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 8:11 pm
Location: upstate

Re: Chess Artist

Post by tpoppins » Sun Oct 16, 2016 4:31 am

"YodaChess" a much better name would be - at all those "better is" just look! And not taken by anyone yet it is, I bet. ;)

supersharp77
Posts: 699
Joined: Sat Jul 05, 2014 5:54 am
Location: Southwest USA

Re: Chess Artist

Post by supersharp77 » Sun Oct 16, 2016 9:45 am

Ferdy wrote:
Henk wrote:Currently you can only use computers to find tactical mistakes.
When someone is no longer that competitive, it is just better to let the computer find the best move for us :).

If it really works...it's a stroke of "Pure Genius".....Congrats...AR :D :wink:

zenpawn
Posts: 284
Joined: Sat Aug 06, 2016 6:31 pm
Location: United States

Re: Chess Artist

Post by zenpawn » Sun Oct 16, 2016 11:33 pm

This is a great program! I've yet to take advantage of all the impressive new features you've been adding, but even right out of the gate, it's been one of my favorite tools.

One request, if I may. Currently, the evals are from white's point of view when annotating a game, but from the STM when adding ce scores to an EPD. Could you maybe add a flag that would let the user decide whether the score in either case is for the STM or white's perspective?

Thanks,
-Erin

Post Reply