Principal Investigator at @inkandswitch Formerly at Alan Kay's research groups (YCR/HARC, CDG, VPRI), and Google Creator of OMeta, co-creator of @_ohmjs

Los Angeles, CA
Joined April 2009
Everyone’s seen the Sketchpad demo. Few understand how it actually works. I reimplemented Sketchpad from scratch, and I’m making short videos that recreate Sutherland’s demos and explain how they work. The first 8 are up — from drawing a line to the famous rivet. Link below 👇
8
23
2
137
6,209
You don’t have to just watch my Sketchpad videos — you can follow along in the web browser. Try the first demo: hold ⌘ and click to draw two lines. Drag an end point of one onto the other. Now move that line and hold the spacebar to solve — the point stays on it. Link below 👇
2
5
1
26
1,115
Here it is: alexwarth.github.io/projects… (⊞ instead of ⌘ on Windows.) All the controls are in the README: github.com/alexwarth/sutherl… And the videos, if you want the guided tour: youtube.com/playlist?list=PL…
1
5
165
Replying to @daningalls
@daningalls wanted an LLM inside his Morphic world. He'd put off writing a harness. Then he realized Livelymerge was already multi-user, so the agent could be just another user. An hour later, a morph saying "Hello from Grok 4.5!" appeared on his screen.
1
1
19
652
Nearly every general-purpose programming language is Turing complete. So ask not what you can do with a language, but what a language makes worth the effort. A short note on "effective expressiveness": inkandswitch.com/malleable-s…
2
2
1
23
1,371
Dragging a morph in Livelymerge used to cost four Automerge ops per pointer move. At 30 fps, that's 120 ops/sec, bloating the document forever. Even worse, the morph's movement looked jerky to everyone else. Now it costs zero ops, and it's smoooooooth.
4
3
50
2,834
This week in Livelymerge, @daningalls gives us a tour of Morphic: the scene graph, halos, text editing, and programming tools of the live, malleable kernel that lives inside an Automerge document. inkandswitch.com/livelymerge…
5
18
860
Alex Warth retweeted
Last year, I was invited to write an essay, to be included in a book on the occasion of Java's 30th anniversary. The book never materialized, and I forgot about it. So belatedly, for historians/archaeologists/pathologists: bracha.org/java_at_30_essay.…
2
4
1
22
1,347
We put a live programming system's entire heap inside an Automerge document — every object, class, method shared + persistent. It all worked, but it was sloooow. New lab note with @daningalls and @pvh on the optimizations that made Livelymerge 64× faster: inkandswitch.com/livelymerge…
1
5
18
958
Friends! Our next release: Ada Lovelace's Notes on the Analytical Engine, in a unique construction, with a new typesetting, and a facsimile of Note G's fold-out. Available in September. Sign up for an email notification at the link. More details below! buddybindery.com/products/ad…
3
3
18
904
Alex Warth retweeted
New side project: Samuel, a model I trained to mimic speech using Pink Trombone, a (pre-existing) silly vocal tract simulator. 🧵
89
248
25
3,558
151,266
Everything in Livelymerge is persistent and shared — yay! Then I cmd-clicked a rectangle, and my halo popped up on your screen — whoops! New lab note with @daningalls and @pvh on the need for local state, and the simple mechanism that supports it: inkandswitch.com/livelymerge…
2
1
21
1,477
Alex Warth retweeted
I've been prototyping a tool for manipulating paths as if they were a malleable material. The primary quality I'm aiming for is that the final path feels authored. Control point placement should feel intentional — not machine-generated.
99
155
28
3,213
891,725
We put a program's entire heap inside an Automerge document. Every object is persistent and shared: you and I can live in the same running program — and change it while it runs. New Livelymerge lab note, with @daningalls and @pvh: inkandswitch.com/livelymerge…
2
8
33
2,753
New Livelymerge lab note! Two users each make a valid edit to a linked list. Automerge merges them exactly as designed... and the result is either a truncated list or an infinite cycle 😬 The CRDT did nothing wrong, but convergence is not enough: inkandswitch.com/livelymerge…
7
459
The 2nd lab note in my series about the local-first task framework I've been working on w/ @pvh is out! Topics include distributed coordination, the router takeover protocol, offline resilience... check it out at inkandswitch.com/patchwork/n…
2
1
18
2,014
I've been working with @pvh on a local-first task framework at @inkandswitch. It distributes computation across users' computers, keeps working while you're offline, and syncs results back to everyone when you reconnect. First lab note is up. inkandswitch.com/patchwork/n…
5
37
2,626