AI · open lab notebook
Less a product pitch than a working notebook: why AI matters for spatial work, why the open variants matter more, and what I'm currently building and exploring.
Spatial problems are full of the kind of pattern-matching that modern models are good at: classifying land cover, geocoding messy address strings, summarizing a stack of permit documents into something mappable. The interesting part isn't that AI can do these things; it's deciding where a model genuinely removes drudgery and where it just adds a confident-sounding layer of uncertainty over data that deserved more care.
I lean toward open-source AI for the same reason I leaned toward open-source GIS twenty years ago: I want to be able to open the tool up, understand how it reaches an answer, and run it on infrastructure I control. For public-sector and teaching contexts especially, a model you can inspect and host yourself beats one you can only rent and must take on faith.
What I'm working on
A "GIS app" in 2026 is usually a database, a renderer, and a model wearing a map for a face. Most of my current work lives at that seam.
A lot of what I build now is agent harnesses: the reliable loops that let a language model operate real spatial systems instead of just talking about them. I treat that as an engineering discipline rather than a prompt trick, which means spatial context documents, schema introspection, strict coordinate-system handling, write-gating, and spatial verification as a hard gate before anything is allowed to touch authoritative data.
On the retrieval side I'm focused on grounding models in an authoritative spatial database rather than letting them guess, pairing a relational/spatial store with vector similarity and graph traversal so an answer can walk from a parcel to its neighbors, its nearest roads, and its history before a single word is written. Most of it runs on infrastructure I own: self-hosted databases, local and open-weight models where they're good enough, and managed APIs only where they clearly earn their place.
The stack
The agents I build with
I build tools once and configure them three times. Each agent points at the same spatial MCP servers but plays a different role.
Anthropic · the builder & analyst
An agentic coding tool that works across a whole repository from the terminal. For GIS, it's where I build and maintain MCP servers, write ArcPy, GeoPandas, and PostGIS SQL, and run interactive deep analysis with the full project in view.
Nous Research · the operator
A long-running personal agent that runs on a schedule and answers messages. For GIS, it drives scheduled publication refreshes, monitoring, and briefings, and fields spatial questions on demand (over Telegram, say) without me opening a laptop.
OpenAI · the second opinion
A coding agent from a different model family. For GIS, I point it at the same MCP servers to cross-check analyses, run implementation tasks in parallel, and hedge against the failure modes any single model has.
What I'm exploring