OVILLO

A ball of thread for making sounds with your agent.

You write a score in MUS, a plain-text notation, or ask your agent to write one with you. The score does not call an oscillator. It touches a persistent physical world (strings, a wooden top, the air inside the box, a room) called Ariadne, and the world does the sounding. A pluck puts energy in; the energy travels from string to bridge to top to air to room, and some of it is lost on the way.

Every render prints a receipt with an energy ledger: what the hands put in, what the fretting hand paid, what was lost inside, what was radiated, and what is left over when you add it up. On this page the books close to about one part in 1016, and the page shows the number.

THE BENCH

LIVE · YOUR BROWSER · WEBASSEMBLY

A simulated electric guitar, and a guitarist who never repeats, played into one Ariadne World. Tap a string, pick what the guitarist plays, and drag across the configuration map from the six-course string body to the B♭ brass bore. The residual readout is the World's own ledger, live. Starts quiet; nothing sounds until you press start.

KEYS (CLICK THE BENCH FIRST): Z X C V B N PLUCK THE OPEN STRINGS (SHIFT HARDER) · 1–8 SOFTKEYS · SPACE START/STOP · ↑ ↓ OR WHEEL TURN THE LIT KNOB · 0 RESET WORLD · − = MASTER · \ MUTE · ESC BACK

THE TRACT

A VOCAL TRACT MADE OF THE WORLD

A throat you can play: a tongue, lips, a velum and a glottis, after Neil Thapen's Pink Trombone (2017).

LISTENING ROOM

Rendered on 2026-10-20 from a fresh clone of the repository, on an Intel i9 laptop: pieces written for this page, pieces that ship with the repository, and the bench's guitarist recorded offline. Each one has its score, its receipt, a waterfall of its spectrum and, for the guitar-shaped worlds, where the energy was (strings, box, room) every 10 ms. Levels are matched after the World for listening; the numbers are the World's, before that.

GET IT

RUST STABLE · MACOS / LINUX
git clone https://github.com/sophia-labs/ovillo.git
cd ovillo/mus-rs && cargo build --release -p mus-cli
./target/release/mus render ../examples/tab/steel_string_tour.mus -o tour.wav --json

The receipt is JSON on stdout: look at badTokens (should be empty) and at ariadneWorlds[] for the ledger. --energy trace.json keeps every body's energy every 10 ms. The bench is a native app in ovillo/ (cargo run -p ovillo-app --release), with an MCP server so an agent can play it.

Agents: start at AGENTS.md, or read this site's llms.txt. The rule there is the rule here: every claim about how something sounds cites a spec section or a receipt field.

SAID PLAINLY

RESEARCH · PRE-ALPHA