v1.38.0

qdm12/dnsv1.38.0Sep 21, 2026by github-actions[bot]

Upgrading?

AI Summary

Introduces a new 'trama' node graph system for routing and post-processing layers in Fosfora. Features include anchor nodes, a command to scaffold new effects, and UI improvements for canvas interaction.

Key Highlights

  • Trama Anchor node for routing wires around nodes
  • Eleven new trama nodes (Blur, Mirror, Kaleidoscope, etc.)
  • Command to scaffold trama nodes: `cargo xtask new-effect`
  • Trama Key node for transparency
  • Canvas wires are now 4px and easier to grab

New Features

  • Node graph routing system
  • Effect file scaffolding tool
  • UI enhancements for wire interaction

Full Release Notes


### Added
- **trama Anchor node, for routing.** Right-click → Utility → Anchor drops a bend in a wire so
  a patch can route around a node instead of crossing it. It draws as a small bead on the
  wire, passes its input straight through, costs no render target, and is left out of the
  layer row's node count — tidying a patch shouldn't make the layer look busier.
- **Eleven new trama nodes.** Levels, Blur, Mirror, Kaleidoscope, Pixelate, Chromatic
  Aberration, Scanlines, Edge and Palette Map, plus two new sources, Gradient and Solid. Every
  Float on them modulates like the rest, and with the Key node below the library holds sixteen.
- **`cargo xtask new-effect <id>` scaffolds a trama node.** Writes a file that already
  compiles and already does something visible, with `--inputs 2` and `--source` for the other
  two shapes. The app picks up a newly created file without a restart, so a new node is in the
  palette by the time you switch windows.
- **trama Key node: dark becomes transparent.** A particle layer's "black" is a faint haze, so
  placing one over another layer left a visible rectangle whatever blend mode you picked. Wire
  `Layer input → Key → Output` and the box is gone; `invert` keys out the bright end instead,
  which makes the node a matte.
- **`/fosfora/overlay/visible` sets the UI shown or hidden over OSC.** The existing
  `toggle_overlay` trigger only flips it, so a show controller or capture script could never be
  sure which state it left the panels in.

### Changed
- **Layer input moved from Utility to Sources in the trama add-node menu.** It takes no input
  and hands the chain a picture, which is what a source is, and it's the first thing a new
  chain needs.
- **trama canvas wires are easier to hit.** Wires were drawn barely a pixel wide, which also
  set how close the pointer had to come to grab one; they are now 4px and thicken on hover,
  right-click removes a hovered wire and the canvas says so, and pins catch a dropped wire
  from twice as far without the dots growing. The old on-wire "×" button is gone.

### Docs
- **A picture-first [wiki](https://github.com/kevinraymond/fosfora/wiki).** A tour of what
  Fosfora looks like and how to get there, in clips rather than prose, opening on trama node
  chains. The tutorial recipes and the gallery gained clips too; the written manual stays in
  `docs/`.

### Fixed
- **Shards could blow the whole frame out to white.** Its `edge_glow` slider reads 0–1, but a
  binding or oscillator can drive a parameter past the range the slider shows, and anything
  below zero sent the edge term to infinity.

## 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