Getting started
An OpenGroove firmware is one wasm32 module that implements a small C ABI. The host owns the clock and the hardware; your firmware turns input events into audio, a framebuffer and LED colors. The same .wasm file runs in the browser today; a native Linux runtime for hardware is in development.
This page takes you from nothing to a sound in the browser.
1. Get the SDK
The SDK download opens soon. It contains the ABI header (include/opengroove.h), the web and headless runtimes, example firmwares and the og command-line tool used below. Until then, the ABI reference has everything a firmware needs, and the Build bench plays any .wasm you load.
You need a compiler that emits wasm32. Plain clang with the wasm32 target works, as do emcc, wasi-sdk, Zig and Rust.
2. Scaffold
og new my-box
cd my-boxog new writes a working firmware you can start from. This is the template it uses, straight from the SDK:
See cli/templates/default/main.c in the SDK.
The ABI reference explains every function in it.
3. Build
og buildThis writes build/my-box.wasm. Any toolchain that emits wasm32 works too; see the ABI reference for the flags.
4. Hear it
Drop build/my-box.wasm onto the Playground and press a pad. Or run the live-reload loop, which rebuilds on save and hot-swaps the firmware without stopping audio:
og dev5. Check it, share it
og verify build/my-box.wasmog verify runs the same headless checks the Hub runs before it shows a badge. See Checks, then submit it.
Writing with an AI agent? Point it at AGENTS.md and have it run
og verifyuntil it passes.