Find probable waste across CPU, GPU, RAM, VRAM, graphics resources, and frame presentation, then turn narrow evidence into fail-closed runtime decisions.
FluidGateway is the diagnostic and decision layer of the Fluid project. The long-term goal is an intelligent software gateway that reduces avoidable data movement and synchronization on conventional PCs. Software cannot recreate physically unified memory, but it can coordinate the path with less waste.
| Capability | State |
|---|---|
| PresentMon 2.x diagnosis | Working CLI with HTML and JSON evidence |
| Policy and runtime modeling | Advisory and dry-run by default |
| FluidLink v2 | Strict positional binary IPC with numeric opcodes |
| FluidLink operation batch | 129 logical operations in 1 bounded request/vector pair |
| Local decision server | Loopback-only, 8-worker limit, absolute read deadlines |
| Local readiness | doctor reports available and blocked capabilities without changing system settings |
| Native intervention | Bounded owned D3D11 and D3D12 paths through FluidRuntime |
| External games, driver hooks, general scheduler | Not implemented |
The v0.67.1 hardening release adds atomic report/state replacement, exclusive Windows loopback binding, bounded readiness checks, interrupt-safe CLI exit, and correct per-adapter VRAM classification on multi-GPU hosts. FluidRuntime v0.21.2 includes verified subprocess cleanup, native-probe deadlines, atomic evidence files, and stricter native compiler/linker gates without widening actuation authority.
This is protocol and owned-lab evidence. It is not proof of higher game FPS, lower power, physical RAM/VRAM placement, or reduced PCIe traffic.
Requires Python 3.10 or newer. The diagnostic CLI has no third-party runtime dependencies.
git clone https://github.com/maxhuntert1414-max/FluidGateway.git
cd FluidGateway
python -m unittest
python -m fluidgateway doctor --out tmp/doctor.json
python -m fluidgateway analyze `
--presentmon tests/fixtures/copy_present.csv `
--out tmp/report.htmlOutputs:
tmp/report.html: ranked, readable diagnostic reporttmp/report.json: the same evidence as structured data
Run the local decision server:
python -m fluidgateway runtime serve-events --host 127.0.0.1 --port 8765PresentMon -> diagnosis -> policy/ledger
FluidRuntime intent <-> FluidLink binary IPC <-> FluidGateway decisions
bounded policy -> owned native hook -> evidence and rollback
FluidGateway does not inject code, modify drivers, or silently optimize games. The cooperative native experiments and Windows/GPU telemetry live in FluidRuntime.
The local server is not a privilege boundary: it accepts loopback clients and returns decisions, while trusted FluidRuntime clients independently pin the expected server PID and executable hash. Run it only in a trusted user session.
- Technical reference
- v0.67.1 hardening notes
- FluidLink v2 base protocol
- FluidLink v2 operation-batch profile
- Canonical contracts and golden vectors
- FluidRuntime v0.21 transfer evidence
- Contributing
- Security
MIT licensed. Experimental, evidence-first, and intentionally narrow wherever the project has authority to alter execution.
