Skip to content

Releases: kevinraymond/fosfora

v1.36.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 18:22

Fixed

  • Array, Cascade, Tesla, Tide and Vessel now look the same at any frame rate. Their
    background glows were drawn at a fixed strength per frame and their trails drifted a fixed
    distance per frame, so a 120 fps machine ran them brighter and smeared them further than a
    60 fps one. Tesla was the worst in the set, at roughly 1.4x brightness. Nothing moves at
    60 fps.
  • Tide's falling afterglow travelled twice as far per second at 120 fps as at 60, and the
    effect passed its frame-rate check anyway: the check compared average brightness, which was
    identical while the picture was not. It now compares the pictures.
  • Chaos, Mycelium and Murmur now look the same at any frame rate. Chaos's attractor traced
    four times as much of its orbit per second at 120 fps as at 30, Mycelium's network skipped
    half its branching opportunities below 60 fps and grew visibly sparser, and Murmur's flock
    swung onto its heading faster the higher the frame rate. Nothing moves at 60 fps.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.35.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 18:01

Fixed

  • Feedback backgrounds no longer change brightness with the frame rate. The 14 effects
    that accumulate particles into a trail — Cascade, Tesla, Mycelium and others — settled at
    about half their intended brightness at 30 fps and double at 120. Measured on Cascade:
    47.7% spread across 30/60/120 fps, now 6%. Nothing moves at 60 fps.
  • Particle ribbon trails last the same time at any frame rate. Cleave, Tide and Vessel
    measured their trails in frames, so a trail running 267 ms at 60 fps stretched to 533 ms
    at 30 and shrank to 133 ms at 120.
  • Panorama's graticule no longer brightens or smears with the frame rate. Its centre and
    edge guides were drawn at a fixed strength per frame, and its echo drifted a fixed distance
    per frame, so the reference line the effect exists to provide got both stronger and wider
    the faster your machine ran. Brightness spread across 30/60/120 fps drops from 59% to 1%.
  • Ascend's horizon wake rises at the same speed on any machine. The afterglow climbed a
    fixed distance every frame rather than every second, so it travelled twice as far per
    second at 120 fps as at 60. Brightness spread across 30/60/120 fps drops from 14% to 2%.
  • Diffusion blur is measured in seconds now, so Protea's bodies, Sumi's ink and
    Polycephalum's network smooth at the same rate however fast the machine runs. Protea's
    brightness spread across 30/60/120 fps drops from 41% to 18%.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.34.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 16:10

Fixed

  • Trail and feedback effects measure trail length in seconds now, not frames, so the same
    preset looks the same on a 30 Hz laptop and a 240 Hz desktop — at a decay of 0.82 the image
    surviving one second ran from 2.6e-3 at 30 fps to 2.1e-21 at 240. Nothing changes at 60 fps;
    above it, feedback backgrounds that accumulate particles settle brighter than they used to,
    and below 30 fps trails run a little long instead of flashing dark on a stutter.
  • The drop event fires on drops now — it had gone off once in 141 reference drops across
    374 tracks, because it demanded 4 seconds of unbroken build-up before it would even watch
    for one. On nine hand-labelled EDM tracks it now catches 7 of 23 drops at three wrong cues
    for every right one; it still fires on build-ups and breaks. The audio panel's Drop sliders
    trade sensitivity against false cues.
  • The drop jump window now lasts the 1.5 seconds it always claimed. It was sized against
    the analysis rate but filled at a tenth of it, so the setting was off by nearly ten times —
    and by different amounts at different sample rates (12.9 s at 44.1 kHz, 14.1 s at 48 kHz).

Added

  • Two new Drop sliders in the audio panel: "Arm hold" keeps the drop armed through a cut
    before the drop, for material where the build-up drops out entirely first (off by default);
    "Jump window" sets how far back the loudness-jump baseline looks.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.33.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 03:26

