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, it might be about KGS 1k, assuming reasonable hardware, e.g. two-core Athlon64 machine. On 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 10.00 (codename Satsugen), released on Aug 12, 2012. You can download the tarball, browse older versions 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 10.00 kindly contributed by Neil McLean: pachi-10.00-win32.7z

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

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.

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.

If you are running a new enough version of Pachi, you can download extra pattern files to further boost its strength. Beware that the files are large and Pachi will require a lot of memory to use them; read the README file for details and instructions.

Pachi is completely free, but you can help Pachi's development by donating below! Any amount is appreciated. Donations go to the main author Petr Baudis, who can then spend more time on Pachi instead of unrealed for-hire work. You may also request and donate to development of specific features.

or bitcoin address 1AiTsEWMaiYpeJAo15eJwwQ7DjskCc8r9j

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.