https://github.com/maskedsyntax/raviz
High-performance audio-reactive 3D visualizer for Linux
https://github.com/maskedsyntax/raviz
Last synced: 4 months ago
JSON representation
High-performance audio-reactive 3D visualizer for Linux
- Host: GitHub
- URL: https://github.com/maskedsyntax/raviz
- Owner: maskedsyntax
- License: mit
- Created: 2026-01-16T10:02:52.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2026-02-16T04:20:55.000Z (4 months ago)
- Last Synced: 2026-02-16T12:22:59.958Z (4 months ago)
- Language: C
- Homepage:
- Size: 159 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# raviz

### High-performance audio-reactive 3D visualizer for Linux.
Renders a glowing, deformable 3D sphere that reacts to system audio in real time. Runs in a transparent, borderless window using OpenGL 3.3+.
[](https://github.com/maskedsyntax/raviz/blob/master/LICENSE)
[](https://github.com/maskedsyntax/raviz/releases)
## Features
- **Transparent Window**: Floats on top of your desktop (X11 & Wayland).
- **Audio Reactive**: Automatically detects system audio output (PulseAudio).
- **3D Visuals**: Deformable sphere with Fresnel glow, reacting to bass and mid frequencies.
- **Configurable**: TOML configuration file and CLI arguments.
- **Low Latency**: Dedicated audio processing thread.
- **Efficient**: Native C implementation with OpenGL 3.3 Core.
## Installation
### Binary Packages (Debian/Ubuntu/Fedora)
Download the latest `.deb` or `.rpm` release from the [Releases Page](https://github.com/maskedsyntax/raviz/releases).
**Debian/Ubuntu:**
```bash
sudo apt install ./raviz-1.1.1-Linux.deb
```
**Fedora/RHEL:**
```bash
sudo rpm -i raviz-1.1.1-Linux.rpm
```
### Arch Linux
Install manually from the provided `PKGBUILD`:
```bash
git clone https://github.com/maskedsyntax/raviz.git
cd raviz/packaging/aur
makepkg -si
```
### Build from Source
**Dependencies:**
- `cmake`, `make`, `gcc`
- `libpulse-dev` (PulseAudio)
- `libfftw3-dev` (FFTW3)
- `libglfw3-dev` (GLFW3)
- `rpm` (Optional: for building RPMs)
```bash
git clone https://github.com/maskedsyntax/raviz.git
cd raviz
mkdir build && cd build
cmake ..
make
sudo make install
```
## Configuration
Raviz automatically creates a configuration file at `~/.config/raviz/config.toml` on first run.
```toml
[render]
fps = 30
sphere_lat = 40
sphere_lon = 40
rotation_speed = 0.05
window_opacity = 1.0 # 0.0 (Transparent) to 1.0 (Black)
color_mode = "none" # "none", "static", "reactive"
[audio]
rate = 44100
fft_size = 512
fft_bins = 64
smoothing = 0.15
intensity = 1.0
# device = "alsa_output..." # Optional: Force specific source
```
## Controls
| Key | Action |
| :--- | :--- |
| **ESC** | Quit application |
| **F1** | Cycle Color Mode (None / Static / Reactive) |
| **F4** | Cycle Render Mode (Solid / Wireframe / Points) |
| **F5** | Reload Shaders (Hot-reload `render.c` logic if recompiled, mainly for dev) |
| **UP** | Increase Intensity |
| **DOWN** | Decrease Intensity |
## Usage
Simply run:
```bash
raviz
```
**CLI Overrides:**
- `--opacity <0.0-1.0>`: Set window opacity.
- `--device `: Manually specify PulseAudio source.
- `--fps `: Limit FPS.
- `--intensity `: Reaction multiplier.
## Architecture
- **Main Thread**: Window management, OpenGL rendering, Input handling.
- **Audio Thread**: Audio capture (PulseAudio), FFT processing (FFTW3).
- **Synchronization**: Mutex-protected double buffering for FFT data.