Skip to content

[Development suspended] Advanced open-source Texas Hold'em GTO solver with optimized performance

License

Notifications You must be signed in to change notification settings

b-inary/desktop-postflop

Repository files navigation

Desktop Postflop

Important

As of October 2023, I have started developing a poker solver as a business and have decided to suspend development of this open-source project. See this issue for more information.


Desktop Postflop is a free, open-source GTO solver for Texas hold'em poker.

This is a port of WASM Postflop to a native desktop application using the Tauri framework. Since WASM Postflop works on web browsers, it is more suitable for casual use. However, if you want to use the solver for more serious purposes, please consider trying Desktop Postflop.

Related repositories

Comparison to WASM Postflop

  • Shared features:
    • Free to use and open-source
    • Same solver engine and user interface
  • Advantages:
    • Faster computation
    • Able to use more than 4GB of memory
  • Disadvantages:
    • Needs to download the program and trust the execution
    • macOS builds are not distributed (you need to build the app yourself)

See the WASM Postflop repository for more detailed comparisons, including some commercial solvers.

Supported environments

  • OS
    • Windows: 10/11
    • macOS: 11.7 and later
      • We do not distribute macOS builds because we are not enrolled in the Apple Developer Program and cannot sign the app (please see the "Build" section below and build it yourself).
    • Linux: glibc 2.31 and later (e.g., Ubuntu 20.04 and later)
  • CPU
    • x86-64: must support AVX2 instructions
      • Intel: Haswell (2013) and later
      • AMD: Zen (1st gen; 2017) and later
      • If you have a CPU without AVX2 support, you can modify src-tauri/.cargo/config.toml and build it yourself.
    • Apple silicon: M1 and later

Download

You can download the app from the GitHub releases page.

  • Windows
    • The installer version (.msi) automatically installs dependent runtimes.
    • The portable version (.exe) requires the WebView2 runtime to be installed.
      • In most cases, the runtime should already be installed on Windows 10/11.
  • Linux
    • AppImage should work on most Linux distributions.
    • Alternatively, the .deb package is available for Debian-based distributions, including Ubuntu.

Uninstall

On Windows, please remove the following folder after the regular uninstallation to completely uninstall Desktop Postflop:

C:\Users\<username>\AppData\Local\b-inary.desktop-postflop

Build

Rust and Node.js need to be installed to build. On Linux, you will also need to install some dependencies; please see the Tauri documentation for details. For better performance, we also recommend installing the Rust nightly channel:

$ rustup install nightly
$ rustup default nightly

Then clone this reporitory and run the following commands:

$ npm install
$ npm run tauri build

If the build was successful, you should be able to find the application in the src-tauri/target/release/bundle/ directory.

If you want to use stable Rust instead of nightly Rust, please modify the following line in src-tauri/Cargo.toml (performance will be sacrificed):

[dependencies]
...
- postflop-solver = { git = "https://github.com/b-inary/postflop-solver", features = ["custom-alloc"] }
+ postflop-solver = { git = "https://github.com/b-inary/postflop-solver" }

Roadmap (in order of priority)

  • Results saving/loading feature (#8)
  • Hand filter feature for the result viewer (#6)
  • Node-locking feature
  • Short deck support
  • Aggregated reporting feature for multiple flops
  • GTO training mode (#9)

License

Copyright (C) 2022 Wataru Inariba

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.