Registrar – Experiments with Apple’s on-device machine-learning frameworks
We are releasing this work in a spirit of generousity and to encourage others to suggest improvements with the larger goal of providing resources to help the broader cultural heritage sector think about how to use machine learning technologies outside and beyond the promises of the billboards advertising these same technologies in Silicon Valley and the world over.
This is a blog post by aaron cope. It was published on October 16, 2025 and tagged swift, ios, llm, machine-learning and roboteyes.
Searching the SFO Museum Aviation Collection website by color
The search-by-color functionality works by taking an input color, represented as a hexidecimal string, and then “snapping” it to its nearest match on a fixed palette of colors. The RGB color space contains over 16 million individual colors so searching for exact matches will usually yield too few results to make searching by color useful. By “bucketing” all those millions of colors in to a fixed set of a couple of hundred colors, a “palette”, things start to get interesting.
This is a blog post by aaron cope. It was published on June 16, 2025 and tagged collection, search, color, api and webassembly.
Updates to the SFO Museum text and image “embossers” (and a brand new tool for color matching)
In addition to all these changes the go-image-emboss package now includes a new command line tool, called review-colors, to perform image segmentation, color extraction and “snap-to-grid” matching with one or more color palettes for images, displaying all the results in a handy webpage.
This is a blog post by aaron cope. It was published on May 29, 2025 and tagged golang, swift, roboteyes, grpc and color.
Building a custom Placeholder geocoding database
Placeholder is great but there are three things it doesn’t support by default which are pretty important for SFO Museum: The inclusion of airports, historical records and SFO Museum architectural records in the search index. I am happy to say that we are now able to build our own custom Placeholder SQLite databases which address all of these issues.
This is a blog post by aaron cope. It was published on April 28, 2025 and tagged golang, placeholder, geocoding and history.
The SFO Museum Application Programming Interface (API)
Today we are announcing the availability of the SFO Museum Application Programming Interface (API). The API allows developers to access SFO Museum-related data programatically over the internet. The SFO Museum API has actually been around for a while now. It’s what powers the object counts as you add and remove filters on the advanced search page on the Aviation Collection website and is how items are added to and removed from your shoebox from both the Collection and Mills Field websites. The various SFO Museum websites are API consumers just like any other application. We are pleased to be able to (finally) open up access to the API to you and we look forward to seeing what you create with it.
This is a blog post by aaron cope. It was published on January 14, 2025 and tagged golang, python, api, shoebox and picturebook.
SFO Museum flight data records now available as GeoParquet exports
This is a short blog post to announce the availability of flight data for of the over 8.4 million (and counting) flights that have traveled in and out of SFO, since 2006, as GeoParquet files.
This is a blog post by aaron cope. It was published on January 07, 2025 and tagged flightdata, geoparquet, geo and duckdb.
Updates to the SFO Museum shoebox
It is now possible to add individual flights and Instagram posts, in addition to collection objects, to your shoebox. The goal is to slowly (and then quickly) add the ability to save any of the “first class actors” involved with the SFO Museum websites to your shoebox: Twitter posts, individual terminals and gates, airlines, aircraft and airports. Anything, really. Flights and Instagram posts are just what we’ve started with and what we’re using to make sure everything works.
This is a blog post by aaron cope. It was published on December 05, 2024 and tagged shoebox, flightdata, instagram and socialmedia.
Updates to the SFO Museum ActivityPub services
The ability for SFO Museum ActivityPub accounts to both signal and promote one another provides a mechanism where people can subscribe to a single (SFO Museum) account can keep up with everything that all the other (SFO Museum) accounts are talking about. The introduction of a message processing queue, currently just to handle nearby requests, opens up a whole world of possible interactions between people inside (and outside) the terminals and everything SFO Museum has to offer. These small incremental changes and small and incremental in keeping with our goal “to keep things simple and prove that everything can work in a low-cost serverless environment without the need for a lot of babysitting”.
This is a blog post by aaron cope. It was published on November 12, 2024 and tagged activitypub, socialmedia and golang.
Small focused tools for visualizing geographic data
This is a blog post about a series of small, purpose-fit web applications that can be run from your local desktop (or a remote server, if necessary) to visualize geographic data in a map. The first application lets you visualize GeoJSON files, the second SQLite databases containing MBTiles data and the third GeoParquet files. These are tools which were written to address specific use cases for SFO Museum but are sufficiently generalized, even though they each only try to do one thing well, that we are sharing them in the spirit of generosity.
This is a blog post by aaron cope. It was published on October 02, 2024 and tagged maps, geo, geojson, mbtiles, geoparquet and golang.








