From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Spark

an UCI compatible chess engine by Allard Siemelink, written in C++. During 2008, Allard Siemelink found that it became increasingly hard to improve his 0x88 engine Bright much further, and started to create a bitboard framework along with a Perft benchmark which evolved to Spark with search and evaluation developed from scratch to try as much as possible alternative search strategies and evaluation terms for the ones that are found in Bright. Spark's evaluation is data mined from a database of 700,000 high quality games [2]. Spark can be compiled to run under Windows, Linux and Mac OS.

Parallel Search

Like its earlier 0x88 relative Bright, Spark is able to search in parallel supporting up to 16 CPU cores, basically applying the Young Brothers Wait Concept. Since splitting is a cheap operation in Spark, avoiding an expensive copy of the board and associated data, the search tree can be split at any depth, maximizing the use of the otherwise idle cores.


Late Move Reductions as popularized by Fruit and Glaurung are used in Spark with different implementation details. The reductions are not history based, and all moves, except the first one, can be reduced by up to two plies depending on static criteria [3].

Tournament Play

Spark played the WCRCC 2009 [4], CCT12, ICT 2010, DOCCC 2010, DOCCC 2011 and ICT 2012.

Selected Games


DOCCC 2010, Round 6, Spark - Rybka

[Event "DOCCC 2010"]
[Site "Leiden NED"]
[Date "2010.11.27"]
[Round "6"]
[White "Spark"]
[Black "Rybka"]
[Result "1/2-1/2"]

1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 b5 8.Nxc6 Qxc6 9.O-O Bb7 10.Bf3 Qc7 
11.e5 Rc8 12.Bxb7 Qxb7 13.Qd3 Ne7 14.a4 bxa4 15.Rxa4 Nc6 16.f4 Nb4 17.Qe4 Qxe4 18.Nxe4 Rxc2 19.Rc1 
Rxc1+ 20.Bxc1 Be7 21.Bd2 Nd5 22.Nd6+ Bxd6 23.exd6 f5 24.Rxa6 Kf7 25.Ra7 Nf6 26.Bc3 Rb8 27.g3 Rb6 
28.Bxf6 Kxf6 29.Rxd7 Rxb2 30.h4 Rd2 31.Rd8 Kg6 32.Kf1 h5 33.Ke1 Rd5 34.Rd7 Rd4 35.Rd8 Kh7 36.Ke2 
Kh6 37.Ke3 Rd1 38.d7 Kg6 39.Re8 Rxd7 40.Rxe6+ 1/2-1/2


DOCCC 2010, Round 7, HIARCS - Spark

[Event "DOCCC 2010"]
[Site "Leiden NED"]
[Date "2010.11.28"]
[Round "7"]
[White "HIARCS"]
[Black "Spark"]
[Result "1/2-1/2"]

1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O Nbd7 
11.g4 b5 12.g5 Nh5 13.Kb1 Nb6 14.Na5 Qc7 15.Nd5 Nxd5 16.exd5 Bxd5 17.Qxd5 Qxa5 18.Bd3 Qd8 19.Rhg1 
Rb8 20.Be4 Qc7 21.Rg4 g6 22.Qd3 Kh8 23.Bd5 f5 24.Rgg1 a5 25.a3 Qd7 26.f4 Rfc8 27.Bb3 a4 28.Ba2 Qc7 
29.c3 Bf8 30.Rgf1 Rd8 31.h4 Bg7 32.Bd5 Re8 33.Ka2 Re7 34.Kb1 Qc8 35.Ba2 exf4 36.Bxf4 Be5 37.Be3 f4 
38.Bf2 Ng3 39.Bxg3 fxg3 40.Rde1 Qh3 41.Qf3 Qf5+ 42.Qxf5 gxf5 43.Rxf5 Bxc3 44.Rxe7 g2 45.Rxh7+ Kxh7 
46.g6+ Kg7 47.Rg5 Bf6 48.Rxg2 b4 49.axb4 Rxb4 1/2-1/2

See also

Forum Posts

External Links

Chess Engine



  1. An engraving of Benjamin Franklin's kite experiment, from page 159 (Fig. 82) of Le Roy Clark Cooley (1881). Natural Philosophy for Common and High Schools.
  2. Spark Chess by Allard Siemelink (Wayback Machine)
  3. Interview with Allard Siemelink by Frank Quisinsky, Schachwelt, January 10, 2010
  4. 2009 WCRCC: Bright/Spark issue by Charles Roberson, CCC, August 13, 2009

Up one Level