Project

vizcore

0.0
The project is in a healthy, maintained state
Vizcore provides a Ruby-first workflow to define scenes and render audio-reactive visuals in the browser.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

>= 0.11, < 0.13
~> 1.17
~> 6.0
~> 2.2.0
~> 1.3
 Project Readme

Vizcore Gem Version CI

Vizcore is a Ruby gem for audio-reactive VJ visuals. Define scenes in Ruby, stream them to a browser renderer, and map audio analysis, beats, MIDI, OSC, and live controls to visual parameters.

Animated Vizcore demo where detected beats expand concentric rings

Install

Requirements:

  • Ruby >= 3.2
  • PortAudio for microphone input
  • ffmpeg for MP3/FLAC input and MP4 output
  • fftw3 optional for faster FFT analysis
# macOS
brew install portaudio ffmpeg
brew install fftw # optional

# Ubuntu / Debian
sudo apt install -y libportaudio2 libportaudio-dev ffmpeg
sudo apt install -y libfftw3-dev # optional
gem install vizcore
# or
bundle add vizcore

Quick Start

vizcore doctor
vizcore demo

Open http://127.0.0.1:4567.

To run a scene file directly:

vizcore start examples/basic.rb
vizcore start examples/neon_grid_mesh.rb --audio-source file --audio-file examples/assets/complex_demo_loop.wav

Minimal Scene

Scenes are plain Ruby files:

Vizcore.define do
  scene :readme_demo do
    layer :beat_rings do
      palette "#24f6ff", "#ff2bbd", "#caff2e"

      circle count: 4 do
        radius 92
        stroke 3
        map beat_pulse,
            to: :radius,
            gain: 160.0,
            min: 56,
            max: 164,
            attack: 1.0,
            release: 0.2
      end
    end
  end
end

Run it with:

vizcore start scene.rb

Useful Commands

vizcore start SCENE_FILE
vizcore start --manifest vizcore.yml
vizcore gallery
vizcore validate SCENE_FILE
vizcore devices audio
vizcore devices midi
vizcore snapshot SCENE_FILE --out screenshot.png

Use vizcore help for the full CLI.

Browser routes:

  • / visual output with operator controls
  • /projector clean projection output
  • /control separate operator panel

Documentation

Development

bundle install
npm install --prefix frontend
bundle exec rspec
npm --prefix frontend test
bundle exec rake release:verify

License

MIT