v1.39.0
qdm12/dnsv1.39.0Sep 22, 2026by github-actions[bot]
Upgrading?
AI Summary
Adds the Fluvid video effect with fluid simulation reacting to motion and introduces new trama nodes for masking.
Key Highlights
- Fluvid: fluid simulation reacting to motion
- New trama nodes: Color Key and Mask
- Custom speed parameters for .pfx effects
New Features
- Fluid simulation effect
- Color Key node
- Mask node
Full Release Notes
<table>
<tr>
<td width="33%"><img src="https://github.com/kevinraymond/fosfora/releases/download/demo-assets/fluvid-v1.39.0.webp" width="100%" alt="Fluvid over Panorama"></td>
<td width="33%"><img src="https://github.com/kevinraymond/fosfora/releases/download/demo-assets/fluvid-v1.39.0-group.webp" width="100%" alt="Fluvid over a video of friends celebrating"></td>
<td width="33%"><img src="https://github.com/kevinraymond/fosfora/releases/download/demo-assets/fluvid-v1.39.0-dancer.webp" width="100%" alt="Fluvid over a video of a woman dancing with headphones"></td>
</tr>
<tr>
<td><sub>Fluvid over <i>Panorama</i>.</sub></td>
<td><sub>Fluvid over <i>Diverse Group Of Young Hipster Friends happily celebrating</i>.</sub></td>
<td><sub>Fluvid over <i>Blonde Woman Dancing to Music with Headphones Studio Clip</i>.</sub></td>
</tr>
</table>
<sub>Both videos: Free Stock video by <a href="http://www.videezy.com/">Videezy</a>.</sub>
### Added
- **Fluvid: move in front of a camera and your motion stirs a real fluid**, with a reaction-diffusion maze growing in the ink. Place it above a webcam, video or any effect. A medium slider morphs the liquid from ink to mercury that mirrors you to rippling water.
- **Two new trama nodes, Color Key and Mask,** keep one color family or one region of a picture and make the rest transparent. On a layer beneath Fluvid, whether a webcam, a video or another effect, they decide what Fluvid reacts to.
- **A layer that works on the layers beneath it now says so** ("Needs a layer below") when nothing enabled sits under it, instead of silently rendering nothing.
- **Custom `.pfx` effects can list speed parameters under `"rates"`.** Fosfora keeps each one's running total in a slot after your parameters, so a shader never has to multiply a parameter by `u.time`; a period in seconds can be declared too. `scripts/audit_pfx_rates.py` finds shaders that still multiply by `u.time`.
### Changed
- **Profiling builds time each pass of a multi-pass effect,** plus particle simulation, particle drawing and the snapshot of the layers below, instead of only each layer's total.
- **Building from source: `--features release` gives exactly what the downloads include.** A plain `cargo build` still has no optional features.
- **`fosfora --help` now explains itself.** Each mode says what it is for, the optional features are listed with the ones your build has marked and how to build the rest, and it shows where your settings live.
- **Particle uniforms grow from 960 to 992 bytes**, so particle compute shaders can read params 8–15 through `param()`. The new block is appended after the last field, so no offset moves and custom sims keep working unchanged.
- **The benchmark report now accounts for every track it does not score.** A new Exclusions section lists them by reason: for Harmonix, 538 of 912, mostly YouTube audio that does not match the annotated recording or videos that are gone. A drop-prediction claim that had not been measured on the current predictor was removed.
### Fixed
- **Loading a video into an existing layer failed with no message** when the clip was over the 60-second limit; the reason now shows in the status bar, as do failed preset saves and a webcam that will not start as a particle source.
- **Ten effects jumped when a binding or a drag moved their speed after the app had been running a while:** Aurora, Chromatica, Cymatics, Drift, Lumen, Prism, Storm, Tesla, Tunnel, and Frost's dunes. The change in speed was multiplied by the uptime; it now changes only how fast they move from that moment on.
- **Moving Etch's clear-cycle fader wiped the drawing again and again** once the app had been up a while: 8 clears during a 3-second drag at five minutes, now at most one.
- **Frost's crystals jumped instead of wandering once the app had been running a while.** Their drift speed follows the music, and every change in it was multiplied by the app's uptime, so a few minutes in, each shift in the sound threw the cells to new places. They now drift smoothly however long the app has been up.
- **Fosfora refused to start, with no window and no error status, when the system's file-watch limit was used up** (for example by an editor watching a large folder). It now starts without shader hot reload and says so in the status bar. A failed startup now exits with status 1 instead of 0.
## 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.
Related Repositories
ollama/ollama★ 184,250
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,071
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,640
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.
Gentleman-Programming/engram★ 87,306
Persistent memory system for AI coding agents. Agent-agnostic Go binary with SQLite + FTS5, MCP server, HTTP API, CLI, and TUI.