ascii-physics
A 2D physics engine that renders to the terminal — a constraint solver over sparse matrices, pluggable ODE integrators, and composable force generators driving cloth and particle demos in pure ASCII.
Oxford · Maths & Computer Science
I work where abstract mathematics meets real systems — type theory, concurrency, the formalisation of machine learning. This is where I keep my projects and write things down as I figure them out.
A 2D physics engine that renders to the terminal — a constraint solver over sparse matrices, pluggable ODE integrators, and composable force generators driving cloth and particle demos in pure ASCII.
A CLI that bulk-downloads course files from any Moodle instance — API-token or browser-cookie SSO auth (including Shibboleth), resumable SQLite-tracked state, parallel workers, and checksum-based change detection.
A backend for hosting werewolf games online — Spring Boot with a hexagonal domain/ports/infrastructure split, WebSocket room events, code-based authentication, and server-driven phase timers.
A small differentiation engine in OCaml — a hand-written parser builds expression trees that are evaluated and differentiated symbolically, with .mli interfaces throughout.