Want to receive my work as I publish it?

LAB NOTES
LAB NOTES
LN 041
7•20•2026

These Lab Notes document my research in progress. My research area is in the future of personal computing.

TOC Previous Next Latest


LN 041

Extemporaneous UIs

LN 040

The venerable hyperlink

LN 039

Notes on time

LN 038

Semantic zoom

LN 037

Gestural view construction

LN 036

Free and easy organizations and associations

LN 035

The Messy Desktop

LN 034

Live items & Contextual notifications

LN 033

Swappable reference views

LN 032

System injections

LN 031

Fluid workspaces

LN 030

Foldable views

LN 029

Experimenting with the item as the core primitive

LN 028

Designing systems for computer literacy and evolvability

LN 027

Personal Computing Network & Devices

LN 026

Internet Modules

LN 025

Publishing items

LN 024

Mutations & Item change logs

LN 023

Higher-level primitives

LN 022

Undo Actions

LN 021

Automations

LN 020

Item Actions

LN 019

Notifications

LN 018

Services & Item Drives

LN 017

Today & Daily summary

LN 016

Calendar views

EXPERIMENT 001

Cross-reference Navigation in Obsidian

LN 015

Cross-references & References cloud

LN 014

The Graph OS

LN 013

Why is our thinking on computers so restrained?

LN 012

References box & Topics

LN 011

General purpose personal computing software

LN 010

User-created application and system views

LN 009

User-created item views

LN 008

Unified views

LN 007

Atomized apps

LN 006

Swappable views

LN 005

Associated items

LN 004

Browsing contexts & recent paths

LN 003

Universal reference containers

LN 002

Universal data portability

LN 001

Composing application interfaces

LN 000

The Lab Notes

Extemporaneous UIs

No task is as rigid as today’s software interfaces. Our needs ebb and flow, different things grow and decay in importance, our focus moves over time to different parts or aspects of the work we’re doing. What’s in your focus, your periphery, and in the background shifts as you move through your work.

Besides bringing one program’s window(s) to the foreground, we largely lack meaningful ways to represent this fluid ebb and flow with our digital tools and materials.

But extemporaneous UIs are different — they follow your interaction to emphasize needed things over others, to provide greater visualization and control over focal aspects or items, or allow you to rearrange the tools and materials within your workspace.

Let’s look at four or five examples.


Tear-off menus

Tear-off menus have shown up in numerous systems throughout the decades, allowing users to pull the controls they need most often persistently into their workspaces.

From the HyperCard manual:

A page of the HyperCard manual showing paint tools menus being added persistently to the workspace. The text says: Convert menus to palettes: You can 'tear off' both the Tools menu and the Patterns menu so that you can have constant access to them as you work. Just drag through them, past the bottom or off to one side; then leave them where you want them. When they get in your way, move them by dragging their top bars. Click
  their close boxes to make them go away.

As a system-wide behavior, any program can pick up these benefits: whatever controls a program makes available in its menus can be “torn off” and brought into the user’s workspace persistently.

Users can then design their workspace with the controls they need most often, or for their current task.


Quantized semantic zoom

This system allows users to scale the level of detail shown on different nodes as needed to manipulate sounds and music. It does this via “local quantized zooming”, in which each component has a small set of sizes at which verying degress of information and controls are made available.

Lobe UI by John Underkoffler: "undulant interface for genetic music manipulation system"

This lets the user underemphasize the nodes not needed for the current task, and overemphasize those which matter most. If the user discovers that a previously unimportant node might help in a quick experiment, one click will do the trick, bringing that node’s full set of controls and visualizations to the fore.

Having this kind of frictionless control over what’s in focus, what’s on the periphery, and what’s in the background lets users engage fluidly with their work.


Spatial personal computing canvas

In an experiment we explored in an earlier lab note, users could construct the views they needed by directly manipulating their items:

In this case, I’ve created a horizontal list of my inbox’s emails, with contents fully rendered, and a reply bar accessible on each (this is my preferred way of interacting with email).

The “fan out” gesture contained a surprising amount of information: I could have made a vertical or a horizontal list, and by dragging in a particular direction, I sorted the emails in descending order. The “unpinch” to scale the emails up allowed me to reach a size that includes their fully-rendered contents (rather than just the preview text), as well as a quick reply bar.

Similarly, in an experiment I created with colleagues early during work at Ink & Switch that would become Embark, we have a canvas that allows for the construction of needed interfaces by way of widgets which exist in a system that allows other widgets to react to donated data (audio on for narration):


Userland-defined primitives

Last year, I built a recreation of the Canon Cat’s document user environment, and lived in this environment for a couple weeks.

The Canon Cat had a streamlined computing experience: the operating environment consisted entirely of one stream of text. And it had no mouse — for navigation, it featured two physical “leap keys” below the spacebar which you could hold down as you type a sequence of characters to jump to the previous or next instance of that sequence.

As a result, keyboard shortcuts for navigation were not special cases to build or learn; you could leap to space, return, or the document separater character to move to the beginning or end of the word, paragraph, or document. Since these two-key shortcuts were a property of how the leap keys work, you could build your own first-class navigational features with the text you choose to type. An asterisk could be left by sentences needing review, for example, giving you a two-key shortcut to these parts of your document.

It’s as easy as typing, just as you’re doing the rest of the time in this environment. You could do this for something you need just for the current task at hand, as a pattern that you use for years to come, or anything in between.

Here’s a demo of this system:


Different users have different needs, and for those differences, people can generally look for different apps or certain settings. But each individual user has different needs at different times, too. These different needs might last a few moments or a few months, and could be equally supported by extemporaneous user interfaces.

Critically, “constructing” extemporaneous UIs only involves direct interaction with the things users need on screen, causing a change in emphasis on certain controls and information. It does not require mucking around in settings panels, writing code to specify the change, or laying things out in a WYSIWYG interface editor.

It’s rare to run into an extemporaneous interface in the wild. It almost feels like the stuff of wizardry: a user can wave their wand and the interface reorganizes itself according to their particular wants and needs; into an arrangement that has maybe never existed before, and may never exist again.


P.S. Do you have other examples of extemporaneous UIs? Please send them my way, as I’d love to add them here.

Something spark a thought? Email me, or come chat on Bluesky, on Mastodon, or on Twitter.


« Previous: LN 040

TOC


Want to receive my work as I publish it?