A modern open-source Digital Audio Workstation built with Rust, GPUI, TypeScript, WebAssembly, and native audio/plugin infrastructure.
Architecture · Getting Started · Build · Debugging · Contributing
MIDI Editor |
Mixer |
Workspace |
Warning
Pre-alpha. Under active early development — expect breaking changes, incomplete features, and no persistence guarantees. Not ready for production; don't trust it with irreplaceable projects. Nightly builds are test snapshots only.
Futureboard Studio is a Digital Audio Workstation whose primary maintained surface is a native Rust application built on GPUI (the rendering framework behind the Zed editor), driving an in-process Rust audio engine. Secondary web (WASM DSP) surfaces share layout and engine concepts, but the native app is the main development target.
| Surface | Path | Stack | Status |
|---|---|---|---|
| Native (primary) | apps/native |
Rust · GPUI · direct audio engine | Main dev target |
| Web | apps/web |
React · TypeScript · Vite · WASM DSP | Tracks native, may lag |
| Crate | Purpose |
|---|---|
SphereDirectAudioEngine |
Native low-latency engine (WASAPI · CoreAudio · ALSA) |
SphereWebAudioCore |
Web WASM audio core — transport, graph, mixer, meters, DSP |
SphereUIComponents |
Native GPUI UI kit, styling, and layout primitives |
SpherePluginHost |
Plugin scanning & hosting (VST3, CLAP, AU, VST2 legacy) |
SphereAudioPlugins |
Built-in real-time DSP (EQ, compression, delay, …) |
Also: plugins/ (stock-plugin editors), modules/ (noise removal, stem extraction), extensions/ (extension templates), packages/ (shared fonts/icons/assets), external/ (vendored SDKs). See ARCHITECTURE.md for the full breakdown.
Prerequisites: Bun · Rust 1.78+ (edition 2024) with the wasm32-unknown-unknown target · CMake 3.20+ · a C++ toolchain (MSVC / Xcode CLT / GCC / Clang).
Important
Vendored SDKs (external/vst3sdk, external/clap, …) are git submodules — clone with --recursive (or run git submodule update --init --recursive afterwards).
git clone --recursive https://github.com/futureboard/Futureboard
cd Futureboard
bun install # JS workspace dependencies
rustup target add wasm32-unknown-unknown # web audio core targetRun a surface:
bun run dev:native # native GPUI client (= cargo run -p futureboard_native)
bun run dev:web # React web app
bun run dev:server # collaboration serverThe native client is a Rust binary linking the GPUI UI kit, the direct audio engine, and the plugin host (CMake + a C++ toolchain are required for the native plugin/SDK bridge). The bun run scripts wrap the equivalent cargo commands.
bun run build:native:debug # debug (= cargo build -p futureboard_native)
bun run build:native # release (= cargo build --release -p futureboard_native)The release binary is emitted to target/release/FutureboardNative (.exe on Windows).
Package distributables (scripts in packaging/native/):
bun run bundle:native:mac # macOS .app
bun run bundle:native:mac:dmg # macOS .dmg installer
bun run bundle:native:win # Windows portable / installer
bun run build:all # all surfaces (WASM + native)| Platform | Audio backend | Setup |
|---|---|---|
| Windows | WASAPI (exclusive/MMCSS planned) | rustup default stable-msvc |
| macOS | CoreAudio | xcode-select --install |
| Linux | ALSA (PipeWire/JACK later) | sudo apt install libasound2-dev · sudo pacman -S alsa-lib |
| Script | Description |
|---|---|
dev:web · dev:native |
Run a surface in dev |
build:web · build:wasm · build:native[:debug] |
Production / debug builds |
build:audio:plugins |
Check stock plugin crate + extension template |
bundle:native:mac[:dmg] · bundle:native:win |
Package distributables |
cargo:check · cargo:build · cargo:release · cargo:test · cargo:clippy |
Rust workspace passthroughs |
cargo:fmt[:check] · check · lint · fmt |
Format & combined checks |
Several subsystems expose verbose logging through environment variables — set any to 1 to enable.
| Variable | Logs |
|---|---|
FUTUREBOARD_PLUGIN_DEBUG |
Insert add/set/remove/bypass mutations + engine-sync details |
FUTUREBOARD_PLUGIN_VIEW_DEBUG |
Native plugin editor lifecycle and view attachment |
FUTUREBOARD_ROUTING_DEBUG |
Send, return, and bus routing graph diagnostics |
GPUI_DISABLE_DIRECT_COMPOSITION |
Windows composition workaround for native plugin UI |
FUTUREBOARD_PLUGIN_EDITOR_MODE |
Plugin editor mode selection |
# bash
FUTUREBOARD_PLUGIN_VIEW_DEBUG=1 cargo run -p futureboard_native
# PowerShell
$env:FUTUREBOARD_PLUGIN_VIEW_DEBUG=1; cargo run -p futureboard_nativeFutureboard
├─ apps/ native · web
├─ crates/ SphereDirectAudioEngine · SphereWebAudioCore · SphereUIComponents · SpherePluginHost · SphereAudioPlugins
├─ packages/ assets · shared
├─ plugins/ modules/ extensions/
├─ external/ vendored SDKs
└─ packaging/ native bundle scripts
Toward a usable native DAW foundation: a stable native GPUI shell, audio clip editing, timeline & MIDI editing, mixer routing, native plugin hosting (VST3 editor embedding, CLAP support), a project file format, automation lanes, audio export, and cross-platform packaging. See ARCHITECTURE.md for current status.
Contributions are welcome — bug reports, build testing, documentation, UI fixes, plugin-hosting and audio-engine work, and platform support. Please read CONTRIBUTING.md before opening a pull request; UI work also follows DESIGN.md and AGENTS.md.
MIT — see LICENSE.


