We envision a new computer that amplifies human intelligence. A system that helps you think more clearly, collaborate more effectively, and is available anywhere and anytime. Though the specifics of our work continue to evolve, everything we do is in pursuit of this vision.
Our research spans a wide variety of domains from theoretical computer science to practical user experiences. We currently have three primary research themes.
Designing software environments where people can customize tools in the moment to meet their unique needs.
Discovering a dynamic medium for sketching ideas where adding behaviors and interaction is as natural as applying ink to paper.
Exploring software architecture that returns data to users and enables collaboration in every tool.
We publish the results of our research here and in academic venues. The list below includes both long-form essays and more informal lab notes.
Our goal is to design and build a production-ready access control system which is general enough for most local-first applications.
Working with empirical scientists to explore how the needs of academic paper writing can inform a new approach to collaboration.
A research project about version control software for writers, developers, and other creatives.
An exploration of how live data and computation can gradually enrich informal travel plans.
In Upwelling, we design an editing experience that gives authors creative privacy while still ensuring every change can be accounted for.
An examination of how a pen-based interface could be an alternative approach to solving logic problems with an SMT solver.
What would be possible if hand-drawn sketches were programmable like spreadsheets?
Gradually enriching text documents into interactive applications.
Uniting the directness of pen & paper with the dynamism of software.
Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and how to construct a CRDT for rich text.
A design experiment in digital identity that excludes the problem of users misrepresenting themselves by reconsidering digital introductions.
Changing schemas in distributed software is hard. Could adopting bidirectional lenses help?
Taking peer-to-peer beyond research prototypes, and working towards commercial-grade P2P collaboration software.
A new generation of collaborative software that allows users to retain ownership of their data.
A vision for empowered computing that reaches back forty years. Our research lab examines why it has been so hard to achieve.
Physical workspaces inspire a fast, fluid digital tool for creative thinking.
An early exploration of using CRDTs to enrich a creative application.
Cards and inking on a freeform canvas for the two-step creative process.
What it means for software to be fast, and why most software is not.
Several of our research projects have grown into actively developed, widely used tools.
A digital workspace where users can brainstorm, organize, and connect ideas visually using a flexible canvas for notes, sketches, PDFs, and other media.
A library for building collaborative applications that automatically sync changes across devices, even offline, using conflict-free replicated data types (CRDTs).