β¨ Pixel Shell
High-Performance Desktop Overlay Engine & Asset Factory
Pixel Shell is a specialized engine designed to render high-framerate, transparent video overlays on Windows with minimal resource usage. It utilizes a custom "Snowplow" RLE compression algorithm to render uncompressed video frames directly via GDI, bypassing standard video players for absolute background transparency.
The project features a unique Binary Patching Architecture: instead of compiling code for every video, the CLI injects compressed asset data directly into a pre-compiled generic Runner executable, creating standalone, portable .exe files instantly.
π₯ Download Pre-built Binaries
Donβt want to build from source?
You can download the latest ready-to-use versions of the tools directly from GitHub Releases.
- ps-gui.exe β The Visual Interface
- ps-cli.exe β The Command Line Builder
- ps-runner.exe β The Template Engine
Place them in the same folder, and you are ready to go.
π Features
- β‘ Zero-Copy Rendering β Custom
.bin format optimized for CPU-based sparse rendering
- π Audio Sync β High-priority audio thread using
kira for precise A/V synchronization
- π¦ Standalone Output β Generates single-file
.exe overlays with no external dependencies
- π₯οΈ Visual Interface β User-friendly GUI for managing projects, downloads, and builds without using the terminal
- π οΈ All-in-One CLI β Advanced Download, Convert, Debug, and Build tools for automation
- π‘οΈ Watchdog Mode β Automatically restarts overlays if they crash or are closed
π Project Structure
This is a Cargo workspace organized into applications and shared libraries.
pixel-shell/
βββ apps/
β βββ ps-cli/ # Command Line Interface (backend logic)
β βββ ps-gui/ # GUI frontend (egui-based visual tool)
β βββ ps-runner/ # Template EXE (player engine)
βββ crates/
β βββ ps-core/ # Shared data structures (PixelRect, headers)
β βββ ps-factory/ # Binary building & patching logic
βββ target/ # Build artifacts
βββ pixel-shell.ico # Application icon
βββ Cargo.toml # Workspace configuration
π οΈ Building from Source
If you want to contribute or modify the engine, follow these steps.
Prerequisites
- Rust (via Rustup)
- FFmpeg & FFprobe (required for asset conversion)
- yt-dlp (required for downloading source material)
Compilation
You must build the entire workspace to generate the GUI, CLI, and Runner template.
git clone https://github.com/Khoa-Trinh/PixelShell.git
cd PixelShell
cargo build --release
Assemble the Toolset
Create a working folder (e.g., PixelShellTool) and copy the artifacts:
target/release/ps-gui.exe -> PixelShellTool/ps-gui.exe
target/release/ps-cli.exe -> PixelShellTool/ps-cli.exe
target/release/ps-runner.exe -> PixelShellTool/ps-runner.exe
π₯οΈ GUI Usage Guide
For the easiest experience, use the graphical interface.
-
Launch ps-gui.exe.
-
Configuration: On first run, go to the Settings tab and ensure the paths to ffmpeg, yt-dlp, and the ps-runner.exe template are correct.
-
Workflow:
- Download: Paste a YouTube URL, select a resolution (1080p / 720p / etc.), and name your project.
- Output Settings: Select the desired framerate (30 / 60 FPS) and resolution.
- Process: Click Run All Tasks to automatically download, convert, and build the standalone executable.
- Manage: Use the Runner tab to launch and monitor your generated overlays with the built-in Watchdog.
π» CLI Usage Guide
For automation or advanced usage, open a terminal in the folder containing the executables.
1. Download Content
Downloads a video, extracts audio, and prepares it for processing.
ps-cli.exe download --url "https://youtu.be/..." --resolution 1080p --project "my_overlay"
2. Convert Assets
Transcodes video frames into the optimized .bin format using the Snowplow algorithm.
ps-cli.exe convert --project "my_overlay" --resolutions "1080p,720p" --use-gpu
3. Build Standalone EXE
Injects converted assets into the runner template.
ps-cli.exe build --project "my_overlay" --resolutions "1080p,720p"
# Output will be placed in the /dist folder
4. Run the Overlay
Running via command line instead of double-clicking enables Watchdog mode.
ps-cli.exe run --target "my_overlay_1080p.exe"
π§ Troubleshooting
- Template not found β Ensure
ps-runner.exe is in the same folder as the CLI / GUI executable.
- FFmpeg not found β Ensure FFmpeg is installed and added to your system PATH, or configure the absolute path in the GUI settings.
- Black Background β Ensure your source video has a solid black background (
#000000) for the transparency engine to work correctly.
π License
This project is licensed under the MIT License.