v0.3.8
Added
- Webcam input layers — live camera feed as a compositing layer (
--features webcam), cross-platform via nokhwa (v4l2/AVFoundation/MediaFoundation)- Capture thread with bounded channel, automatic frame drain (latest-only)
- "+ Webcam" button in layer panel, webcam controls panel (device name, resolution, mirror, disconnect)
- Preset save/load with webcam device reconnection
ParticleSystem::set_compute_shader()andclear_customization()for runtime particle shader management (infrastructure for future particle design system)- Combined "All Media" file filter — media file picker defaults to showing all supported types (images + video) when video feature is enabled
Changed
- Image scatter shader — spring-damper physics with hardcoded constants, random scatter direction on beat, skip transparent particles, remove audio color shift (preserve original image colors)
- CI: add
libclang-devdependency, clippy/test/build steps forwebcamfeature, release builds includewebcamfeature
Fixes
- Fix NDI runtime discovery on macOS — remove non-existent versioned dylib names, skip
exists()check (works around NDI 6.0.0 installer permissions bug), add/opt/homebrew/lib+NDI_RUNTIME_DIR_V6/V5env vars, show searched paths in UI when not found - Webcam robustness — validate camera access before spawning capture thread (user-friendly EBUSY error), catch libjpeg panics on corrupted MJPEG frames (skip frame instead of dying), detect dead capture threads with status bar notification, clean up capture when deleting webcam layers
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 for network video output
- Video playback (optional):
ffmpegon PATH for media layers
NDI® is a registered trademark of Vizrt NDI AB.