I reluctantly disembarked from the NatGeo Endurance on Thursday and returned from the Arctic to find the UK in the grip of a proper heatwave! The train home almost undid me with the temperature transition of ~40C; in the end I think the London-Cambridge train took more time than the Iceland to London hop. Still, always nice to be home, if only for a week before my next trip!

A pile of papers landed while I was at sea: the TESSERA v2 checkpoint along with a Trentino tree species study, and two programming language papers on type slicing and package calculus. I also managed during the travels to get some Eio hacking done that I need for our TESSERA embeddings sync engine. While I was away gallivanting around the world, my hardworking colleagues presented Conservation Evidence in Parliament, and also showed off TESSERA in Paris at the RAISE Summit. There are the usual fun links at the end!
I didn't entirely escape admin work on the expedition either, since I had reviews to finish for EuroSys and for Remote Sensing of Environment.
1 TESSERA v2 checkpoint paper
On the geospatial side, Frank Feng lead an exciting progress update on TESSERA v2. This was a large scaling effort along with Sadiq Jaffer, David Coomes, Srinivasan Keshav and many others, and we used a big allocation of UKRI AIRR GPUs for the hero run which we got awarded back in January on Isambard 2.
1.1 What's new in TESSERA v2
There are some key innovations that distinguish this new model from v1.0 or v1.1. The first is the sheer scale of the training, as we have a huge amount of available training data from the satellites that we didn't have capacity to add. In the paper, we describe the ablations we did to find the bottlenecks in the model architecture via hundreds of sweeps. A simple rule of thumb that emerged from the sweeps was that as the training budget grows, the model's encoder and satellite data should grow together while the projector stays fixed, which gave us a simple rule for allocating compute.
A few 100,000 hours of GPU time later, this resulted in a lovely new 1-billion parameter model (with a 2-billion one still in training). This many parameters improved accuracy quite a bit, but also would slow down inference considerably. We don't have the cash to rack up costs when we need to generate new map embeddings for 1.8 million tiles for the whole planet!
To address this, the second innovation is to use a teacher/student distillation and generate a family of smaller models that are used for inference. These student models are dubbed TESSERA-v2-1B-L or TESSERA-v2-1B-M depending on the number of parameters pre- and post-distillation. Remarkably, the new TESSERA-v2-1B-M model has fewer parameters than the original TESSERA v1 and outperforms it (and every other GeoFM model) we could find.

Tessera v2 also features Matryoshka embeddings, a training method that imposes an ordering on the dimensions so there's more information stashed in the earlier ones than the later ones (recall that there are a total of 128 dimensions per 10m2 map tile). This means that just 1/8th of the bands give 90% of the performance in many downstream tasks.
Reducing the amount of data involved in manipulating the embeddings is really important as we work towards much smaller datasets with the Earth Compress team (who I heard from at CNG in the spring) and others. It would be amazing to run the TESSERA on a normal feature phone before the end of the year! With v2, all you have to do is to chop the 128 dimensions off earlier and you have everything you need. The only hitch is that I'm not sure how to encode this in Zarr efficiently, which is the dimension slicing problem I flagged back when we sharded the v1 embeddings and threw a clanker into the conventions. That's something to figure out later this summer with Icechunk and friends, having heard Deepak Cherian talk about it last month!

