Skip to content

futureboard/Futureboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

207 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Futureboard Studio banner

A modern open-source Digital Audio Workstation built with Rust, GPUI, TypeScript, WebAssembly, and native audio/plugin infrastructure.

CI Status License PRs Welcome

Rust TypeScript Bun WebAssembly

GPUI VST3 CLAP Platforms

Architecture · Getting Started · Build · Debugging · Contributing


Preview

Futureboard Studio MIDI editor
MIDI Editor
Futureboard Studio mixer
Mixer
Futureboard Studio workspace preview
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.


Architectural Overview

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

Core crates

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.


Getting Started

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 target

Run 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 server

Building the Native App

The 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 notes

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

Bun Scripts Reference

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

Debugging & Diagnostics

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_native

Repository Layout

Futureboard
├─ apps/         native · web 
├─ crates/       SphereDirectAudioEngine · SphereWebAudioCore · SphereUIComponents · SpherePluginHost · SphereAudioPlugins
├─ packages/     assets · shared
├─ plugins/      modules/      extensions/
├─ external/     vendored SDKs
└─ packaging/    native bundle scripts

Roadmap

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.


Contributing

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.


License

MIT — see LICENSE.

About

An open-source digital audio workstation with Native GPUI, React WebUI, Rust DSP, and native plugin hosting.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors