Open source·Apache 2.0

OSLS

The Orbit Speaker Layout System.

Describe any speaker rig once — up to 64 channels — and drive it everywhere. One human-readable file per layout, a browser 3D designer, and a small SDK that keeps native, browser, Windows and mobile in perfect agreement. Any layout you can dream up.

Any layout · up to 64 channels · ADM / IAMF / MPEG-H · TypeScript / C / Swift / WASM

osls.io · MIT-friendly Apache 2.0 with an explicit patent grant

The OSLS browser 3D designer showing a 7.1.4 layout with labelled speakers on a sphere
Inside OSLS
An .osls layout file — SP-labels, Cartesian and polar positions, LFE and aliases, validator-checked
One file per layout

A rig, described once

Every layout is a single human-readable file. Each speaker carries its position — Cartesian, polar, or both — a stable ITU-R BS.2051 SP-label (M+030, LFE1…) and its reference frame. Nothing is duplicated across your app, engine and UI, so labels and channel order can never drift.

Human-readableSP-labels · BS.2051Cartesian + polarValidator-checked
Design it in the browser

Build any rig you can imagine

Open the browser 3D designer, drop speakers where you want them and export a layout in seconds. 10.1.4, 22.2, Auro, a 30-speaker dome — if you can describe it, OSLS can carry it, up to 64 channels.

3D designerUp to 64 channelsExport .osls
The OSLS browser 3D designer — build and validate any speaker layout with live positions and SP-labels
Orbit’s Speaker Layout & Routing panel — custom layouts, .osls import and a full output routing matrix
Straight into Orbit

Custom output, in Orbit & Orbit Pro

Load an .osls layout in Orbit and monitor to it directly. IAMF and ADM map to your speakers per their specs — direct where possible, nearest-neighbour where not — while scene- and object-based content makes full use of every speaker. Then patch each speaker to a device output with the routing matrix.

Both Orbit editionsRouting matrixADM · IAMF
Small on purpose

It describes the rig — and stops there.

One source of truth for geometry and identity. The restraint is exactly what makes OSLS easy to build on.

What OSLS is
  • The geometry — where each speaker sits, in Cartesian and/or polar coordinates
  • The identity — a stable BS.2051 SP-label and reference frame per speaker
  • The per-spec channel orders (ADM, IAMF, MPEG-H), resolved from a shared registry
  • LFE flags and aliases, so the same rig is understood everywhere
What OSLS isn’t
  • A renderer — the down-mix, panning and HRTF maths stay in the audio engine
  • A patch map — which physical output a channel hits is your app’s job
  • Tied to one platform — the same file drives native, browser, Windows and mobile
Open source

Fork it, build on it, ship it.

The full spec, JSON Schema, blessed layouts and reference SDKs are on GitHub under the Apache 2.0 license — permissive, with an explicit patent grant. Contribute a layout, wire it into your workflow, or resolve OSLS in your own engine.

TypeScript

For the web and Node.

C ABI

Drop into any native engine.

Swift

First-class on Apple platforms.

WASM

The browser resolves layouts identically to a native app.

OSLS powers custom output in Orbit

Both Orbit and Orbit Pro read .osls layouts — monitor to any rig up to 64 channels, with a full output routing matrix. The speaker-layout view with solo, mute and custom groups is in Orbit Pro.