PolyMeter — Prototypes

Every hardware form factor, simulated live — one engine, one program string.

The same engine that drives the app and the editors also runs on hardware — from buildable kits to design studies. Each prototype below is its device front panel, simulated live in the browser: pick one and it plays the same compact program strings as everything else. The buildable ones link wiring, parts and firmware from their “Specs & info” pages.

🛠️ Program on the web, play on any device

The website is the workbench: design in the editor, and the same program string loads into whichever form factor fits the moment. One engine, one language.

🔌 USB‑C power everywhere — no batteries

Every device runs over a single USB‑C port (the larger ones add a pass‑through to daisy‑chain). No internal battery to wear out; bring a power bank. One connector keeps it all future‑proof.

Pick a form factor — it loads live below
The current program, decoded (not base64). Paste a patch or a base64 set‑list code; it's checked, then loaded. Conventions: GM names or numbers (kick / 36), =X.x- steps, /2 subdivision, (3,8) euclidean, @-3 dB, ~ polymeter.

🦀 Native‑Rust firmware — PM_K‑1 (RP2350 / Pico 2)

An experimental native‑Rust build of the Kit firmware: one no_std core (track codec + scheduler, validated against the same golden vectors as the web and CircuitPython builds) plus per‑board drivers. It now runs as a working metronome — boots, drives the ST7796 display, plays built‑in grooves with audio clicks, and has a drum‑notation view. Controls: A = play/stop, B = grid/notation, joystick = tempo & groove. (Alpha; built and reviewed in a host simulator.)

Download pm‑kit.uf2 ↓

Flash: hold BOOTSEL on the Pico 2, plug in USB, and drag the .uf2 onto the RP2350 drive. Recover anytime with BOOTSEL + a CircuitPython .uf2. Source & staged plan live in rust/ and docs/rust-port.md.