Write a story. Watch the tropes appear.
TropeLang is a descriptive language for modeling narrative tropes as a temporal graph — and a live engine that recognizes, in real time, which tropes a story is satisfying. The snippet below is real: edit it, hover the names, watch recognition and coverage update.
// A grifter, a mark, and the tell. Hover a name; edit a line.
char vale [+Protagonist] [+Grifter]
char renn [+Antagonist] [+Collector] [+Paranoid]
scene the_appraisal {
beat 1 { vale -- renn : "lets him see only the appraiser" }
beat 2 { evt the_switch [&Deceives(agent=vale, target=renn)] }
}
This page is built from the same Rust→WASM core that powers the editor. Every example on the site is
a <tropelang-snippet> from @tropelang/embed — and with no JavaScript
it gracefully falls back to a plain code block.