v1.22.1

kevinraymond/fosforav1.22.1Jul 27, 2026by github-actions[bot]

AI Summary

Addresses a wide range of bugs including particle spawning logic, pitch-to-color mapping, camera orbit speed, and rendering artifacts. This patch ensures visual consistency across multiple effects.

Key Highlights

  • Fixed particle spawning logic for Vessel, Mycelium, Accretion, Tesla, Genesis, Symbiosis, and Phosphor.
  • Fixed pitch-to-color mapping for effects like Polycephalum and Cymatics.
  • Fixed camera orbit speed jumping when adjusted manually or via bindings.
  • Fixed particle rotation using incorrect values and Cymatics nodal figures drawing as dashed fragments.

Full Release Notes


### Fixed
- **Some effects spawned particles that ignored the music entirely.** A degenerate random-number generator left about one index in eight stuck near zero, so those particle slots passed every spawn test on every frame while their counterparts never spawned at all: Vessel fountained through silence, Mycelium had a fixed handful of strands branching forever, and Accretion kept re-seeding the same permanent attractors. Tesla's charge balance, Genesis' colony layout, Symbiosis' species split and Phosphor's sparkle scatter were skewed the same way and are now even.
- **Colour-by-pitch swept the wrong way round the wheel.** Effects tinted by the detected pitch class ramped backwards through every hue when the note wrapped from B to C, instead of stepping straight to the new colour. Polycephalum walked through eleven wrong species on the same transition and Cymatics crossfaded through every intermediate mode pair.
- **The Volumetric and Lattice camera jumped when you moved the orbit slider.** The orbit angle was derived from elapsed time, so changing its speed — by hand or from a binding — teleported the camera by an amount that grew the longer the app had been running. Binding the orbit to a beat made it strobe rather than turn. It now changes speed smoothly whenever you adjust it.
- **Particles in most effects were being rotated by a number that wasn't an angle.** The renderer spun each particle's quad by a value that only means "spin" in the default simulation; every other effect stores a size, an age or a depth in that slot, so Flux, Cascade, Murmur, Cymatics, Array, Accretion, Mycelium, Tide and Chaos were rotating sprites by it. Visible on any non-circular sprite.
- **Cymatics' nodal figure was drawn as dashed fragments.** Uneven particle scatter left whole stretches of the Chladni pattern unseeded, breaking the curves into dots and dashes; the lines are now continuous.

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