Pachi: Software for the Board Game of Go / Weiqi / Baduk

Pachi can refer to: a simple modular framework for programs playing the game of Go/Weiqi/Baduk, and a reasonably strong engine built within this framework.

About Pachi

Pachi's official
KGS accounts
pachi2 | pachi30s
pachi | pachIV | pachIW

The default engine plays by Chinese rules and should be about 7d KGS strength on 9×9. On 19×19, assuming a higher-end (e.g. four-way Intel i7) machine, it can hold a solid KGS 2d rank. When using a large cluster (64 machines, 20 cores each), it maintains KGS 4d and has won e.g. a 7-stone handicap game against Zhou Junxun 9p.

By default, Pachi currently uses the UCT engine that combines Monte Carlo approach with tree search; UCB1AMAF tree policy using the RAVE method is used for tree search, while the Moggy playout policy using 3×3 patterns and various tactical checks is used for the semi-random Monte Carlo playouts. Large-scale board patterns are used in the tree search. Technical information (only slightly dated) about Pachi's architecture and algorithms can be found in Petr Baudis' Master's Thesis (more papers).

(More details.)

Download and Development

Current stable Pachi version is 11.00 (codename Retsugen), released on Apr 14, 2015. You can download the tarball or explore the source code online. You will need to compile it yourself for now; contributed binary builds and packages are heartily welcome!

Windows binary of stable Pachi version 11.00 kindly contributed by Neil McLean: pachi-11.00-win32.7z

Android version of stable Pachi version 10.00 with ElyGo frontend kindly contributed by Emmanuel Mathis: PlayStore APK source

Extra: Pattern files can be downloaded separately to give a good boost to Pachi's strength (but they are quite large).

Pachi implements only the playing algorithm and does not have any builtin user-friendly interface. In order to play with Pachi, you will want to also install a "GTP frontend" software, e.g. gogui; you can also use e.g. kgsGtp to connect your Pachi instance to an internet Go server (example config).

Pachi's main source code branch is maintained within the pachi.git repository. Patches and help is encouraged, as well as reuse of the source code base for your own research.

Pachi is completely free, but you can help Pachi's development by donating below! Donations go to the main author Petr Baudis, who can then spend more time on Pachi instead of unrealed for-hire work.

or bitcoin address 1AiTsEWMaiYpeJAo15eJwwQ7DjskCc8r9j

If Pachi was useful in your research, we will be glad if you cite the paper Baudis, Gailly – Pachi: State of the art open source Go program.

(citation export)


Contact Information

We use the pachi@v.or.cz mailing list for discussions, coordinating development and providing user support.

Pachi is being developed by:

Petr Baudis
The original Pachi developer and current Pachi maintainer.
Jean-loup Gailly
Focuses on running Pachi's tree search distributed on large clusters. Also has done a lot of work on parameter tuning, tree memory allocator and time management.