v1.31.0
kevinraymond/fosforav1.31.0Jul 31, 2026by github-actions[bot]
AI Summary
Adds cross-platform output support for Linux (V4L2 virtual camera) and macOS/Windows (Spout/Syphon), and fixes streaming stability issues.
Key Highlights
- Linux: Fosfora is now a virtual camera (V4L2) visible to OBS, Zoom, etc.
- Windows: Added Spout output support for Resolume, OBS, TouchDesigner.
- macOS: Added Syphon output support for VDMX, OBS, MadMapper.
- Fixed window minimization crash during streaming.
- Fixed NDI sender status reporting to show failures correctly.
New Features
- V4L2 virtual camera output
- Spout output
- Syphon output
Full Release Notes
### Added - **Fosfora is now a virtual camera on Linux.** Enable it under Settings → Outputs and any V4L2 consumer — OBS, Zoom, browsers, ffmpeg — sees the live output as a webcam. Needs the `v4l2loopback` kernel module (the panel shows setup instructions when it's missing); defaults to browser-compatible YUYV, with a BGRX passthrough option. - **Spout output on Windows.** Enable it under Settings → Outputs and Spout-aware apps — Resolume, OBS, TouchDesigner — see Fosfora as a live texture source named "Fosfora" (configurable). No runtime to install; it follows window resizes, and failures show in the panel instead of failing silently. - **Syphon output on macOS.** Enable it under Settings → Outputs and Syphon-aware apps — VDMX, OBS, MadMapper, Magic — see Fosfora as a live texture source named "Fosfora" (configurable). The Syphon framework ships inside the app bundle, so there is nothing to install; it follows window resizes, and failures show in the panel. ### Fixed - **Minimizing the window no longer crashes the app when an output is streaming.** On Windows, minimize arrives as a zero-size resize; with NDI (or any output) active this killed the app outright. Outputs now hold their last real size while minimized — the stream keeps playing uninterrupted. - **A failed NDI sender no longer looks healthy.** If the sender died after startup, the status dot stayed green with zero frames sent; the panel now shows the failure in red and the dot goes off. It also reports frames sent and frames dropped while streaming. - **Scene cues' per-cue parameter overrides and beat-length transitions now work.** A cue that overrode layer parameters played back exactly like the plain preset — the field saved, loaded, validated, and did nothing — and `transition_beats` was likewise ignored, every transition using its length in seconds. Overrides now apply when the cue loads (including presets with media still decoding), morph transitions land on the overridden values, and in Beat Sync mode a transition given in beats follows the detected tempo. Locked layers keep their live values, as on preset load. ## 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 Fosfora.app to Applications (or run directly). Signed and notarized. **Linux / Windows**: Extract, run `fosfora` 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.