A Windows Forms GUI application for the PoCX Plotter - a user-friendly interface to create proof-of-capacity (PoC) plot files with CPU and GPU acceleration support.
- Multi-Device Support: Utilize CPU and up to 4 GPUs simultaneously
- Real-Time Monitoring: Live progress tracking with hash and write phase indicators
- Smart Device Detection: Automatic CPU and GPU enumeration via WMI and OpenCL
- Flexible Configuration:
- Adjustable memory limits and thread counts per device
- Compression ratio control (1-8x)
- Direct I/O and low-priority modes
- Customizable encounters and work group parameters
- Persistent Settings: All configuration saved between sessions
- Plot Resumption: Continue interrupted plotting operations
- Disk Management: Display free space and optimal sector alignment for output paths
- OS: Windows 7 or later (Administrator privileges required)
- .NET Framework: 4.5.2 or higher
- RAM: Minimum 4GB (8GB+ recommended for GPU plotting)
- Disk: Fast SSD/NVMe recommended for plot output
The GUI requires the PoCX plotter executables (not included):
pocx_plotter_cpu.exe- CPU-only plotterpocx_plotter_gpu.exe- GPU-accelerated plotter (requires OpenCL 1.x compatible GPU)
Place these executables in the same directory as PoCXPlotterGUI.exe or ensure they're in your system PATH.
For GPU acceleration, you need:
- OpenCL 1.x compatible GPU (NVIDIA, AMD, or Intel)
- Latest GPU drivers with OpenCL support
- Download the latest release from Releases
- Extract to desired location
- Ensure
pocx_plotter_cpu.exeandpocx_plotter_gpu.exeare present - Run
PoCXPlotterGUI.exeas Administrator
-
Clone the repository:
git clone https://github.com/JohnnyFFM/pocx_plotter_gui.git cd pocx_plotter_gui -
Open
PoCXPlotterGUI.slnin Visual Studio 2015 or later -
Restore NuGet packages:
- Right-click solution → "Restore NuGet Packages"
-
Build:
- Select Release configuration
- Build → Build Solution (Ctrl+Shift+B)
-
Output will be in
bin/Release/
-
Launch Application: Run
PoCXPlotterGUI.exeas Administrator -
Enter Account Details:
- Enter your PoCX address (Bech32 or Base58Check format)
- Optionally enable fixed seed for deterministic plotting
-
Configure Plot Size:
- Select unit: Warps (1 warp = 1 GiB), GiB, or TiB
- Enter desired plot size
-
Select Devices:
- Check detected CPUs/GPUs in the device list
- Set thread/work counts for each enabled device
-
Choose Output Path:
- Add one or more output directories
- View available disk space
-
Adjust Parameters (optional):
- Memory limit (MiB)
- Compression ratio (1-8x)
- Direct I/O, low priority, benchmarks
-
Start Plotting:
- Click "Start Plotting"
- Monitor real-time progress, speed (MiB/s), and ETA
- Stop anytime if needed
| Parameter | Description | Default |
|---|---|---|
| Compression | Compression ratio (1-8) | 1 |
| Encounters | PoW difficulty multiplier | 1 |
| Work Groups | GPU work group size | 512 |
| Memory Limit | Maximum RAM usage (MiB) | 4096 |
| Direct I/O | Bypass OS cache for writes | Enabled |
| Low Priority | Run plotter at below-normal priority | Disabled |
| Benchmark | Test mode without writing files | Disabled |
| Zero-Copy Buffers | For integrated GPUs with shared memory | Disabled |
If plotting is interrupted:
- Menu → "Resume from file"
- Select the
.pocx.tmpfile from output directory - Application will parse and populate settings
- Continue plotting from where it stopped
This project is based on work by the PoC-Consortium:
Uses the POC2 format (originally from Burstcoin) with enhancements:
- Fixed security vulnerabilities (on-the-fly compression attack)
- Scalable proof-of-work generation
- SIMD-aligned memory layout for performance
- Seed functionality for plot diversification
See CLAUDE.md for detailed development guidelines, architecture overview, and contribution instructions.
# Clone repository
git clone https://github.com/JohnnyFFM/pocx_plotter_gui.git
# Open in Visual Studio
start PoCXPlotterGUI.sln
# Restore packages and build
# F5 to run (requires Administrator)- NBitcoin (9.0.1) - Address encoding/decoding (Base58Check, Bech32)
- OpenCL.Net (2.2.9.0) - GPU detection and compute
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- PoC-Consortium for the original plotter and miner implementations
- Burstcoin community for the POC2 format specification
- All contributors and testers
For issues, questions, or contributions:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Note: This is a GUI wrapper for the PoCX plotter executables. The core plotting logic resides in the separate plotter binaries, which must be obtained separately.