v1.2.0
GPU Particle System
- GPU-driven pipeline: counter buffer, indirect draw, alive/dead index lists — zero dead particle processing
particle_lib.wgslauto-prepended to all compute shaders: shared structs, bindings, hash/rand, emit/alive helpers- Alive/dead protocol: atomic emission claims, compact alive index rendering
- 3D curl noise flow field: 64x64x64 baked texture at
@group(1),sample_flow_field()helper - Trail rendering: per-particle ring buffer, ribbon triangle strips with tapering width/alpha, separate indirect draw
- Spatial hash grid: 40x40 GPU 3-pass pipeline (count → prefix sum → scatter), neighbor query at
@group(3) - ParticleUniforms extended from 128 to 192 bytes (flow field + trail params)
- ParticleRenderUniforms extended from 32 to 48 bytes (frame_index + trail params)
- Particle UI panel: alive/max count with utilization bar, emit rate, burst, lifetime, speed, size, drag sliders, feature badges
New Effects
- Flux: 30K particles following curl noise flow field, audio-reactive flow strength and speed
- Ribbons: 8K particles with flow field + 16-point trail ribbons, audio-reactive width/opacity
- Chaos: 50K particles tracing Lorenz/Rossler strange attractors with RK4 integration, 3D perspective projection, audio-reactive bifurcation parameters
- Helix: 20K charged particles spiraling via Lorentz force F=q(E+v×B), positive/negative charges, audio-reactive B_z and E fields
- Murmuration: 80K flocking particles with Vicsek model, spatial hash neighbor query, audio-reactive order↔disorder phase transition
- Cymatics: 40K particles forming Chladni nodal line patterns via gradient descent, audio frequency bands select mode numbers
- Coral: 50K particles tracing Turing-like organic growth patterns, hexagonal spots morphing to labyrinthine stripes
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 Phosphor.app to Applications (or run directly). Signed and notarized.
Linux / Windows: Extract, run phosphor 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):
ffmpegon PATH for media layers
NDI® is a registered trademark of Vizrt NDI AB.