Sign in

Alex Warth

@alexwarth.bsky.social
782 followers 181 following 76 posts

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

PostsRepliesMedia
Alex Warth @alexwarth.bsky.social · 22/09/2026
New Livelymerge lab note: www.inkandswitch.com/livelymerge/...
inkandswitch.com
030
Alex Warth @alexwarth.bsky.social · 22/09/2026
@daningalls.bsky.social 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.
inkandswitch.com
140
Reposted by Alex Warth
Ivy Reese @spiralganglion.com · 15/09/2026
here's a peak at what i've been doing for the past few years: building a calm, playful little space for thinking, doodling, journalling, and programming with materials like ink, paper, and… flux that spreads through your notes like a fluid wait what? www.youtube.com/watch?v=GurW...
youtube.com
PlayBook: A Programmable Paper Notebook
YouTube video by Ink & Switch
35218
Alex Warth @alexwarth.bsky.social · 14/09/2026
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": www.inkandswitch.com/malleable-so...
inkandswitch.com
Effective expressiveness
Everything is possible. What’s actually worth the effort?
0327
Alex Warth @alexwarth.bsky.social · 11/09/2026
New lab note with @daningalls and @pvh on how we made Livelymerge even more lively™: www.inkandswitch.com/livelymerge/...
inkandswitch.com
Improving the Multi-User Experience in Livelymerge
What are you up to? Streaming changes and seeing hands.
051
Alex Warth @alexwarth.bsky.social · 11/09/2026
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.
1153
Alex Warth @alexwarth.bsky.social · 05/09/2026
(actually soft)ware
010
Alex Warth @alexwarth.bsky.social · 04/09/2026
Forgot to include the link to the lab note! www.inkandswitch.com/livelymerge/...
inkandswitch.com
A Morphic Programming Kernel
Liveness and malleability
041
Alex Warth @alexwarth.bsky.social · 04/09/2026
This week in Livelymerge, Dan Ingalls 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.
1186
Reposted by Alex Warth
Ink & Switch @inkandswitch.com · 31/08/2026
Today we're officially sharing the "Introducing Patchwork-26" video from Lab Day at this year's @localfirstconf.com We bring you the first look at Patchwork-26, the latest in our ongoing effort to realize Malleable Software, Universal Version Control, and Local-First Software.
youtube.com
Introducing Patchwork-26
YouTube video by Ink & Switch
39133
Alex Warth @alexwarth.bsky.social · 26/08/2026
meat-a-balls! 🤌🏻
140
Alex Warth @alexwarth.bsky.social · 25/08/2026
My monorepo is definitely on the spectrum!
110
Alex Warth @alexwarth.bsky.social · 21/08/2026
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 Dan Ingalls and @pvh.ca on the optimizations that made Livelymerge 64× faster: www.inkandswitch.com/livelymerge/...
0388
Reposted by Alex Warth
Alexander Obenauer @alexanderobenauer.com · 18/08/2026
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/ada...
buddybindery.com
Ada Lovelace's Notes on Babbage's Analytical Engine
This book is a new typesetting and construction of Ada Lovelace’s extensive notes on, along with her translation of, L. F. Menabrea’s Sketch of the Analytical Engine Invented by Charles Babbage, Esq. ...
1308
Alex Warth @alexwarth.bsky.social · 12/08/2026
Tags could handle visibility, yes -- but the halo would still live in the doc: every write becomes an op in the append-only history, and it needs cleanup when my session ends (even if I crash). Local state gets the right lifetime for free, and the doc stays small enough to live in, Smalltalk-style.
010
Alex Warth @alexwarth.bsky.social · 12/08/2026
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 Dan Ingalls and @pvh.ca on the need for local state, and the simple mechanism that supports it: www.inkandswitch.com/livelymerge/...
1134
Alex Warth @alexwarth.bsky.social · 07/08/2026
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 Dan Ingalls and @pvh.ca: www.inkandswitch.com/livelymerge/...
36814
Alex Warth @alexwarth.bsky.social · 27/07/2026
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: www.inkandswitch.com/livelymerge/...
inkandswitch.com
Convergence Is Not Enough
Getting into trouble with data representations in Automerge.
0112
Alex Warth @alexwarth.bsky.social · 17/04/2026
The 2nd lab note in my series about the local-first task framework I've been working on w/ @pvh.ca is out! Topics include distributed coordination, the router takeover protocol, offline resilience... check it out at www.inkandswitch.com/patchwork/no...
inkandswitch.com
Implementing a Local-First Task Framework
Queues, workers, and routers, oh my!
0237
Alex Warth @alexwarth.bsky.social · 03/04/2026
I've been working with @pvh.ca on a local-first task framework at @inkandswitch.com. 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. www.inkandswitch.com/patchwork/no...
inkandswitch.com
A Local-First Task Framework
Industrial research lab working on digital tools for creativity and productivity.
26310
Alex Warth @alexwarth.bsky.social · 25/07/2025
For more info, see: www.inkandswitch.com/ambsheets/no...
inkandswitch.com
Ambsheets: Spreadsheets for exploring scenarios
Ambsheets is a research project about new kinds of spreadsheets for exploring possibility spaces and making better decisions.
031
Reposted by Alex Warth
Jonathan Edwards @jonathoda.bsky.social · 16/06/2025
Reminder: LIVE Programming workshop submissions due July 21. liveprog.org
liveprog.org
Workshop on Live Programming (LIVE)
The 11th Workshop on Live Programming (LIVE 2025) will take place online. LIVE invites submissions of ideas for improving the immediacy, usability, and learnability of programming.
097
Reposted by Alex Warth
OhmJS @ohmjs.org · 16/06/2025
One of the biggest production users of Ohm that we know of is Shopify. They used Ohm in the Liquid HTML parser that powers their prettier plugin & VS Code language server — as well as the Shopify Admin's CodeMirror-based editor. www.npmjs.com/package/@sh...
npmjs.com
npm: @shopify/liquid-html-parser
Liquid HTML parser by Shopify. Latest version: 2.8.2, last published: 2 months ago. Start using @shopify/liquid-html-parser in your project by running `npm i @shopify/liquid-html-parser`. There are 8 other projects in the npm registry using @shopify/liquid-html-parser.
094
Reposted by Alex Warth
Geoffrey Litt @geoffreylitt.com · 10/06/2025
New longform @inkandswitch.com essay! 📜 Malleable Software: Restoring user agency in a world of locked-down apps by me, @joshuahhh.com, @pvh.ca and @seaofclouds.com inkandswitch.com/essay/mallea... It's about why people need agency over their software tools, and how to make that happen.
inkandswitch.com
Malleable software: Restoring user agency in a world of locked-down apps
The original promise of personal computing was a new kind of clay. Instead, we got appliances: built far away, sealed, unchangeable. In this essay, we envision malleable software: tools that users can...
39724
Reposted by Alex Warth
Geoffrey Litt @geoffreylitt.com · 22/04/2025
what if you could model a problem in a spreadsheet, and then instantly start applying powerful *filters* to explore your space of options? that's the idea @alexwarth.bsky.social and I have been exploring recently at @inkandswitch.com ... 1/
4618
Reposted by Alex Warth
el @elliot.website · 26/03/2025
Last week I finished my research residency at @inkandswitch.com. Here's some rough documentation of what I worked on during that time vezwork.github.io/polylab/dist...
vezwork.github.io
1266
Alex Warth @alexwarth.bsky.social · 25/02/2025
Ooooooo love this
010
Reposted by Alex Warth
Ivy Reese @spiralganglion.com · 05/02/2025
The Ink team at Ink & Switch is starting something new — publishing our internal lab notes. These are (mostly) unedited, with all our puzzling and musing and prototypes unfiltered. Take a peek: inkandswitch.com/ink/notes/
inkandswitch.com
We’ve begun publishing the internal research notes we write within the lab. Some of these newly published notes come from our archives of past projects, others are being freshly written about our latest work. Be aware that these are notes we write for ourselves. Sometimes they’ll mention a term or name that you won’t be familiar with. Many notes link to other notes that aren’t public (yet?). If you’re interested in our quest to build a dynamic notebook with programmable ink, or are working on something similar yourself, there’ll be lots to see and learn here.
38220
Alex Warth @alexwarth.bsky.social · 04/02/2025
Curious to learn more? We're publishing a series of notes about our experiments. Our first note introduces how amb values work and why they improve on existing spreadsheets: www.inkandswitch.com/ambsheets/
inkandswitch.com
Ambsheets: Spreadsheets for exploring scenarios
Ambsheets is a research project about new kinds of spreadsheets for exploring possibility spaces and making better decisions.
1101
Alex Warth @alexwarth.bsky.social · 04/02/2025
What if a spreadsheet cell could hold multiple values at the same time? That's the idea behind Ambsheets, a project I've been working on w/ @geoffreylitt.com at @inkandswitch.com. It's a new spreadsheet that makes it easier for you to explore many possibilities simultaneously. 1/2
610324
Alex Warth @alexwarth.bsky.social · 01/02/2025
So exciting on both counts!!! The book is a beauty!
030
Alex Warth @alexwarth.bsky.social · 01/02/2025
Lol
010
Alex Warth @alexwarth.bsky.social · 28/01/2025
I spent about 45 minutes making this. After I showed it to Alan, he gave me an internship at VPRI, working on the STEPS project. A couple of months later, he would be co-advising my Ph.D. Best ROI *ever* on writing a computer program. 3/3
090
Alex Warth @alexwarth.bsky.social · 28/01/2025
The hero of this story is Etoys' "color sees" tile. When the wire's red sensor sees the color yellow, the wire turns yellow. Otherwise, it turns black. You can make AND, OR, NOT gates the same way -- it's nothing that a 5th-grader would have trouble making on their own. 2/3
120
Alex Warth @alexwarth.bsky.social · 28/01/2025
Logic Game, 2005. I made this logic circuit simulator to learn Etoys, Alan Kay & co.'s programming language for kids. I represented the state of the wires and logic gates with their "costumes" -- there is no hidden state. This makes the behavior of the circuits visible. 1/3
2215
Alex Warth @alexwarth.bsky.social · 25/01/2025
@chrisshank.com My Sketchpad triggers haptic feedback in the Pencil when the cursor snaps to a line / point / etc. and it's quite tasty! Doing it via the I&S wrapper for now... it will be cool when that functionality is available via browser APIs.
030
Alex Warth @alexwarth.bsky.social · 25/01/2025
It's a recreation of Ivan Sutherland's Sketchpad that I've been working on. It's not quite ready yet, but I'm making progress! www.youtube.com/watch?v=5RyU...
youtube.com
Ivan Sutherland's Sketchpad
YouTube video by Animation History
020
Alex Warth @alexwarth.bsky.social · 25/01/2025
010
Alex Warth @alexwarth.bsky.social · 25/01/2025
Market research for a new business venture? :p
020
Reposted by Alex Warth
pvh @pvh.ca · 18/01/2025
Used my Ohm JS harness to design & implement a little programming language for Finite Cellular Automata and then shipped it as a toy into Patchwork. It's really cool to be able to work on a little programming language and pop out to change the syntax without even reloading my browser.
A screenshot of a grid with rules describing Conway's Game of Life in a custom programming language alongside.
3474
Alex Warth @alexwarth.bsky.social · 24/01/2025
Love this!! Thanks for giving us a look behind the curtain, super interesting @rob-sheridan.com :)
010
Alex Warth @alexwarth.bsky.social · 24/01/2025
Please do!!
010
Alex Warth @alexwarth.bsky.social · 24/01/2025
We tried all kinds of things, but my memory is fuzzy. At some point I found a bug report and this, and the OP was told that it wasn't a bug :/ Anyway, if you can simultaneous touch and pencil interactions working in the web browser (maybe in a tiny demo?) we'd love to se it!
210
Alex Warth @alexwarth.bsky.social · 24/01/2025
We get around this by capturing the touch and pencil events in the wrapper application (which is a native iPad app written in Swift so it doesn't have this limitation) and sending them (as JSON objects) to the JS code that's running in the WebView. cc @spiralganglion.com
030
Alex Warth @alexwarth.bsky.social · 24/01/2025
IIRC, the browser (even when it's running in a WebView) purposely ignores pencil events when touch events are going on and vice-versa. There's no technical reason for this -- the people in charge decided that interfaces like the one you see in my video would be too confusing / error-prone.
340
Alex Warth @alexwarth.bsky.social · 24/01/2025
Sketchpad running on the iPad! (This is my plug for the @inkandswitch.com wrapper, check it out at github.com/inkandswitch...)
19416
Alex Warth @alexwarth.bsky.social · 23/01/2025
Fellow technologists: next time you use 'incredibly' in a sentence, consider omitting it altogether. You'll be *incredibly* glad you did.
040
Alex Warth @alexwarth.bsky.social · 21/01/2025
Constraint-Based Spreadsheet, 2014. An attempt to make spreadsheets more powerful and user-friendly by replacing one-way formulas with multi-way constraints. Check out the source code (@ohmjs.org inside!) and play with the live demo at github.com/harc/constra...
1152
Alex Warth @alexwarth.bsky.social · 19/01/2025
To play with a live demo and see the source code, go to github.com/alexwarth/sc...
github.com
GitHub - alexwarth/scrub: Graphing Scrubbing Calculator
Graphing Scrubbing Calculator. Contribute to alexwarth/scrub development by creating an account on GitHub.
040
Alex Warth @alexwarth.bsky.social · 19/01/2025
In this prototype, I also experimented with a purely textual way to bind the values of different number "tokens" to each other. All you had to do was type a variable name immediately after the number. Numbers with the same name would have the same value.
191