The TESSERA-1B parameter model is finished and the 2B model is still training, so there is much more exciting news to come this summer! We're really thankful to the Nvidia team (esp. Pembroke alumni Ira Shokar and the irrepressible Niall Robinson, who I caught up with in London about exactly this) for their help optimising our kernels before deploying onto Isambard 2.
1.2 Mapping trees in Trentino
Trentino, aside from being home to the most amazing cheese, is also home to a variety of tree biodiversity. We used TESSERA to try to spot the different plant species from space! This turned into a really interesting analysis of how to perform a more complex downstream task than the environmental mapping benchmarks we published last year:
Here, we evaluate two geospatial foundation-model embeddings, AlphaEarth and Tessera1, for tree species classification in the Trentino region of northern Italy, using parcel-level forest inventories as reference data (18 species and species groups). We compare their performance against conventional Sentinel-1+2 satellite composites across a series of controlled experiments examining classification accuracy, label efficiency, classifier complexity, robustness to label impurity, and temporal transferability
Foundation-model embeddings consistently outperform composite-based multispectral satellite baselines [...], reaching near-asymptotic accuracy with as few as 5% of available training parcels and preserving ecologically meaningful structure aligned with functional and taxonomic groupings.
However, realising this advantage requires a nonlinear classifier: a compact neural network provides better results than classic machine learning (i.e. Random Forest) and performs as well as deeper neural networks, while a linear classifier on foundation-model embeddings underperforms a neural network on conventional composites. -- Geospatial foundation models enable data-efficient tree species mapping in temperate mountain forests, Ball et al 2026
The paper is now published in the journal Science of Remote Sensing, led by James Ball. It shows that geospatial foundation models can map tree species in temperate mountain forests with far fewer manual labels than previously required.
This is possible because the pretraining process for TESSERA eliminates a lot of redundancy that's present when manually processing satellite data. Note that the results in this paper weren't with the TESSERAv2 I mentioned above, so it'll be exciting to rerun this analysis when we finalise the 2B model.
There was also a new version of our tropical tree mapping paper uploaded (also lead by James), which studies when imaging spectroscopy can and cannot separate species in the tropics. We discovered that phenological regularity (the strength and consistency of seasonal leaf-cycling) was the single strongest predictor of separability across species.
This second paper doesn't use geospatial foundation models yet as we started it before TESSERA even existed in 2024, and instead uses hyperspectral sensors that fly lower. I'm hopeful that in the future we can train a new version of TESSERA that incorporates hyperspectral sensors like ENMAP, but that depends on data and compute availability.
2 Over to Greek with programming language papers
We now shift from the glorious Italian alps over to more esoteric lambdas for some programming language research next...
2.1 Bidirectional type slicing
Max Carroll worked with me for his Part II project last year in type level debugging. He also recently completed his Part III project supervised by me and Cyrus Omar, and won the Computer Lab year prize for best part III dissertation! Max worked on the topic of bidirectional type slicing:
Development tools report what type an expression has, but not why it has that type. This paper develops a theory of type slicing: a programmer selects a term, queries any part of its type information, and receives a program slice that is sufficient to reproduce the queried type. We formulate type slicing for bidirectional type systems, where synthesis slices explain the type a term synthesises and analysis slices explain the type expected by its surrounding context. -- Bidirectional Type Slicing, Carroll et al, 2026
A huge well done to Max on the hard work that went into this year's project, and for the well deserved award. You can read his Part II dissertation and Part III dissertation in our technical library, or the more digestible arXiv version.
This is extremely cool theory research for any future language we develop for the planetary wiki because it forms the basis for how a compiler can help a human or coding agent understand why a program is being rejected with a minimal slice. Max will be around in Cambridge over the summer continuing to work on the project, including building a Hazel implementation. Go find him if you're interested in this topic!

2.2 Package calculus
The ICFP 2026 camera ready version of our package calculus work, lead by Ryan Gibb, is also done and uploaded after many, many iterations. There's been a large number of typographical improvements after a long session with Simon Peyton Jones. The artefact evaluation process also went without a hitch, with all the reviewers able to build the Lean proofs fine.
Ryan's now hacking away on an implementation of the calculus so we can perform bidirectional translation across package managers, so the next step is more systemsy. We also keep running into new package managers that require translation; it's incredible how many there are out in the wild these days!
3 Hacking on Eio for the TESSERA syncher
I continued the Eio hacking that I started before the Arctic trip while on the ocean. The NatGeo Endurance had a satellite connection that was sporadically active depending on the weather conditions!

