Open-sourcing Keyhive, filtering Ambsheets, and Sketchpad explorations

We hope you’re having a great spring! We are busy with lots of projects over here, including low-level explorations of new algorithms for data synchronization, experiments with new kinds of probabalistic computation, and even recreating a lost historical software system: Ivan Sutherland’s famous Sketchpad.

Open-sourcing our local-first access control work

We’ve previously introduced Keyhive: a project focused on local-first access control. Today we have two exciting updates on that work.

First, we have open sourced a pre-alpha version of Keyhive and Beelay for those curious to see the code. Keyhive is the core signing, encryption, and delegation system, and Beelay provides auth-enabled sync over end-to-end encrypted data. This is for interested readers and experimenters, but not for production yet.

We’ve also written a lab note about how two peers synchronise their collections of documents. The underlying problem here is one called “set reconciliation” and it is surprisingly common For example, fetching changes from git has to deal with this. We’ve adopted some exciting new set reconciliation algorithms that make it possible to synchronize very large collections with a small amount of communication, which has become important as we see Automerge-backed applications growing in scale.

Filtering scenarios in ambsheets

When you’re choosing from a long list with many options, it’s helpful to have filters to narrow down your search. This is a familiar concept on many websites—for instance, on the flight search website Kayak, you can start with a list of thousands of flights, and then filter down to the ones that meet your needs: “a nonstop flight, leaving before 11am, in economy class”.

What if you could apply this same concept of filtering to any problem in your life? Whether it’s deciding on a budget or planning a project, we all encounter situations where we’re considering a large number of options, and need to narrow down our search.

In our latest lab note , we show how to do just that, using filters in Ambsheet, our research prototype of a spreadsheet for modeling multiple scenarios. Filters in Ambsheets are powerful because you can filter on any cell, including the outputs of computations with formulas. Read the note for more demos and details.

Sneak peek: Reconstructing Sketchpad

Ivan Sutherland’s Sketchpad is a seminal work in computer science. Besides being one of the first computer graphics systems, it also pioneered the use of objects (via its “masters” and “instances”) and nonprocedural programming (via geometric constraints). It ran on the TX-2, an experimental computer the size of a football field that unfortunately no longer exists.

To give people a chance to experience Sketchpad firsthand, lab researcher Alex Warth has been working on a re-implementation that runs on the iPad. It’s not quite ready for prime time yet, but he has been documenting his progress on social media.

What’s another open tab?