Added

  • New /fosfora/v1/section/boundary Signal address fires whenever the music changes
    material, carrying a confidence and the boundary's age in seconds. /section only ever
    spoke when its label changed, so a chorus following a verse was silent; this one is not.
    Gate on the confidence if false cues are costly — the top third of events are right about
    66% of the time against 38% for the bottom third.

Changed

  • Section boundaries are actually detected now. The self-similarity novelty had been
    computed and published for four releases without anything ever thresholding it, so the
    section stream announced 3.7 boundaries on a track averaging 12.3 — boundary accuracy
    0.105 → 0.503 on 374 Harmonix tracks, at 12.1 boundaries per track. Cues land about 6 s
    after the boundary they describe, and each event says so.
  • audio.section_novelty no longer sits pinned at 1.0. It was normalized against its own
    recent maximum, so unchanging music drove it to full scale — the opposite of what the name
    promises. It now reads near zero on steady material and rises only on real change. Anything
    bound to it will read lower and move more; rescale that binding if it looked right before.
  • Key detection now hears the actual key on EDM. It used to name an unrelated
    key more than half the time — quiet noise frames voted as loudly as drops, the
    chroma template manufactured subdominant energy, and the loudest content in the
    genre (kick and sub-bass) was either invisible or misread. The key path now
    energy-weights a clean fold and tracks the sub-bass root directly: 0.317 → 0.520
    MIREX-weighted on 604 GiantSteps EDM tracks, exact keys 153 → 272. Key readouts
    and key-driven palettes settle in about 3 s.
  • Beat and tempo tracking rebuilt. Beats fired on every loud onset whenever tempo
    confidence dipped — 1.5-1.7× too many, spraying beat-bound strobes — and drifted
    100+ ms late on misses; they now fire on a phase-locked grid (within ~10 ms on
    synthetic kicks) and go quiet through breakdowns instead of spraying. The detected
    tempo also commits to its level: double-kick and half-time-feel material no longer
    flips the readout between 172/115/86-style relatives mid-track, and the BPM value
    holds through breakdowns instead of blanking. EDM tempo accuracy rose 0.60 → 0.70
    (past offline madmom), tempi between analysis bins like 175 BPM became representable
    at all, and hard-stuck octave errors clear. Tracks now stay silent for the first few
    seconds until the tempo locks; /onset and the kick stem keep firing throughout.
  • Phosphor is now Fosfora, everywhere. Your config directory moves over automatically
    on first launch (settings, presets, scenes and mappings all come along), OSC output now
    uses /fosfora/... — incoming /phosphor/... is still accepted, and a legacy TX
    namespace option in the OSC panel keeps old rigs fed — and the from-source binary is
    fosfora (downloads were already named that). macOS asks for microphone permission once
    more (new bundle id); debug env vars are now FOSFORA_*. Custom shaders calling
    phosphor_* helpers keep working via deprecated aliases.