The tool I'm working on has to move a great many terabytes of embeddings around quickly, so it exercises many corners of the Linux IO stack. It's surprisingly hard to juggle all the various bottlenecks when copying files (direct IO, dealing with partially implemented FUSE S3 semantics, and so on), so this has been a useful exercise for me to get up to speed on all this again.
On the filesystem side, I switched Eio's file stat over to statx and populating the block size so we can size reads, and bumped our minimum liburing to 2.15.0 to get at some newer functionality. I also helped to fix up the chmod sandbox symlink support and corrected the flags we pass to chown; dealing with sandboxing symlinks is really very complicated!
On the networking side, I helped clean up truncation checks in getsockopt and portable sockopt errors while figuring out how Windows works. There were a couple of lower level correctness fixes; one retries on EINTR when writing to a pipe in the fork machinery, and another makes sure all read and write functions hold the file descriptor open while they're in use.
Finally, I tidied up Windows build as best as I could remotely, with some unixsupport declarations thanks to a pointer from David Allsopp. It turns out that CAMLextern does matter for Windows since it controls DLL visibility. In OCaml, the Unix module is also a compatibility shim that runs on Windows, which means that the various eio.unix modules do in fact need to link on Windows. If this doesn't make any sense to you, then I recommend you just move on :-)
Thanks as always to Thomas Leonard for the careful reviews!
4 Conservation Evidence takes the stage at Parliament
While I was somewhere off the coast of north-eastern Greenland, the Conservation Evidence crew took our work to the Houses of Parliament. Alec Christie, Sam Reynolds and Sadiq Jaffer, along with Bill Sutherland, demoed our Evidence TAP traceable AI pipeline at the Georgina Mace Centre for the Living Planet debate sponsored by Jack Rankin MP.

The evening focussed on how AI and robotics might help biodiversity preservation efforts. Here's the Imperial College summary of the event:
Additional exhibits included AI-powered conservation tools capable of synthesising large scientific datasets to support evidence-based biodiversity decision-making, as well as bio-inspired robotic systems designed for safer environmental monitoring in complex ecosystems such as forests and waterways.
The exhibition highlighted how AI and robotics are already being applied to real-world environmental challenges, from biodiversity monitoring to climate innovation and conservation decision-making. -- Emily Govan, 2026
From chatting to the Sadiq when I got back, a lot of the questions from the audience were around how quickly they could assemble their own evidence database, and how they might deploy their own version. Most of the policymakers deploying these systems are being forced into using black-box AI because of the access difficulties in building their own local libraries of information.

5 TESSERA in Paris
Sadiq Jaffer had a busy week as he also legged it to Paris to present TESSERA at the RAISE Summit on the 8th/9th July, held at the Carrousel du Louvre. This was quite a large AI event, and Vultr invited us to their booth to showcase the TESSERA case studies they've been working on. Since we're an open model, they worked through how to reproduce the pipeline and build an inference pipeline using their cloud infra.
This hardware is what made TESSERA v1.1 possible, so we're really grateful to Vultr and AMD for their support here! An especially big shoutout to Kasia Hilborne who has been an enthusiastic supporter of the project since the start, and who Sadiq finally met in person (I'm still looking out for when I can make it to one of these events myself!).

6 Fun links
Michael Dales chalks up another great post about a 3000 year old horse, and a commentary on open source maintenance. He'a got a great point about how open source code maintainance is in a weird place due to LLM driven contributions, and how to balance this new 'enthusiasm':
Another issue in balancing the needs of the volunteer community and the needs of the horse is that Andy has something of a "success failure" on his hands: too many people want to maintain the horse now. Word of mouth has spread by people like me who went and had a good time: you get to sit on a hill, feel like you've contributed to something beyond yourself that will outlive you, and you get to hang out with the kind of person who thinks it's a good idea to sit on a hill and feel like you've contributed to something beyond yourself that will outlive you. So perhaps you have too many people chalking now that leads to you having to remove chalk the next year. -- Too much of a good thing: part 2, Michael Dales
Then, a nice independent validation of TESSERA turned up in a paper on mapping cocoa in Cote d'Ivoire. They compared very high resolution imagery against several coarser inputs, and TESSERA came out as the best of the decametric options at an F1 of 0.86, not far behind the 0.92 of half metre imagery that costs way more to obtain.
Aneesh Naik also has a great weeknote where he mentions TESSERA embeddings comfortably beating the Sentinel-2 baseline on the GeoLifeCLEF species distribution challenge. We had a go at this challenge back in 2022, so I'm keen to take a serious swipe at the next competition when it runs again!
Till next week, stay cool everyone!

