Autolume is a cross-platform tool for real-time visual performances using StyleGAN.
For detailed documentation and demos look at the Metacreation Lab Website.
➡️ Download for Windows, macOS and Linux
Add and trust the brew tap (one time)
brew tap metacreation-lab/tap
brew trust metacreation-lab/tap
Install the app
brew install --cask autolume
Update the app
brew upgrade --cask autolume
For examples of artworks created with Autolume see: https://www.metacreation.net/artworks
uv is required for setting up the python environment (installation link)
- CUDA 12.8 (download link)
- Minimum components: CUDA Development + CUDA Runtime
- Microsoft C++ Build Tools (download link)
- Minimum components: Desktop development with C++
- FFmpeg:
winget install Gyan.FFmpeg
- CUDA (download link)
- Minimum components: CUDA Development + CUDA Runtime
- FFmpeg:
sudo apt install ffmpeg - PortAudio runtime (for audio input):
sudo apt install libportaudio2
- FFmpeg:
brew install ffmpeg - Command Line Tools for Xcode:
xcode-select --install
On macOS and Windows, PortAudio ships inside the sounddevice wheel, so no extra install is needed for audio input.
Create the Python environment:
uv syncStart the program
uv run main.pyMeasure a generator's batch-1 forward latency (auto-selects CUDA, MPS, or CPU)
uv run bench.py path/to/network.pklRun the cross-platform release script on the OS you want to build for (PyInstaller cannot cross-compile — a Windows build must run on Windows, etc.):
uv run release.pyThe script requires a .env at the repo root with the crash report endpoint
values (it fails fast without one). Copy .env.example and fill it in — see
tools/crash_endpoint/README.md. Forks without
their own endpoint can build with --disable-crash-reporting instead.
ffmpeg/ffprobe are downloaded and bundled into the release automatically via
ffmpeg-downloader.
- Windows / Linux: output is the
dist/Autolume/folder. - macOS: output is
dist/Autolume.app, code-signed automatically — see macOS signing and notarization.
Pass --package to additionally produce a distributable: an .AppImage on
Linux, a .dmg on macOS, or an Inno Setup installer plus a portable .tar.xz
archive on Windows (requires
Inno Setup on the build machine, installable
with winget install --id JRSoftware.InnoSetup.7 -e -s winget -i). Use
--package-only to package an existing dist/ output without rebuilding.
Gatekeeper only opens a downloaded app without friction when it is both signed with a Developer ID and notarized by Apple (an automated malware scan of the uploaded file — this applies to all distribution outside the App Store, GitHub releases included). The release script handles both, after a one-time setup.
One-time setup
- Signing certificate: install a
Developer ID Applicationcertificate and its private key in your login keychain. Verify it is visible with:security find-identity -v -p codesigning
- Notarization credentials: ask a team admin for an App Store Connect API
key with the Developer role (App Store Connect → Users and Access →
Integrations → Team Keys). You need three values from that page: the
.p8key file, the Key ID, and the Issuer ID. Store them under theautolume-notarykeychain profile:xcrun notarytool store-credentials autolume-notary \ --key AuthKey_XXXXXX.p8 --key-id <key-id> --issuer-id <issuer-id>
Release flow
uv run release.py --package --notarize- The build signs
Autolume.app(hardened runtime +entitlements.plist) with the Developer ID certificate found in the keychain. If there is none, the script warns and falls back to an ad-hoc signature; the app then still runs locally, but downloads are blocked by Gatekeeper. --packagewraps the app into a.dmgand signs it.--notarizesubmits the.dmgto Apple (usually takes a few minutes) and staples the resulting ticket, so users can open the app with a plain double-click. It can also be run on its own against an already-built.dmg— notarizing after the fact also unblocks copies that were published or downloaded earlier, since Gatekeeper checks Apple's servers online.
uv run zensical buildThe documentation will be output to site.
To serve the documentation locally:
uv run zensical serveThe documentation will be served at http://127.0.0.1:8000/.
- Philippe Pasquier: Director of Metacreation Lab for Creative AI, Principal Investigator
- Arshia Sobhan: Project management
- Lionel Ringenbach: Software development
- Michael Tjokrowardojo: Software development
- Jonas Kraasch: Project first-phase development
- Arthur Deleu: Project development
- Mahshid Jabari: DevOps
- Peter Chen: Contributions to the super-resolution module
- Manuel Bolduc: User testing
- Ahmed Abuzuraiq: Research associate
- Anthony Hong: macOS port research and testing
StyleGAN3: https://github.com/NVlabs/stylegan3
GAN compression: https://github.com/lychenyoko/content-aware-gan-compression
GANSpace: https://github.com/harskish/ganspace
Some of the dependencies fall under the Nvidia Source Code License.
This code base is still open to changes and bugs might still appear. Please create issues and let us know so we can polish it for the final release!
As a dedicated research team behind Autolume, we emphasize that our system is a tool for exploration and innovation without direct support.
