.plan-26-35: All I want for Tesseramas is (GP)U

Tessera v1.1 now also synced to Source Cooperative but we're short on GPUs for v2, Scrutineer security scans driven by a local GLM, PROPL 2026 videos are live, and TDM reservations in OCaml for Evidence TAP.

https://anil.recoil.org/notes/2026w35image

I've been in Ireland again this week for the bank holiday, which also saw us celebrate a year of Tessera hacking while hunting for more GPUs to support our users' embedding requests. I also got Scrutineer scanning my own code using a local GLM-5.3 model, the PROPL 2026 videos are live, and I wrote a text and data mining reservations library for Evidence TAP. Meanwhile, Ryan Gibb flew the flag for our ICFP 2026 paper over in Indiana.

1 A year of Tessera embeddings

It's been a whole year since the first GeoTessera release, woohoo! I put together a brief recap and released GeoTessera 0.10, which moves our hosting over to the Source Cooperative with UTM-native Zarr routing and Matryoshka reads for the v2 beta.

A year of public TESSERA embedding requests, in the order they were filed
A year of public TESSERA embedding requests, in the order they were filed

The sync of the Tessera v1.1 embeddings onto the Source Cooperative also finished this week, so those are now browsable via tze.geotessera.org as well (click on the model version on the top right). The full global run for v1.1 for 2017-2025 has unfortunately been delayed by a month due to GPU shortages. If you can help us get access to more GPUs then please get in touch. Smaller cards are fine, since we can parallelise the inference across many of them per tile. Mark Elvers has mostly finished the v2 inference ablations, so compute is now what we're short of.

The green false colour shows the expanded v1.1 coastal tiles, which now capture all of the UK including islands
The green false colour shows the expanded v1.1 coastal tiles, which now capture all of the UK including islands

Relatedly, I read a nice paper on the temporal sensitivity of Tessera embeddings. The authors keep the Tessera encoder frozen and recompute its embeddings over successively shorter observation windows, from a full year (which is what we generate by default) right down to a single day (!). They then benchmark linear probes and UNet heads against from-scratch networks on various datasets.

Interestingly, accuracy degrades gradually rather than collapsing. Contracting the temporal window from a year down to a month drops 39% of the segmentation accuracy on the phenology-driven PASTIS-R crop task. I was surprised to see that even single-day embeddings classify land cover at 3.4 times the background chance baseline, so temporal coverage seems practical to tune if you're willing to pay the inference cost.

The benefit of using embeddings is more evident when labels are scarce: with only 1% of the labels TESSERA-UNet already achieves ∼24 mIoU on PASTIS-R, some 50% above the best from-scratch UNet, and even the linear probe matches or exceeds every fully supervised from-scratch UNet there, while on DEN the embedding-based models stay essentially flat from 1% of the labels onwards and the from-scratch UNets only catch up between 30% and 100%, so the models only draw level on DEN at saturation. The embeddings thus pay off whenever the mapping task is phenology-driven or labels are scarce, and lose their edge only when it is spectral and labels are abundant, a combination rarely met in operational LULC production. -- Temporal Sensitivity Analysis of Tessera Embeddings, Julia Guerrero-Viu et al, Aug 2026

I also wrote up some project ideas this week in preparation for the incoming MPhil students to Cambridge, covering scanning the literature for species range and habitat maps, the generative detection of all the ghost roads in the world, and the interpretable downscaling of local weather predictions. I'll write more about these next week when back in Cambridge.

2 Scrutineer scanning with a local GLM

My musings on security embargoes were covered pretty widely online, with discussions on HN and Lobsters. I loved seeing Nick Craig-Wood participate, as he maintains rclone which we use extensively to manage filesync in the EEG. The rclone project fielded around 20 security disclosures in its first decade, and now 40+ in the last month alone. He's now considering merging security fixes straight to trunk, rather than holding embargoed branches. The Lobsters thread also pointed me at the Zero Day Clock, which is a depressingly incredible graph.

The Zero day clock to exploitation
The Zero day clock to exploitation

As a followup, I deployed Andrew Nesbitt's Scrutineer to scan my own OCaml code, but driven by GLM 5.3 running on my Mac Studio rather than a commercial code model. I wrote up quick notes on the deployment. The short version is it's surfacing hundreds of potential findings to triage, so there's some work ahead. Thomas Gazagnaire is giving me a hand though!

Scrutineer's triage view of an example harmless finding in cohttp
Scrutineer's triage view of an example harmless finding in cohttp

To support this, I refreshed my ocaml-deepseek inference engine, which I first built for language-integrated LLMs but am now exposing as a server. It is now renamed ds4 to match the upstream project, and the glm-5.3 branch serves GLM 5.3 Flash over an OpenAI-compatible endpoint for Scrutineer to use.

3 Papers and PROPL

I finished my POPL 2027 paper reviews this week, yay!

The recordings from the 3rd Programming for the Planet workshop at PLDI 2026 are now up on the ACM SIGPLAN YouTube playlist, and of course also on our self-hosted Watch EEG. I wrote up the talks and thoughts, and am very excited that Cyrus Omar is visiting Cambridge on sabbatical for the year!

Ryan Gibb also presented our ICFP 2026 paper on a formal model of dependency resolution in Indiana this week. You can watch his talk on the conference livestream. There are some exciting followups brewing, around whether we can use event structures and other tricks to make the underlying package calculus vastly faster to traverse and solve.

Ryan Gibb presenting our package management formalism at ICFP 2026
Ryan Gibb presenting our package management formalism at ICFP 2026

4 TDM reservations for Evidence TAP

The Evidence TAP database is up to ~20 million fulltexts now, thanks to an import from Semantic Scholar as well as the download engine continuing to get education and conservation fulltexts.

I also published ocaml-tdmrep, an OCaml implementation of the W3C TDM Reservation Protocol, to help ensure the literature downloader respects publishers' machine-readable text-and-data-mining reservations while crawling open access versions.

  • Aneesh Naik pointed me at some addictive guessing games. My favourite was Redactle, in which you have to figure out a Wikipedia article's name from its redacted contents.
  • An interesting paper on using drones to improve absence data for pika burrows to help improve SDMs (which really need absence data for MaxEnt techniques to be effective). I both love pikas and am thinking about GeoFM+SDMs so this was a cool read.

References

[1]Madhavapeddy (2026). Language integrated LLMs as an OCaml function. 10.59350/61cdd-r5a25
[2]Madhavapeddy (2026). Tessera v1.1 released, with smoother and temporally stable embeddings. 10.59350/vcqjp-24y05
[3]Madhavapeddy (2026). Just a rumour of a bug is enough to find a security exploit these days. 10.59350/tngsm-6rx23
[4]Madhavapeddy (2026). The 3rd Programming for the Planet 2026 videos are available. 10.59350/tdd9c-wmx92
[5]Gibb et al (2026). Package Managers à la Carte: A Formal Model of Dependency Resolution. 10.1145/3828699