Portfolio
Projects
Things I have built, from industrial control software running on a soft PLC to a real time simulation of evolution.
-
Luno
- Flutter
- Dart
- SQLite
A moon tracking app for planning night photography, still in development. Pick a place, then drag through time to see where the moon will be, how much of it will be lit, and what the sky will look like around it. All the astronomy is calculated on the device, in a background isolate, and cached in SQLite.
-
Starchitect
- Laravel
- Vue
- Tailwind CSS
- Flutter
- Redis
- S3
A project manager for architects and building surveyors, still in development. Photos from site file themselves, every job follows the RIBA Plan of Work, and the client always has an up-to-date progress report. One multi-tenant Laravel API, with a database per practice, serves a Vue dashboard and a Flutter site app.
-
Evosim
- Unity
- C#
- Genetic algorithms
- JSON
A three-dimensional, real time artificial life simulator. Creatures built from jointed physics blocks swim, eat and mate in a closed energy system. Each child's genes are crossed over from its two parents and then mutated, so the population evolves by natural selection.
-
Neural Net Digit Reader
- R
- Neural networks
A neural network written from scratch in R, without a machine learning library, that teaches itself to read handwritten digits. Trained on 60,000 examples, it reads digits it has never seen with 95% accuracy, against 96% for people. It was my final project for a BSc in Artificial Intelligence and Robotics.
-
ALT-1 Assembly & Leak Test Machine
- IEC 61131-3
- Ladder
- Structured Text
- OpenPLC
- Modbus TCP
- Python
A simulated special purpose machine that presses a cap onto a valve body and simulates leak testing the assembly. A ladder and Structured Text program on the OpenPLC soft PLC controls it over Modbus TCP, with a Python plant simulator standing in for the machine. It was checked against a 30-test factory acceptance test, using the simulator's fault injection to produce jams and stuck sensors.