Teaching a model to play Pokémon
I built a Pokémon TCG agent that learns from games and searches ahead before choosing a move. It finished in the top 5% of the Kaggle competition.
Two CPUs at match time. No GPU or internet.
More detail
The agent starts with a 40M-parameter policy/value transformer trained by behaviour cloning on search-teacher data. I then train it with masked PPO and a KL anchor against a prioritised self-play league. Deck-specific LoRA specialists are trained on a frozen base and fused back into the model.
Decks evolve with MAP-Elites, using win rate as the fitness measure and a worst-case performance floor. At match time, the agent uses determinised tree search (PUCT) over a belief model of the opponent’s deck, within a two-CPU budget and without network access.
I evaluate changes with a tiered set of tests and power analysis. You can find the entry under “Rare Candy Lab 🍬” on the leaderboard.
Neural rendering for brain surgery
How do you line up what a surgeon’s camera sees with a brain scan taken before surgery? My thesis explored using neural radiance fields to solve that registration problem.
Research in image-guided neurosurgery.
More detail
I represented brain surface geometry with neural radiance fields, then optimised camera positions through backpropagation. The implementation is model-agnostic and built in nerfstudio.
I compared L1, L2, SSIM, NCC, and mutual-information losses for registration accuracy, convergence, and stability. The full thesis is “Enhancing Intraoperative Registration with Neural Radiance Fields: An Exploration of Loss Functions Effects.”
From a software issue to a code fix
I designed and shipped a system that takes internal software issues through to code changes ready for review. I also train smaller models to handle parts of that work.
Built and shipped the production system.
More detail
A ModernBERT classifier, fine-tuned on around 10,000 historical tickets, routes issues to components with 85% top-three accuracy.
The model training pipeline uses soft-verified-generation supervised fine-tuning following SERA, then on-policy reinforcement learning with SDPO (self-distillation policy optimisation). The aim is to replace frontier-model calls with task specialists at a cost below one dollar per fix, targeting roughly five times faster time-to-fix.
Magnetic navigation for submarine drones
Our team explored underwater navigation without GPS, combining magnetic-field measurements with inertial sensor data. I led implementation: the iPhone app, magnetic-field scanner, navigation algorithms, and visualizations. I integrated the components and presented a working indoor demonstration at Station F. The deck’s underwater applications and long-range accuracy estimates are projections.
2nd place. Demonstrated indoors at Station F.
More detail
My teammates found the foundational research paper. I translated the approach into a prototype and wrote most of the code, connecting the iPhone’s magnetometer, accelerometer, and gyroscope to the mathematical methods and visualizations.
The demonstration reconstructed a walked path from inertial measurements and mapped the local magnetic field inside Station F. It brought sensor capture, magnetic-field scanning, navigation, and visualization together in one working prototype.
Adapting this to underwater drones was the proposed next step. We did not run underwater trials or validate the deck’s long-range accuracy estimates.
A help hotline for Ukrainian refugees
In March 2022, I helped build a hotline with volunteers at AppliedAI for people fleeing the war in Ukraine. It connected callers with relief organisations through a network of multilingual volunteers.
Built with volunteers at AppliedAI in March 2022.
More detail
I worked on the software, backend, and data engineering. The team designed the system with the intention of making its code available for other groups setting up similar call centres.
Generating scenes you can walk through
Our hackathon project turned text and images into scenes that change over time. We combined video generation with 4D Gaussian splatting so people could explore and edit the generated environments.
More detail
We fine-tuned Wan2.2 to produce temporally stable videos, then trained a 4D Gaussian model to reconstruct and render the evolving scene. The project was called “API for the Generated Reality.”
CheckBay
A fact-checking prototype that searches public sources for evidence relevant to a claim. Our team took second place at the TUM.ai AI4Good Hackathon.
More detail
We used NLP and vector search to retrieve sources for claims shared on social networks and elsewhere.
Teaching AI with KNUST
I helped organise and teach a two-week AI programme with KNUST in Ghana. Participants learned the basics, then formed teams to apply them to a local problem and present their work to a jury.
TidyAI
A web app I designed, built, and deployed to help clean and explore datasets and create features for machine learning.
More detail
Built with LangChain, Next.js, Tailwind CSS, the ChatGPT API, and GCP. The project page includes the code, demo, and presentation.
be_certAIn
A career exploration app that suggests occupations based on someone’s skills, interests, and free-text answers, and explains the suggestions.
More detail
The initial version used GPT-3, later GPT-3.5. We designed it as a short, personalised career test with a broad range of occupations and attention to data privacy.
How well does a test set cover a model?
We investigated test-data quality by measuring coverage, density, and sparsity in a neural network’s latent space.
More detail
We used a neural coverage fuzzing criterion in an existing framework and trained LeNet-5 on the German Traffic Sign Recognition Benchmark. The report examines the difficulties of estimating density and sparsity in high-dimensional spaces, including computational costs.
Full report: “Evaluating Test Data Quality by Measuring Latent Space Coverage, Density, and Sparsity with Deep Neural Networks.”
Protecting power grids from wildfires
A review of how data analysis, sensors, and grid control can help predict wildfires, detect faults, and keep affected areas supplied with electricity.
More detail
The paper covers physical simulations, fault localisation, transmission-system sensors, LiDAR, and remote sensing. It also proposes a three-layer approach to alternative power supplies in areas affected by shutoffs.
This website
A place for my work, interests, and whatever I get into next. I originally built it to learn Next.js and Tailwind and get better at design.