An ergonomic declarative language and visualiser for choreographing stage movement.
Describe how dancers move over the course of a song, using reusable built-in and custom formations (lines, horseshoes). Then, play it back in a custom 2D visualiser.
Built 100% in Rust, featuring a hand-written custom parser / compiler, with rustc-style diagnostics to troubleshoot invalid scripts.
meta {
title "Example Script"
bpm 120
stagesize (30, 20)
}
dancers { B is "Ben" in RED; }
start B at (0, 0);
let hs = horseshoe { about (0, 0) width 10 depth 10 }
at 0:0 move B to hs[1/8];
at 1:3 move B to (0, 0) until 4:0;