Little Lab

Experiments & essays

2026

Exploding flask

Experiments & essays

Wonderful

Members only

Wonderful is a Swift-like language for the browser and other JavaScript contexts. It implements a subset of Swift’s core features, and extends it in a few ways. It can be compiled into JavaScript during development or at runtime: in the browser, on the server, or from the command line.

The initial implementation was written in JavaScript (the transpiler’s target language), and the second was written in Swift/Wonderful (the transpiler’s source language). The Swift implementation is close to being able to compile itself, which will make Wonderful fully self-hosted.

An interesting thing about a transpiler where there’s already a compiler for the source language is that if you write the transpiler in the source language rather than the target language, you can have both implementations, since the transpiler for the source language can transpile itself into the target language.

Keep reading…

Earthling

Members only

An exploration of the “singular metamedium” — one which allows for creation and use within one environment.

Read more in this member update. I’m preparing a full demo, writing its essay, and preparing it to be made open source.

Keep reading…

Heron

Members only

Heron is an applied HCI project investigating concepts in personal health informatics for individuals with chronic conditions. It’s a collaboration with Sarah, my wife, who is a researcher in bioethics.

When it comes to personal health informatics, supporting a person’s right to autonomy in healthcare requires agency in computing. It has some tensions in its real application that place real-world demands on the ideals for malleable software, while also giving malleability significant philosophical motivation.

Chronic conditions require lots of daily self-management: therapeutic interventions like medications, injections, etc., lifestyle changes like location, type of work, and type of home, and behavior changes, like rest, exercise, and use of assistive products. These are known as “adaptive strategies,” which individuals with chronic conditions employ around the clock.

Keep reading…

Workbench

Members only

Workbench is a personal interfaces development kit. It packages the item store in a native app for for iOS, iPadOS, and macOS, with providers that load the item store with calendar events, weather forecasts, and more. It syncs facts in the item store via iCloud for multi-device use. It has wrappers and helpers to make developing personal interfaces efficient.

This project is discussed further in this member update.

See the source on GitHub.

Keep reading…

Item Store

Members only

A tuplestore for storing items, with implementations in C and Swift, backed by SQLite and optionally Core Data. It makes it possible to plug in providers that can contribute items.

It’s nothing particularly novel, but it does express a series of ideas that have evolved to support my personal software stack over the last several years. It’s been influenced by a few sources, maybe most notably Datomic’s data model. It keeps things fairly simple, at the expense of performance in some cases, or disk usage in others; by reducing the optimizations, it remains a tinkerable, if steampunk, little database for the things I’ve used on a daily basis.

The Swift implementation has helpers that codify practices around storing relationships among items (which are items themselves), item views, and more.

Keep reading…

Sonicaster

Members only

An audio synthesis workbench and virtual machine.

While working with collaborators John Underkoffler, Alex Warth, and Andy Milburn during my time in LA, Alex and Andy came up with this simple idea for coding audio synths. We had lots of fun with this, creating all kinds of different implementations.

Sonicaster is one such environment which I built to understand the concepts better.

Keep reading…

Gestural view construction

Members only

An early exploration into how an environment might make constructing and using an interface one and the same, in a dynamic and fluid environment.

It features a live query being placed on a surface, the stack of its results being laid out in a particular order in one gesture, and semantic zoom allowing for increased detail with another gesture.

Read more about it & see the demos in this lab note →

Keep reading…

Breadboard

At the start of the Ink & Switch project that would become Embark, I built a prototype environment in which separate widgets could react to one another, allowing users to compose interfaces for different needs. I thought about it as Siri’s donation system paired with Konfabulator widgets or Mac OS X Tiger’s original Dashboard.

The ideas came out of some early sessions with Paul Sonnentag, Geoffrey Litt, and Peter van Hardenberg. As we were exploring what project we might work on together, an idea first offered by Paul gave us lots of momentum, and led us down this line of thinking. Ultimately, Embark moved toward documents.

For variations on the theme, see Orion Reed’s project.

See & download the source on GitHub.

Watch the demos →

WonderOS

Members only

An itemized operator environment and virtual machine. This is an ongoing project.

It features a virtual machine written in C, an in-environment language “Wonderful” that allows live coding, and an implementation of the item store written in C and Wonderful.

Many of my experiments aim to progress the thinking for WonderOS. Its data model is explored and implemented by the item store, and its user interface is the subject of many of my lab notes and experiments — Earthling and Gestural view construction are notable recent examples.

Keep reading…

OLLOS

Members only

OLLOS structures itemized personal computing interfaces into one long timeline. It explores some inklings around how operating systems might reify an understanding of time.

The idea first came up in my notes in June 2021 as “One Long Log OS”: “All you can do is type down one long log. You can issue commands and ask questions, like to get email, but it all gets appended into your one long log. That’s all you can do. You can’t edit or delete.”

By the time I built it in November 2022, it had taken on some other qualities; namely, my aim was to find ways of having digital environments allow for more fluidly floating our things among different timescales, as we naturally engage with what’s in our focus, let some things slip to the periphery or background, and as other things bubble up into our central focus. It ultimately only scratched the surface of those latter aims, but gave direction for how future projects might continue the work.

Keep reading…

Early itemized prototypes

Members only

These early prototypes implemented the interfaces envisioned in the lab notes on top of the item store.

Keep reading…

Tag Navigator

Members only

Early in the lab notes, I explored an idea for an interface that composes itself by arranging your items according to their common cross-references.

Tag Navigator is a plugin for Obsidian that arranges these views with the notes in your vault, using tags.

The plugin has likely fallen out of date as Obsidian updates have introduced some breaking changes over the years.

Keep reading…


The Interfaces With Which We Think (2024)

This multi-part essay serves as an introduction to my work.

I’ve had much of it written for years, but for some reason, it just did not feel quite there until 2024.

Read the essay →

The Potential Merits of an Itemized OS (2021)

This paper, from early in my research, put together many of the concepts from my earlist lab notes into one synthesized picture, featuring a friendly fellow named Joe, a nod to Augmenting Human Intellect.

Read the paper →