v0.3.11
kevinraymond/fosforav0.3.11Feb 28, 2026by github-actions[bot]
AI Summary
Introduces async preset loading and webcam stability improvements, ensuring smoother preset cycling and preventing layer growth issues.
Key Highlights
- Async preset loading with background thread decoding and atomic swap
- Webcam layer preset ordering fix to prevent extra stray layers
- Webcam decode panic hardening with backoff and auto-stop
- Clippy `never_loop` lint fix for CI
New Features
- Async preset loading
- Webcam robustness improvements
Full Release Notes
### Added - **Async preset loading** — presets with media/video layers decode in a background thread, keeping current content playing; atomic swap on completion with pulsing status bar indicator and preset button highlight - Generation-based cancellation for rapid MIDI preset cycling (only final preset applies) ### Fixed - **Webcam layer preset ordering** — loading a preset with a webcam layer no longer appends it to the end of the stack; webcam content is now placed in-place at its correct index, preventing extra stray layers and layer count growth on repeated save/load cycles - **Webcam decode panic hardening** — backoff (50ms sleep) after corrupted frame decode panics to avoid hammering a broken camera; auto-stop capture thread after 10 consecutive panics with user-visible error log - Log GPU present mode and available modes on startup for easier driver issue diagnosis - **Clippy `never_loop` lint** — replace `while`+`break` with `match` drain-and-retry in preset loader, unblocking CI for v0.3.11 release ## Downloads | Platform | File | Notes | |----------|------|-------| | **macOS** | `.dmg` | Universal binary (Apple Silicon + Intel) | | **Linux x86_64** | `.tar.gz` | glibc 2.35+ (Ubuntu 22.04+, Debian 12+) | | **Windows x64** | `.zip` | Windows 10+ | ## Getting started **macOS**: Open the DMG, drag Phosphor.app to Applications (or run directly). Signed and notarized. **Linux / Windows**: Extract, run `phosphor` from the extracted directory. The `assets/` folder must be next to the binary. ## Requirements - **GPU**: Vulkan (Linux/Windows) or Metal (macOS) - **Audio**: Built-in mic or line-in for audio-reactive visuals - **NDI®** (optional): [NDI® SDK runtime](https://ndi.video) for network video output - **Video playback** (optional): `ffmpeg` on PATH for media layers --- NDI® is a registered trademark of Vizrt NDI AB.