Added

  • Ableton Link (build option). Build with --features link and Fosfora joins your
    Link session: Follow mode locks the beat tracker's tempo to the session (beat phase
    still tracks the audio it hears), Lead mode pushes Fosfora's detected BPM to your
    other gear once it holds steady, and beat-synced scene advance rides the shared
    session grid. Works in --signal headless mode too (/fosfora/v1/link/*). Absent
    from the prebuilt downloads — Ableton Link is GPL-licensed, so it's a from-source
    option. Enable it in Settings → Ableton Link.
  • Signal: headless analysis broadcast. fosfora --signal runs the analysis engine
    with no window or GPU and broadcasts what it hears over versioned OSC
    (/fosfora/v1/...): beats and bars the hop they fire, BPM, key, build level,
    section labels (intro/build/drop/break/steady), phrase position on an inferred
    8/16/32-bar grid, and a predict/drop confidence that rises before the likely
    drop — lead time for the operator, with a confidence value on every stateful
    address. --signal-dump song.flac writes the same stream to a JSONL file,
    deterministically. See docs/SIGNAL.md.
  • Seamless beat-locked loop export. --render-loop <spec.loop.json> renders any
    phase-locked overlay to a mathematically seamless loop file — HAP, HAP Alpha (real
    transparency for Resolume/VJ software), ProRes 4444, H.264/HEVC — with beat/bar motion
    synthesized at an exact tempo (requested BPM snaps to the nearest frame-perfect one and
    both are reported). Non-loopable effects get explicit best-effort escapes
    (--allow-non-loop, --crossfade-bars with warmup). One CLI call replaces the After
    Effects loop-compositing grind; needs ffmpeg on PATH. See docs/loop-export.md.

Fixed

  • Intarsia filled the screen with tiles, then blanked and started over every few
    bars.
    Tiles now trade in and out individually on the bar clock, holding a steady
    mosaic with no reset. A new density param sets how much of the mosaic is lit at
    once; bars_per_cycle is now the turnover period — how often each tile trades.
  • A mistyped or unsupported command-line flag silently launched the full app
    window, GPU and all. Unknown flags now print an error and exit, --help and
    --version work, and a flag needing a build feature you don't have (like
    --signal-dump without --features analyze) says so by name. New --caps prints
    the features a binary was built with.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.32.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 06:43

Added

  • A new Overlay effect family: Tessera, Fenestra, Reticle, Bezel and Astrolabe. HUD-style
    chrome — tile reveals, snapping panels, targeting crosshairs, border instrumentation, and
    a full-frame targeting-array set piece — builds accelerate them, drops strobe them —
    rendered with real transparency and locked to the beat and bar clock rather than the
    wall clock. Layer them over other Fosfora effects, or over anyone else's content in
    Resolume/OBS via Spout, Syphon or NDI with Output alpha set to Passthrough. They live
    in their own Overlay group in the effect browser.
  • Overlays that see what's beneath them: Limn and Intarsia. A new @backdrop input
    hands an effect the live composite of every layer below it — Limn traces the content's
    edges with dashes marching in time, Intarsia fills its color patches with beat-revealed
    mosaic tiles that take their colors from what they cover. Layer them over any effect or
    media layer; solo they draw nothing (there is nothing beneath to see).
  • The output can carry real transparency. Settings → Output alpha adds Auto /
    Opaque / Luma key / Passthrough: Passthrough sends the scene's actual (premultiplied)
    alpha to every sink — NDI, Spout and Syphon all transport it, so Fosfora can be keyed
    over other content in Resolume or OBS without chroma tricks. Auto keeps existing
    setups exactly as they were. See docs/alpha.md; the v4l2 virtual camera stays opaque
    (the format has no alpha).
  • Shaders can now count bars and beats. The uniform block gains bar_index and
    beat_index — monotonic counters that step exactly when bar_phase / beat_phase
    wrap, so multi-bar patterns (bar_index + bar_phase as a running bar clock) are
    expressible for the first time. ABI: PhosphorUniforms grows 432 → 448 bytes; shaders
    using the auto-injected block need no changes, hand-declared copies must append the
    two fields plus two pad slots.

Fixed

  • Beat-length scene transitions now run at the right speed. A cue with
    transition_beats set resolved its length against a normalized tempo value, making
    transitions 300× too slow — at 120 BPM a 4-beat dissolve took 10 minutes instead of
    2 seconds, silently, live and in --render-scene.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.31.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 15:48

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.30.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 15:20

Changed

  • The binding templates were rebuilt around what actually reads on screen. Each one now
    drives four axes — impact, colour, motion and size — and picks its params by meaning
    rather than by position, so no template sweeps a mode selector or strobes the trail
    buffer. Audio Reactive follows percussive hits instead of the kick band, which fired
    all the way through sustained bass. New Ambient template for pads and drones, where
    the beat-driven ones sit still. Picking a second template now replaces the first on any
    parameter they share instead of leaving both fighting for it.
  • You can now make a binding by clicking one. Click a source in the binding matrix, then
    a target — or the other way round — and the binding is created and opened. Both columns
    gained a filter box, so finding one of ~330 sources or ~150 targets no longer means
    scrolling, and the target list starts collapsed.

Fixed

  • Reordering or deleting a layer left its bindings behind on the old slot, so an
    audio source that drove one effect silently started driving whichever effect moved into
    its place. Deleting was worse: every binding above the removed layer shifted down onto
    its neighbour. Bindings now move with their layer, and a deleted layer takes its own
    with it.
  • The binding matrix now names the layer and effect it is editing, in the header and on
    every parameter group, and flags a binding whose target no longer exists — changing a
    layer's effect used to leave bindings that looked fine and did nothing.
  • "Collapse all" in the binding matrix skipped the per-layer parameter groups — the
    longest ones on screen — whenever more than one layer was loaded.
  • Switching layers while a particle source file dialog was open dropped the image, video or
    model onto whichever layer you had moved to, not the one that asked for it. The same
    applied to loading a morph target.
  • Recalling a preset left a hand-loaded webcam, video or model running on any layer the
    preset didn't name a source for. A preset now returns those layers to the source their
    effect declares.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.29.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 03:50

Added

  • Reliquary, the 48th effect — a form that holds light. It splits your image, video or
    model in two and gives each half its own physics: solid surface springs home and holds
    still, while the light escaping it streams outward, fades and recycles, several times
    brighter than it arrived. Shed moves the line between them, from a crisp form to one
    dissolving entirely into flow.
  • A light you can put inside a model. A model particle source can now be lit by a
    movable point light instead of the fixed key light: park it inside a skull and the outer
    bone stays dark while the eye sockets glow, and Rays streams shafts of light out of
    the openings. The shafts are sampled into particles like everything else, so they are
    made of the same stuff the model is. At Light mix 0 a model looks exactly as before.

Fixed

  • Loading a picture, video or webcam over a 3D model left the panel still naming the model
    and its pose sliders on screen, and the next slider move re-sampled the model back over
    your picture. Switching particle sources now retires the previous one in every direction.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.28.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 16:20

Added

  • 3D models are now a particle source. Point Raster, Morph, Pegboard or Etch at a
    .glb/.gltf mesh or a .ply/.splat capture with the new Model… button, and it
    is re-made in that effect's medium — your own scan, as pegs or as scratched aluminium.
    Yaw, Pitch, Zoom and Ambient set how it is framed; meshes are shaded from their own
    surface normals, captures keep their captured colour. In Morph a model becomes a morph
    target you can blend to, via the new Model button in the target row. Models are
    saved and restored with presets, pose included.

Fixed

  • Swapping to a particle source that samples fewer points left the previous source's
    particles stranded on screen — pegs from an old model pose kept standing after a
    re-sample. The tail of the source buffer is now cleared, so they die as intended.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.

v1.27.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 12:13

Added

  • Pegboard — your image, video, GIF or webcam re-made as a backlit peg toy. Samples
    snap to a square lattice, an ordered dither decides which holes carry a peg, colour
    quantizes to an eight-peg tray, and kicks shower pegs out of the board. Set Polarity
    to 0 for a photograph on a light background, 1 for artwork on black.
  • Etch — the same sources scratched into aluminium powder one stroke at a time. The
    stylus zigzags along a handful of scan lines and swings wider where the picture is dark,
    advancing with the music, then the board is shaken clean and it starts over. Clear
    cycle
    sets the seconds between shakes; pull it to zero to hold the board blank and
    raise it to let the drawing build. Polarity works the same way as Pegboard's.
  • You can now change the source media for Raster, Pegboard and Etch from the Particles
    panel
    — a built-in picker plus Image… and Video… buttons, with the live source
    named underneath. Previously only Morph could load media, and every other image effect
    was stuck on whatever its effect file named.

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 for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.