I'm an MSc Robotics student at the University of Manchester. Before that, I graduated from the University of Edinburgh with a First Class BSc in Artificial Intelligence & Computer Science, where my dissertation looked at the Sim2Real gap in reinforcement learning for contact-rich robotic manipulation. For four years I was a software developer on Edinburgh University Formula Student's autonomous driving team, which won the AI division at Formula Student UK three years in a row.
View my CVBuilding a vision-language-action (VLA) model that gives a humanoid robot a sense of touch. Using the iCub's stereo vision and tactile signals, the work targets tabletop manipulation and learning actions from human demonstrations, aiming for robots that perceive and act more like humans.
Trained reinforcement learning agents for non-prehensile manipulation in MuJoCo and Isaac Sim, and built pipelines for training across multiple simulators. The research looks at how the structure of the dynamics model affects Sim2Real transfer.
Core developer on the ROS-based software that drives the team's autonomous race car, which won the AI division at Formula Student UK three years running (2023–2025). Led the 8-person Localisation & Mapping sub-team, implemented real-time state estimation (FastSLAM, EKF, particle filter), and built CI/CD pipelines that halved code review time.
An MCP server that exposes a gym-like API as skills, so LLM agents can interact with physics simulations.
Got a dual-arm robot to grip a cube with both hands and carry it to a target without hitting obstacles. Grasp poses come from optimisation-based inverse geometry, the route from a bi-directional RRT (RRT-Connect), and the motion is smoothed into a Bézier trajectory that an inverse-dynamics controller follows in PyBullet.