Visual & lighting synth — live DMX, visuals, and laser control synchronized to music.
Captivate 2 builds on the original Captivate by Spencer (@spencbot) and contributions from @fwcd’s fork. This project continues development with new features and UI improvements after the original line was discontinued.
- DMX lighting — fixture library, community online fixtures (QLC+, Open Fixture Library, Captivate library), import/export, multi-universe USB and Art-Net, spatial fixture layout
- Synth-style control — LFOs, modulation, pads, randomizers, MIDI and keyboard mapping
- Visuals — built-in visualizers and effects, synced to the active light scene
- Multi-window UI — detached pages for mixer, laser, 3D lighting preview, and more
- Ableton Link — BPM and phase sync with supported apps
- LAN remote — optional browser UI for scenes, modulation, and mixer (docs)
Configure fixtures once; scenes stay portable when you add gear or change venues.

Light scenes, splits, and modulation

Audio-reactive visuals synced to your lighting

DMX mixer for live channel control
More walkthroughs: Wiki.
Wiki — setup and how-to guides: DMX, connections, light scenes & splits, modulation, MIDI mapping, mixer, remote control, and troubleshooting.
Community fixture library — browse and share Captivate fixture definitions (no git required to contribute).
Installers for Windows, macOS, and Linux are on the Releases page.
Captivate 2 is an Electron app. Native addons (MIDI, USB DMX, projectM bridge, and other node-gyp modules) must be built with standalone Node.js matching the repo’s engine — not an editor-bundled runtime.
| Requirement | Notes |
|---|---|
| Node.js | >= 25.9.0 (see .node-version and package.json engines) |
| npm | >= 11.11.0 |
| Python | 3.11 recommended for node-gyp |
| Git LFS | Run git lfs pull after clone |
| Git submodules | git submodule update --init --recursive |
npm run check:build-env verifies Node/npm before packaging.
macOS: Xcode Command Line Tools
Windows: Visual Studio 2022 with “Desktop development with C++”
Linux: see the Install Linux dependencies step in .github/workflows/build.yml
git clone https://github.com/NicholasTracy/captivate-2.git
cd captivate-2
git submodule update --init --recursive
git lfs pull
npm install
npm startnpm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # LinuxCI builds all three platforms on push and publishes assets when you push a version tag (e.g. v1.0.0). See Releases.
- Wiki — user guides and troubleshooting
- Community fixture library
- Remote control (LAN)
- Laser FB4 / Pangolin BEYOND
- Visualizer streaming (RTSP / NDI)
Thanks to electron-react-boilerplate for the app boilerplate.
