Interactive Fiction & Narrative Systems
Branching stories and the engines that run them: a Norse flyting duel, an overnight thesis game, a reactive card-engine and the minimal Ink runtime extracted out of them.
Two views of the same body of work. First, the order each tool actually arrived in, which is messier and more opportunistic than any tidy strategy would suggest. Then the themes the work keeps returning to, and how often a single project sits in more than one at once.
Every language, framework, runtime and database, placed at the moment it first appeared in a project. Earliest on the left.
7 territories the projects cluster into. Plenty of them turn up in several at once, and that overlap tends to be where the work gets genuinely interesting.
Branching stories and the engines that run them: a Norse flyting duel, an overnight thesis game, a reactive card-engine and the minimal Ink runtime extracted out of them.
Systems that generate rather than store: an evolving proto-language, procedurally surfaced archaeology, a life-timeline assembled from real history and generative visual art.
Projects that work with real human history as their material: an animated atlas of early-medieval kingdoms, a fictional life mapped against Wikipedia-sourced events and a procedural archaeology of invented artefacts.
Problems modelled as graphs first: Neo4j-backed apps, a flat-file property graph with a custom Cypher engine and content mapped as navigable edge networks.
Tools that treat language and meaning as something computable: curriculum generation, automated documentation, retrieval experiments, PII redaction, semantic search, colour-name resolution and free-text parsed into a queryable grammar.
Software that lives in the terminal and on the desktop: a Go productivity TUI with a custom graph engine, a TypeScript core driving CLI, TUI and Tauri native builds and the XSD schema library extracted from it.
Tools built around how people actually think and feel: a neurodivergent workplace passport, a mood-and-coping PWA, an SEN behaviour tracker and a developer-cognition compass.
Diamonds mark projects that span more than one territory. Hover a project to trace it across themes.