Skip to content

v0.3.8

Choose a tag to compare

@github-actions github-actions released this 27 Feb 12:38
· 441 commits to main since this release

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() and clear_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-dev dependency, clippy/test/build steps for webcam feature, release builds include webcam feature

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/V5 env 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): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.