CHIMERA
A physical-modeling voice synthesizer in the browser. Every sound comes from a simulated
airway (lungs, vocal folds or syrinx, a branched vocal tract, lips, nose), not from samples.
The engine is Rust, compiled to WebAssembly for an AudioWorklet; the same code runs natively
for tests and the chimera CLI.
What it does
- Play: drag the tongue, lips and jaw in a live cutaway of the head; vowel pad, encoders, computer keyboard and Web MIDI.
- Speak: English text (CMUdict with a letter-to-sound fallback) or IPA, turned into gestures and prosody, with the gestural score and a consonant chart on screen.
- Sing: piano roll with lyrics per note; consonants land before the beat.
- Beatbox: pads and a step sequencer, every drum an articulatory gesture.
- Bestiary: songbird (two-voice syrinx), seal, alligator and elephant.
- Duet (
?show=<id>): two 3D heads replay a pre-rendered song.
Male, female and child bodies blend continuously. Everything on screen animates from live engine state: pressure in the airway, airflow, the vocal folds, spectra and formants.
Run it
Needs Rust with the wasm32-unknown-unknown target, and Bun.
bun install
bun run dev # builds the wasm, then Vite on 127.0.0.1:5317
bun run test # wasm build, cargo test --workspace, bun test testsThe AudioWorklet needs a secure context, so open it on localhost or over HTTPS (for example
tailscale serve). Vercel builds it with vercel.json.
Offline renders and measurement:
cargo run --release -p chimera-cli -- render speech|text|song|notes|beatbox|creature|vowels …
cargo run --release -p chimera-cli -- diagnose # nasal leakage, formants, bandwidths, pitch
cargo run --release -p chimera-cli -- compare csd # against a real singer (docs/csd-comparison.md)
bun tools/spectrogram.ts in.wav out.pngDocs
- docs/architecture.md: the acoustic model (FDTD airway, sources, anatomy, gestures).
- docs/rust-engine.md: the engine's real-time and determinism contract, and the browser boundary.
- docs/ui-redesign.md and docs/mockups/: the vector display look.
- docs/csd-comparison.md: scoring the voice against the Children's Song Dataset.
- docs/hill-climb/: the rules and log for tuning the voice one measured step at a time.
Agents: see AGENTS.md.
License
MIT. Bundled third-party files keep their own licenses: the CMU Pronouncing Dictionary (public/data/CMUDICT-LICENSE.txt) and the fonts (public/fonts/).