Release License Buy Me A Coffee
PadFlow is a native, ultra-lightweight gamepad calibration studio and virtual Xbox 360 controller emulator for Windows 10 / 11. Built from the ground up in Rust and Tauri v2, PadFlow bridges PlayStation 4 (DualShock 4) and PlayStation 5 (DualSense / Edge) controllers to XInput via ViGEmBus โ up to 4 gamepads at once, each in its own virtual Xbox 360 slot โ with sub-millisecond processing latency, zero bloat, and integrated HidHide anti-double-input protection.
- ๐ HID parser hardening: the deep deterministic fuzz suite caught and fixed two off-by-one bugs in the DualSense report parser that could crash the polling thread on truncated reports โ plus the circularity correction, which was a silent no-op, now really learns and corrects the stick reach.
- ๐งช 59 engine regression tests + deep fuzzing: the 1 kHz engine is now fuzzed end-to-end (input parsing, hot loop processing and output report construction with CRC-32) on every push and โ new โ every release is gated: a release never publishes until the full fuzz suite (500k+ buffers) passes.
- ๐ Release quality gate: the release pipeline now runs the complete fuzz suite in parallel and blocks publishing until it's green.
See the full history in CHANGELOG.md .
Every release is documented in CHANGELOG.md โ full history from v1.0.0, kept automatically up to date by GitHub Actions (the release notes are prepended on every published release).
- โก Sub-Millisecond Realtime Engine: Multi-threaded Rust HID engine running up to 1,000 Hz (1 kHz turbo polling) with sub-millisecond input translation.
- ๐ฎ Multi-Controller Support: Connect and emulate up to 4 gamepads simultaneously (any mix of DualShock 4 / DualSense / DualSense Edge), each mapped to its own virtual Xbox 360 controller slot.
- ๐ก๏ธ HidHide Anti-Double-Input Shield: Direct integration with the Nefarius HidHide driver to cloak physical PlayStation DirectInput devices from games so only the emulated XInput pad is detected, eliminating double-tap and ghost input glitches.
- ๐ฎ 100% Real PlayStation HID Support: Direct USB and Bluetooth HID parsing for DualShock 4 (
0x054C:0x05C4,0x09CC) and DualSense / DualSense Edge (0x054C:0x0CE6,0x0DF2). - ๐ Dynamic Stick Response Curve Tuner: Live 60 FPS interactive HTML5 canvas for visual curve shaping:
- Linear: Predictable 1:1 raw translation.
- Exponential: Micro-precision near deadzone center, rapid flick response at outer rim.
- S-Curve: Smoothstep mathematical curve for balanced precision and speed.
- Aggressive: Inverse-exponential instant ramp for arcade and fast-paced competitive titles.
- ๐ฏ Inner, Outer & Anti-Deadzone Calibration: Independent radial or axis-aligned deadzone configuration per stick.
- ๐ก Lightbar & Rumble Haptics: Custom RGB lightbar color assignment and rumble intensity shaping.
- ๐พ Custom User Profile Manager: Save, load, export (copy JSON to clipboard), and delete personalized curves locally.
- ๐ก๏ธ Shield Control Center: per-controller cloak toggles, global shield switch, CLOAK ALL / UNCLOAK ALL, hidden-device list, auto-cloak on connect & on startup, plus tray controls.
- โฌ๏ธ Built-in Auto-Update: Automatic GitHub release detection with one-click signed in-app updates and release-note preview.
- ๐ Automated ViGEmBus & HidHide Integration: Detects driver presence automatically with interactive 1-click installer support and official client launching.
- ๐ชถ Ultra-Lightweight Footprint: Consumes < 15 MB RAM, zero background bloat, no account required, 100% telemetry-free.
| Feature / Metric | โก PadFlow | ๐ฎ DS4Windows | ๐น๏ธ reWASD | ๐จ Steam Input | ๐ฎ DualSenseX |
|---|---|---|---|---|---|
| RAM Usage | < 15 MB | ~60 - 120 MB | ~150 - 250 MB | ~200 - 400 MB | ~80 - 150 MB |
| Backend Core | Rust + Tauri v2 | C# / .NET | C++ Closed | C++ Embedded | C# / Electron |
| Anti-Double-Input (HidHide) | Integrated (1-click) | Manual / Plugin | Proprietary | N/A | Limited |
| Interactive Curve Canvas | Yes (Real-time 60 FPS) | Basic Preset | Paid Feature | Basic Sliders | Basic Sliders |
| 1 kHz Turbo Polling | Native | Configurable | Configurable | Driver Dependent | Limited |
| Simultaneous Controllers | Up to 4 (multi-slot) | Up to 8 | Up to 4 | Up to 16 (API) | Multiple (limited) |
| Privacy / Telemetry | 0% (100% Offline) | 100% Offline | Online Checks | Steam Telemetry | Offline |
| Price / License | Free (MIT) | Free (Open) | Paid License | Bundled with Steam | Paid / Freemium |
| Custom Saved Profiles | Yes + JSON Export | Yes | Yes (Paid) | Cloud Sync | Yes |
| Portable Executable | Yes (Standalone) | Zip Extraction | No (Install Only) | No | Limited |
* Simultaneous Controllers = PlayStation pads connected and emulated as virtual Xbox 360 pads at the same time. Steam Input's 16 is its API handle limit โ it does not offer ViGEmBus-style virtual XInput emulation for arbitrary games.
PadFlow is Windows-only (10 / 11, x64) by design:
- The virtual Xbox 360 controller bridge runs on the ViGEmBus kernel driver and the anti-double-input shield on the HidHide filter driver โ both are exclusive to Windows (XInput itself is a Windows API).
- PadFlow is also bound to
hidapi's Windows HID backend and the WindowsrequireAdministratorelevation manifest, so cross-platform builds would lose the app's core features (no virtual controller, no cloaking). - The source tree keeps non-Windows fallbacks in the Rust modules (the app remains cleanly compilable on other platforms for development/auditing), but releases are only built and published for Windows.
Download the latest release from Releases:
PadFlow-Portable.exeโ Single standalone executable. No installation required.PadFlow_1.2.6_x64-setup.exeโ Recommended Windows installer with start menu shortcuts and bundled driver setup.PadFlow_1.2.6_x64_en-US.msiโ Standard MSI installer package for enterprise / automated deployment.
Note: PadFlow requires the ViGEmBus driver (
v1.22.0+) for virtual Xbox 360 controller emulation, and supports the HidHide driver for anti-double-input device cloaking. If missing, PadFlow provides interactive 1-click in-app installer launchers for both official signed drivers.
- Node.js (v18+)
- Rust toolchain (MSVC
x86_64-pc-windows-msvc) - Tauri v2 CLI
# 1. Clone the repository git clone https://github.com/jaimitus/PadFlow.git cd PadFlow # 2. Install dependencies npm install # 3. Run in development mode npx tauri dev # 4. Build production binaries (NSIS setup, MSI, updater artifacts & Portable) npm run tauri build
Note (update signing): production builds sign the update bundles, so they require the updater keys. Generate them once (
npx tauri signer generate -w ~/.padflow/padflow-updater.key) and export the two environment variables before building:export TAURI_SIGNING_PRIVATE_KEY_PATH="$HOME/.padflow/padflow-updater.key" export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="your-key-password"The updater fetches the update manifest from
https://github.com/jaimitus/PadFlow/releases/latest/download/latest.json, which is published automatically as part of every release.
Releases are fully automated by GitHub Actions โ no local build, signing or upload needed. Three workflows guard the pipeline:
CI - Windows manifest checkโ runs on every push/PR touchingsrc-tauri/**and verifies the release exe embedsrequireAdministrator(elevated manifest) while the debug exe does not.Release - publish signed binariesโ triggered by pushing a version tag. It builds and signs the bundles with the repo secrets (TAURI_SIGNING_PRIVATE_KEY/TAURI_SIGNING_PRIVATE_KEY_PASSWORD), publishes the GitHub release with all assets (NSIS installer, MSI, portable exe,.sigsignatures andlatest.json), and the in-app updater picks it up automatically.Changelog - auto-update CHANGELOG.mdโ runs on every published release and prepends the release notes toCHANGELOG.mdautomatically.
# 1. Bump the version everywhere (package.json, package-lock.json, # src/lib/version.ts, src-tauri/Cargo.toml, src-tauri/tauri.conf.json) # and write RELEASE_NOTES.md (the release notes โ the changelog entry is added # to CHANGELOG.md automatically by the release pipeline). # 2. Commit and push the bump. git add -A && git commit -m "v1.2.6: <summary of changes>" && git push origin main # 3. Tag and push โ the pipeline does the rest (build, sign, release, latest.json). git tag v1.2.6 && git push origin v1.2.6
Guardrail: the workflow refuses to run unless the tag version matches all three sources (
tauri.conf.json,package.json,Cargo.toml) โ fail-fast with a clear message naming the mismatched file. The release exe is also re-verified for therequireAdministratormanifest before publishing.Manual trigger: the workflow also accepts a manual run (Actions โ Release - publish signed binaries โ Run workflow) with the
taginput, handy for smoke-testing the pipeline before tagging.
This project is licensed under the MIT License โ see the LICENSE file for details.
Developed with โค๏ธ by jaimitus. If you find PadFlow useful, consider supporting development: