Research

Long-running investigations into how software could be written, replicated and undone. Reactive values that keep themselves up to date, data that merges itself across machines, and computation that can run backwards.

Projects

Themes

Reactivity

Programs described as what things are, with the runtime working out when anything needs to change.

Replication

Data that several machines can change at once and still agree on, with no central server to settle disputes.

Reversibility

Processes that lose nothing, whether bits, energy or materials, because every step can be retraced.