These are research ideas that include new, ongoing and completed projects. They are only open to Cambridge students for now, with the occasional exception for summer interns.
I get a vast number of LLM-driven applications and cannot reply to every one. Your chances are much higher if you read some of the ideas here and send a short, specific enquiry about something concrete you would like to do. Original ideas are welcome too, but try to relate them to one of the projects here if you can.
Machine learning the world 10m at a time
Roads are expanding faster than at any point in human history, and many of them don't appear on maps. The ghost roads study in 2024 used ~7,000 hours of volunteer effort to hand-map roads across the tropical Asia-Pacific, finding 3--6.6 tim…
Weather reanalyses and forecasts are usually plotted on grids of ~25km, but the people's decisions about weather-related actions happen much more locally! Within a single coarse grid cell the land surface isn't uniform, so the weather at a …
Global conservation metrics such as LIFE need a counterfactual baseline to ask questions like "what would the land surface look like today if humans had never converted it to cities, farmland and plantations"? The usual approach is to use a…
Pedro Sousa began his PhD in January 2026 working on what a geospatial foundation model can contribute to near-surface weather prediction. This is joint work with the Aardvark group in the Department of Engineering, with Richard Turner and …
Michael Dales, Aneesh Naik and Alison Eyres are working with David Coomes' group and me on whether the TESSERA foundation model can produce robust, high-resolution (10m) global habitat maps. Habitat maps underpin most of the conservation pi…
Pushing forward OxCaml as a platform for high-performance, reliable systems programming
Bastion is an OS architecture for safeguarded AI where what an agent may do is expressed as a "capability signature". This is an Dijkstra monad whose commands are the only effects the agent can reach, with the indexed monad providing the mo…
Modern operating systems are increasingly moving away from the syscall-at-a-time POSIX model towards shared-memory submission/completion queues like Linux's io_uring, Windows IoRing and macOS' various async interfaces. In my VMIL 2025 keyno…
Programming FPGAs using functional programming languages is a very good fit for the problem domain. OCaml has the HardCaml ecosystem to express hardware designs in OCaml, make generic designs using the power of the language, then simulate d…
Programmatic diagramming tools let developers, educators and researchers turn structured data (like trees, graphs, ASTs, neural networks, symbolic terms, ...) into clear pictures without reaching for a full interactive visualisation stack. …
The efforts here center around constructing system interfaces for hermetic large-scale data processing, with careful support for versioning and spotting sources of non-determinism that lead to non-reproducibility.
Python is a popular tool for geospatial data-science, but it, along with the GDAL library, handle resource management poorly. Python does not deal with parallelism well and GDAL can be a memory hog when parallelised. Geo-spatial workloads -…
Large pre-trained models can be used to embed media/documents into concise vector representations with the property that vectors that are "close" to each other are semantically related. ANN (Approximate Nearest Neighbour) search on these em…
The modern scientific method has become highly computational, but computer science hasn't entirely caught up and is sometimes hindering research progress. We use climate science and ecology computation needs as a case study, we are conducti…
Imagine you're out on a field trip in the Peruvian Amazon and come across a mesmerising butterfly species you don't recognise. You could ask iNaturalist's AI, but its identification models have biases and many missing species. The latest co…
Our goal is to figure out where a particular species might be able to live on the planet! An Area of Habitat (AoH) map refines a species range polygon down to the parts of that range the species can live in. AoH maps feed global metrics suc…
The IUCN Red List of Threatened Species is one of the world's most important conservation resources–often referred to as a Barometer of Life. It provides a standardised, evidence-based assessment framework for grouping species into extinc…
Identifying and creating global-scale datasets for various aspects of natural and human activity is needed here, especially if it can be baselined to prehistoric (i.e. pre-human activity) timescales.
Maps of biologically driven regionalization (e.g. ecoregions and bioregions) are useful in conservation science and policy as they help identify areas with similar ecological characteristics, allowing for more targeted, efficient, and ecosy…
Loss of habitat represents the most significant threat to wildlife overall, but advances in satellite sensing have enabled the assessment of habitat extent with comprehensive spatial coverage and reasonable temporal resolution. To address r…
This will be of interest to those wanting to work on LLMs and literature scanning, as a practical and very impactful application.
Whenever we do evidence synthesis (especially for conservation outcomes) to distil the world's scientific literature into actionable insights, we have to decide on what published studies we will include or exclude, and why they are categori…
Developing unikernels means turning every part of the software stack into a library rather than a wrapper, and so an interest in software architectures and functional programming comes in useful here.
The mean time to exploit a vulnerability is now negative, as LLM-driven exploitation precedes the publication of a fix. A coding agent needs to be given little more than the class of a bug, and -- combined with the source code -- it can wri…
Research work in remote sensing involves handling a large amount of satellite data, so these will be of interest to computer scientists wanting to explore multi-modal image analysis at scale.
The National Hedgehog Monitoring Programme aims to provide robust population estimates for the beloved hedgehog. Despite being the nation’s favourite mammal, there's a lot more to learn about hedgehog populations across the country. We do…
Self-supervised learning (SSL) represents a shift in machine learning that enables versatile pretrained models to leverage the complex relationships present in dense–oftentimes multispectral and multimodal–remote sensing data. This in t…
In-situ sensing devices need to be deployed in remote environments for long periods of time, and minimizing their power consumption is vital for maximising both their operational lifetime and coverage. We are exploring the construction of a…
Cities around the globe have experienced unprecedented growth in recent years, becoming centres of economic, cultural, and social hubs for human activity. Rapid urbanisation has transformed the physical landscape and significantly altered l…
There is an important balance needed between the biodiversity damage caused by hunting in protected areas and the well-being of local communities that depend on it. One understudied driver of overly damaging hunting in these areas is snarin…
Latency rules supreme in this space, so any computer science needs to focus on rapid response, incremental models of computation that can interface with physical topologies.
The existing Internet architecture lacks support for naming locations and resolving them to the myriad addressing mechanisms we use beyond IP. While there have been many advances in addressing locations via multiple routing schemes, it rema…
If you're interested in principled approaches to programming, including everything from a mature language to package management and open source development, then OCaml is for you.
A combination of challenges here involving both low-level OS hacking as well as defining sensible and usable semantics for emerging techniques such as DIFC.
Computer science is combined with econometric and counterfactual approaches here, and the algorithms involve careful and precise specification of statistical models.
An interest in self-hosting data and in developing local-first processing approaches is essential.
One can never get tired of rebuilding a fresh network protocol in OCaml for fun, and there is something to be learnt every time we do this!
A willingness to hack on embedded devices is needed here, and to be creative about how to squeeze unexpected functionality out of an existing device.
Nothing matches that. Try a broader filter, or look through the ideas offered previously.















