Interactive Teaching Tools

Browser-based tools illustrating concepts in information theory, data compression, probabilistic inference, and computer architecture.

Jasher

Jasher Project

A deep context-aware jazz prediction model inspired by David MacKay's Dasher. Explores PPM-C Markov models applied to jazz harmony, with interactive tools for prediction, composition, context tree exploration, and a Dasher-style continuous-gesture interface.

Twin-O-Meter

Shannon's Twin-O-Meter

An interactive implementation of Shannon's 1951 twin experiment for measuring the entropy of English. Guess letters one at a time and see how compressible your guesses are. Draws text from Wikipedia, Gutenberg, and AI-generated corpora.

Arithmetic Coding

Arithmetic Coding Playground

Step through arithmetic coding and decoding interactively. Visualises the interval subdivision process at the heart of modern data compression.

PIC12675

MicroPX & GPASM

A microprocessor simulator and assembler for teaching computer architecture, used in the IA Microprocessor lab for first year engineers in Cambridge. Write assembly for the PIC12675 microprocessor, step through execution, inspect registers and memory.

Sudoku - BP

Sudoku via Belief Propagation

Solves Sudoku using the sum-product algorithm on a factor graph — message-passing inference on a problem everyone understands. Implemented around 2011, currently being ported from a Java applet to modern web technology.