Motivation
Live coding makes programming part of a performance. A performer edits code to change relationships in time: which sounds occur, how phrases develop, how visual structures respond, and how one part interacts with another. The code is an active part of the performance, not a script started beforehand.
Mora gives performers a concise language for patterns and a full Lisp environment behind it. A few expressions can sequence sound, shape an audiovisual scene, or transform material over time. When an expression is evaluated, selected parts remain available as objects rather than disappearing behind an opaque result.
Temporal query semantics are not unique to Mora. Its design emphasis is the particular combination of retained decomposition, runtime method extension, Lisp embedding, and clients such as Mora Studio.
Influences, kept distinct
-
TidalCycles An important temporal and notational lineage: patterns that answer questions about spans of time.
-
Common Lisp and CLOS The working environment and the extension mechanisms: functions, macros, classes, generic functions, and a live image.
-
The Art of the Metaobject Protocol and Ploy The architectural ambition of an open implementation, informed by the metaobject tradition and Ploy's open interpreter.
-
Christopher Alexander's pattern languages A longer-standing interest in systems that can be altered meaningfully in their situation of use.
The name
Mora is not an acronym. The name was chosen for its temporal meaning, and its explanation begins with time and the design of the language.
The author
Mora software is MIT licensed, copyright 2026 Michael Simpson. Dependencies, optional models, and sample libraries keep their own licenses.