Software

Materials Simulation and Analysis

Effmass: An effective mass package
A Python package that calculates the “effective mass” of charge carriers (how easily electrons move). Built as a modular and extendible code, it interfaces with a range of simulation packages. The software paper has been cited >70 times by other research groups.
Repository | Software paper

ThermoPot: An ab-initio thermodynamic modelling package
A modular Python package for thermodynamic modelling of material formation and decomposition. It has been used to analyse data for a number of peer-reviewed publications.
Repository | First applied in this paper

CarrierCapture.jl: Anharmonic carrier capture
A Julia package to compute trap-assisted electron and hole capture in semiconductors — this is key to understanding energy loss in solar cells. The software paper has been cited >30 times.
Repository | Software paper

SingingMaterials: Sonification of first-principles phonon data
A python package for sonification (data –> sound) of atomistic simulation outputs; this enables to hear how the materials `sing’. It interfaces with the Materials Project database, giving access to 100,000’s of materials. The context for this work, the software design decisions, and a user evaluation are outlined in our paper (see below) which is In Press with the 2026 Proceedings of the International Conference on Auditory Display.
Repository | Paper

Kabsch Interpolation: Interpolating between structures
Implements a method for linearly interpolating between two crystal structures, using the Kabsch algorithm for molecular rotation. It’s built using the Atomic Simulation Environment and has been used in a few peer reviewed papers.
Repository | First applied in this paper

Vesta_vectors: Visualise atomic displacement
A script to visualise atomic displacements, drawing arrows between initial and final atom positions in the Vesta file format.
Repository | First applied in this paper

Scripts for job submissions, analysis and publications
A hodge podge of Python and shell scripts for submitting supercomputer jobs, analysing simulation output, and preparing figures for publications.
Repository


Teaching Tools

ChooChoo the Checklist Tool
This is my love letter to GitHub: a checklist tool for educators built from GH Issues (for the interface), GH Actions (for the engine) and GH Pages (for the output), linking tasks to tutorials and self-assessment questions and showing class progress in real time. Used over four consecutive years as part of my undergraduate lecture course in Computational Physics.
Repository


Interdisciplinary Work

Dotspace command line
A Python command-line tool made with artist Richard Scott to trial-run and analyse his algorithmic drawings. Some more information on the interdisciplinary page.
Repository | Info

Dotspace web app (aka Grain Generator)
A browser-based version of the Dotspace art tool, built using Jupyter, ipywidgets and voila. The app was designed for audiences attending a multi-site exhibition commissioned as part of Coventry Biennial. Formely deployed on Heroku, but now unmaintained.
Repository | Info