Effmass: An effective mass packageA 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 packageA 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 captureA 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 dataA 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 structuresImplements 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 displacementA 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 publicationsA 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 ToolThis 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 lineA 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