This page lists some of the projects I've created and/or contributed to. More stuff is hosted on:


  • Finesse 3: a Python re-write of Finesse 2 (an C-based interferometer simulation package)
  • Pykat: a Python wrapper for running Finesse 2 simulations
  • CoatingTk: toolkit for calculating properties of and manipulating dielectric coatings used on mirrors for precision science (see also dielectric-thermal-noise)
  • dcc: command line interface and library for the LIGO Scientific Collaboration Document Control Center
  • fibrecnv: profile extractor tool for the IGR's fibre puller
  • Magnetometer: service-based client/server software for operating the PicoLog ADC connected to the University of Glasgow observatory magnetometer (click here to view the last 2 hours of logged data)


  • Zero: linear circuit simulator utility
  • electronics: useful calculations for resistors and regulators
  • datalog: Python/C framework for interfacing with PicoLog hardware
  • Environment sensor: open hardware and firmware designs for an environment sensor capable of sensing temperature, humidity, pressure, light and dustiness, providing data over ethernet

Graph visualisation / constraint solving

  • Optivis: visualisation of optical environments
  • pygeosolve: basic geometric constraint solver


  • met-grab: tool to grab weather information from the UK Met Office
  • OpenSpaces Scraper: tool to grab Ordnance Survey (OS) tiles from publicly available maps



  • ACME: coffee rota management tool using LDAP authentication
  • Pixel Cryptography: generate images to be printed on transparencies which, when overlaid exactly, reveal a hidden message (see blog post)
  • Cryptoquote: a tool to retrieve prices of cryptocurrencies from the command line (see blog post)
  • expense-tracker: daily expenditure tracking web tool for an individual
  • owes: tool to work out who owes whom, and how much, for big groups, attempting to minimise the number of transactions
  • vBulletin infraction user PM override: anonymise infractions given by forum staff (I wrote this when I was 16, and 12 years later, I was sent a $10 donation for it - an amount that would have rivalled my paper round!)
  • vBulletin view usernotes given: allow staff to view list of usernotes given