v1.39.0
DavidHDev/react-bitsv1.39.0Sep 22, 2026by github-actions[bot]
Upgrading?
AI Summary
This release introduces a new fluid simulation effect called Fluvid that reacts to motion, along with new color keying and masking nodes. It also enhances profiling capabilities and fixes several rendering and startup bugs.
Key Highlights
- New 'Fluvid' effect: A fluid simulation that reacts to camera or video motion with morphing liquid states.
- New 'Color Key' and 'Mask' nodes for transparency handling on video layers.
- Improved profiling builds: Now tracks individual passes, particle simulation, and snapshot times.
- Fixed startup crashes caused by file-watch limits and rendering jumps in effects like Aurora and Frost.
New Features
- Fluvid effect with reaction-diffusion maze and liquid morphing slider.
- Color Key node for keeping specific color families transparent.
- Mask node for keeping specific regions of a picture transparent.
- Custom '.pfx' effects support for speed parameters declared under 'rates'.
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
affaan-m/ECC★ 285,692
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
react/react★ 251,621
The library for web and native user interfaces.
nodejs/node★ 122,511
Node.js JavaScript runtime ✨🐢🚀✨
Leonxlnx/taste-skill★ 100,552
Agent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
louislam/uptime-kuma★ 92,730
A fancy self-hosted monitoring tool