Software, apps and repositories that stand on their own. The newest comes first.
- RHEOS.jl: open-source software for fitting power-law viscoelastic models. RHEOS (Rheology Open Source) is a Julia package for analysing rheological data. It fits stress, strain and time data, or the complex modulus against frequency, to a library of standard and fractional viscoelastic models, to which new models can be added. A fitted model can then predict the response to other loading histories, and artificial loading can be generated to explore how a model behaves. It reads and writes CSV files, offers resampling and smoothing, and is meant to be approachable for people with little programming experience.
- CellAdhesion.jl: modelling the binding and unbinding of cell adhesion molecules. Julia package for modelling the binding-unbinding dynamics of cell adhesion molecules. It computes the life-span of junctions under different loading histories, implements several models of binding and unbinding probabilities, and handles junctions with different adhesion molecules and with clusters of bonds. Open source (MIT licence).
- NumFracDiff: numerical computation of fractional derivatives. A Julia toolbox for the numerical computation of fractional derivatives, developed in the open in the JuliaRheology organisation.
- Polymer statistics app. Interactive app on the statistics of polymer chains and rubber elasticity, built for the IB Materials course.
- Diffusion app. Interactive app on the diffusion of particles, a companion to the polymer statistics app.
- Phase diagram explorer. Interactive tool showing how phase diagrams are constructed from Gibbs free energy functions.
- Technology for the Poorest Billion, archive of student projects. Every team keeps its work in a public GitHub repository (proposal, design files, code, documentation and a project web page). The projects are gathered here, newest first, so that others can reuse and build on them.
- BlueTap: pressurised venturi dosing of chlorine into drinking water (UK patent application GB 2617399 A). Design for dosing chlorine into a water supply in proportion to flow. The reservoir sits in a chamber at mains pressure, so the venturi effect is the only pressure difference driving the injection and the output concentration stays constant. Developed with a student team; the application has been terminated and the disclosure is in the public domain.
- Device programming, version 1 (before 2026, with Arm). Notes and activities of the first version of the Part IB course, written by A. J. Kabla, P. O. Kristensson, J. Durrell and F. Forni (2017-19). The aim was to give engineering students practical computing and experimental skills for building simple embedded devices, through the basic operations of a common ARM-based microcontroller; skills learned on one microcontroller transfer well to others. After a tutorial, three activities cover memory and interrupts, the I2C bus and sensors, and actuation and feedback. The STM32 Nucleo boards were donated by Arm and STMicroelectronics, and the course was funded by a University of Cambridge Teaching and Learning Innovation Fund.
- Device programming, version 2 (from 2026, with the Raspberry Pi Foundation). Course site and activities of the new version, built on the Raspberry Pi Pico. After the introduction and getting started, students work through GPIO, interrupts, I2C with temperature sensors, and PWM, H-bridges and temperature control, with an assignment for each of the three modules. The aim is that students can explain the principles of wired communication between devices and program a microcontroller to control sensors and actuators. The course starts from how protocols are built, with a hands-on activity on a modular I2C bus made of plywood boxes (a bus, a controller with two buttons that pull the clock and data lines low, a listener that displays the byte on LEDs, and a target simulating four devices), before moving to bit-banging on the Pico and to a real sensor. The prototype hardware and the code examples, in C/C++ and MicroPython, are developed in the I2C_Lab repository. Perry Lewis and Alex Momoiu contributed to this version as undergraduate students.