Oscilla — Installation Guide

Oscilla is a browser‑based system for creating and performing synchronized graphic scores. It can be run either as a standalone desktop application (recommended for most users) or via Node.js for development and advanced workflows.


Option 1 — Standalone Application (Recommended)

A double-clickable application for Linux, macOS and Windows.

No Node.js, npm, or Git required.

Download

https://oscilla.cc/

A separate Linux server binary is also published, for machines with no screen, for several instances at once, or for running Oscilla as a background service. It has no window of its own and takes command-line flags.

Run

The applications are not code-signed, so each system asks once:

Open Oscilla

A small window titled Oscilla Server appears. That is the control panel, not the score. Click Open Oscilla on this computer to open the score itself.

Performers on the same network join by entering the address shown in that window, or by scanning its QR code. If you need it directly, the score is at:

http://localhost:8001

Requirements for Standalone Use

Tool Purpose
Inkscape Create and edit SVG‑based score projects
Modern web browser Chrome, Firefox, Safari, or Edge

Option 2 — Node.js / npm Installation (Advanced / Development)

This option is intended for:

Requirements

Tool Purpose
Node.js + npm Run the Oscilla local server
Inkscape Create and edit SVG score projects
Modern web browser View and perform scores
Git (optional) Clone and update the repository

Windows (Node.js Route)

1. Install Inkscape

https://inkscape.org/release/windows/

2. Install Node.js (18 or later required)

https://nodejs.org/en/download

Choose the Windows Installer (.msi) — pick the LTS version (18 or 20). Ensure Add to PATH is enabled during installation.

Verify:

node -v
npm -v

Node 12 or 14 will fail with a syntax error on startup — upgrade if needed.

3. Get Oscilla

Option A — Git

git clone https://git.kompot.si/rob/oscilla.git
cd oscilla

Option B — ZIP

  1. Download from https://git.kompot.si/rob/oscilla/releases
  2. Extract the ZIP
  3. Open PowerShell in the extracted folder

4. Install & Run

Note — PowerShell users: Windows may block npm with "running scripts is disabled on this system". The quickest fix is to use Command Prompt (cmd.exe) instead of PowerShell — the restriction does not apply there.

Alternatively, if you want to keep using PowerShell, open it as Administrator (right-click the Start menu → Windows PowerShell (Admin)) and run:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

You only need to do this once.

npm install
npm run electron

This opens the Oscilla server console — a desktop window showing server status, the addresses performers connect to (with scannable QR codes), settings, and the live log. Click Open Oscilla on this computer to open the score. See Server Console for everything it does.

To run the server without the console window instead:

npm start

then open http://localhost:8001 in a browser.


Linux (Node.js Route)

1. Install Inkscape

sudo apt update
sudo apt install inkscape

2. Install Node.js (18 or later required)

Note: apt install nodejs on Ubuntu 22 installs Node 12, which is too old. Use the NodeSource script instead:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

Verify:

node -v   # should show v20.x.x
npm -v

3. Get Oscilla

git clone https://git.kompot.si/rob/oscilla.git
cd oscilla

Or download and extract the ZIP from the releases page.

4. Install & Run

npm install
npm run electron

This opens the Oscilla server console (see the Windows section above). npm start runs the plain server instead — open http://localhost:8001 in a browser.


macOS (Node.js Route)

1. Install Inkscape

https://inkscape.org/release/macos/

2. Install Node.js (18 or later required)

https://nodejs.org/en/download

Pick the LTS version (18 or 20). Verify:

node -v
npm -v

3. Get Oscilla

git clone https://git.kompot.si/rob/oscilla.git
cd oscilla

Or download and extract the ZIP from the releases page.

4. Install & Run

npm install
npm run electron

This opens the Oscilla server console (see the Windows section above). npm start runs the plain server instead — open http://localhost:8001 in a browser.


One-Click Launcher (No Terminal)

The first time you open the server console (npm run electron), it offers an Install launcher button — click it and Oscilla appears in your application menu / Start Menu / ~/Applications. From then on, start Oscilla with one click, no terminal.

(Equivalent manual command, from the repo folder: ./build/launcher/install-launcher.sh on Linux/macOS, or powershell -ExecutionPolicy Bypass -File build\launcher\install-launcher.ps1 on Windows.)


Where Projects Live

Your score projects are stored outside the Oscilla folder, in:

~/oscilla-projects/

The folder is created automatically on first start (override the location in the server console's Projects folder setting, or with the OSCILLA_PROJECTS_DIR environment variable). The shipped demos live inside the app itself. If you're upgrading from an older version that kept projects inside public/scores/, Oscilla shows a one-time notice offering to move them for you.


Updating

With a git installation, the server console has a Check & update button (runs git pull; restart Oscilla to apply). Equivalent terminal command:

git pull && npm install

Test the Demo Project

Once Oscilla is running:

http://localhost:8001/?project=demo-trans

You should see the demo score demo-trans, with objects travelling between waypoints. Every distribution ships the full set of demo-* projects — open them from Demos in the menu.


Inkscape Extension (Optional)

Oscilla includes an optional Inkscape extension to assist with:

See the documentation for installation and usage details.


Troubleshooting

Problem Solution
App does not start Ensure port 8001 is free
Browser shows blank screen Check browser console for errors
npm not found Reinstall Node.js (18 or later)
SyntaxError: Unexpected token '.' on start Node.js version is too old — upgrade to 18 LTS or later
npm blocked by execution policy (Windows) Use Command Prompt (cmd.exe) instead of PowerShell, or run Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser in an Administrator PowerShell
Inkscape SVG not loading Ensure SVG is saved as Plain SVG
Port conflict Change port in server.js

Building the apps (maintainers)

npm run build # standalone server binaries (pkg) -> dist/ npm run dist:mac # macOS app, Intel x64 (Apple Silicon via Rosetta) npm run dist:desktop # Windows .zip + Linux AppImage and .deb ./build/build-mac.sh arm64 # Apple Silicon native (must then be signed on a Mac)

Run npm run build first — it wipes dist/, which is the staging directory the website publishes from; the app builds then add themselves to it. Publish with cd public/docs && ./build_kompot.sh --deploy.

All three apps share electron/builder-app.json. Windows uses the zip target rather than an installer: NSIS and rcedit both need wine to run on Linux, so signAndEditExecutable is off and the .exe keeps Electron's default icon and metadata.

Output: dist-mac/Oscilla-<version>-macOS-x64.zip, containing Oscilla.app plus a "READ ME FIRST" note for the recipient.

Two things this build handles that npm run dist does not:

The native MIDI module ships N-API prebuilds for darwin, so no cross-compiler is needed; npmRebuild is off because rebuilding on Linux would target Linux.

The app is unsigned (signing requires a Mac). The recipient opens it the first time with right-click → Open; after that it opens normally.

Tip: use ← → or ↑ ↓ to navigate the docs