// the find
giongto35/cloud-morph
Decentralize, Self-host Cloud Gaming/Application
CloudMorph runs Windows applications (games, desktop software) in a headless Linux container and streams them to a browser via WebRTC. It uses Wine + XVFB + FFMPEG for the virtualization/encoding pipeline and Pion for the WebRTC layer. The OpenEnv addition lets RL agents interact with Windows apps through a standardized HTTP API, which is the more interesting recent angle.
The architecture is genuinely well-decomposed: the CloudApp Core (input socket in, RTP stream out) is a clean interface that lets you swap frontends or add new consumers without touching the virtualization layer. Using Pion for WebRTC in Go rather than a browser-side signaling hack means NAT traversal is handled properly with real ICE/STUN. The OpenEnv integration is a concrete differentiator — being able to point an RL agent at arbitrary Windows software without writing custom environment wrappers is useful, and the examples (StarCraft, AoE2, Minesweeper) show it actually works. The etcd-backed discovery layer for the decentralized mesh is a reasonable choice that doesn't require a heavy broker.
The roadmap openly admits only collaborative mode is supported — every user looking at the same app session simultaneously, not isolated sessions per user. That's a fundamental limitation that makes it unsuitable for anything beyond demos and novelty. GPU acceleration is listed as a future goal, which means FFMPEG is CPU-encoding on the host; at any real load this will fall over. The project has been in low-maintenance mode since late 2021 (the changelog stops there), and the README still marks Windows support as WIP. Input simulation routes through a C++ WinAPI utility (syncinput.exe) that you have to trust and can't easily audit — it's a binary checked into the repo.