Sign in

Alex Warth

@alexwarth.bsky.social
780 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
@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
130
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
35118
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
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.
1142
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 · 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/...
0378
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
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
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
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
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 · 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
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
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
Graphing Scrubbing Calculator, 2013. I was inspired by @worrydream.com "scrubbing calculator" to explore UIs in which some of the text you type gets widget-like superpowers automatically.
2173
Reposted by Alex Warth
Jack Rusher @jackrusher.com · 17/01/2025
This mini-documentary about David Lynch making one of my favorite records of recent years is great, and I have seldom felt so vigorously in agreement with any statement as this one: "All the different outlets are important to me, all the different art forms." www.youtube.com/watch?v=dfR_...
youtube.com
David Lynch - Making 'The Big Dream' (Documentary) (2013)
YouTube video by DAVIDLYNCHSUNDAYBEST
1263
Reposted by Alex Warth
Patrick Dubroy @dubroy.com · 17/01/2025
Mostly Shallow, a fun little iOS app by @spiralganglion.com → ivanish.ca/mostly-shal... "Every frame, it generates a dot per pixel of the video feed, and places the dot in 3d space using the depth data to control the z value."
1103
Alex Warth @alexwarth.bsky.social · 17/01/2025
Sketchpad: two-point perspective
0111
Alex Warth @alexwarth.bsky.social · 15/01/2025
Soccer ball launcher prototype, 2023. MicroPython / Raspberry Pi Pico, dual motor controller, and a couple of DC motors.
061
Reposted by Alex Warth
Technical Lectures @lectures.bsky.social · 14/01/2025
Alex Warth (@alexwarth.bsky.social): Much Ado About Undo www.youtube.com/watch?v=z0ri...
youtube.com
Alessandro Warth - Much Ado About Undo
YouTube video by FAST - Fundación Argentina de Smalltalk
043
Alex Warth @alexwarth.bsky.social · 13/01/2025
Sketchpad: an interactive model of vanishing points made out of point-on-line and horizontal/vertical constraints!
17413
Alex Warth @alexwarth.bsky.social · 11/01/2025
@ohmjs.org Look what I found in Carpinteria.
120
Alex Warth @alexwarth.bsky.social · 07/01/2025
Sketchpad: a truss bridge made out of fixed length constraints. (Note that instantiation followed by dismembering gives you the equivalent of a "paste" in more modern systems.)
1247
Alex Warth @alexwarth.bsky.social · 07/01/2025
Sketchpad: the "dismember" operation inlines an instance into the drawing it's in. This lets you mess with its lines, etc. without changing the master. In this demo, I make two instances of drawing #2 and dismember the one on the left. The one on the right stays whole.
151
Alex Warth @alexwarth.bsky.social · 02/01/2025
I made this teensy-based MIDI looper and step sequencer a few years ago, which was super fun. Excited to hack on some new music projects this year!
071
Alex Warth @alexwarth.bsky.social · 31/12/2024
Sketchpad update: implementing a "new" feature with a colorful name.
120
Reposted by Alex Warth
Jack Rusher @jackrusher.com · 23/12/2024
“Don’t revere planning over doing. Craft’s truth emerges only through the friction of material engagement.” This whole piece is very good. ryolu.notion.site/how-to-make-...
ryolu.notion.site
How to make something great
In the pantheon of creative endeavors—be it product design, art, architecture, software, or some hybrid creature of the mind—true greatness emerges not from any single stroke of genius, but from a car...
0297
Alex Warth @alexwarth.bsky.social · 27/12/2024
If you're a fan of @worrydream.com's Inventing on Principle, check out Seymour, a live programming environment I made with Saketh Kasibatla

harc.github.io/seymour-live...
5418
Alex Warth @alexwarth.bsky.social · 23/12/2024
An oldie but a goodie, and somewhat Sketchpad-related: quick-return mechanism in Inkling. feelingisreality.com
031
Alex Warth @alexwarth.bsky.social · 21/12/2024
Sketchpad: fun with text
1357
Alex Warth @alexwarth.bsky.social · 21/12/2024
Sketchpad: doing text using masters and instances (Thanks to Yoshiki Ohshima and Alan Kay for creating the font shapes from images in Sutherland's dissertation!)
071
Alex Warth @alexwarth.bsky.social · 21/12/2024
Sketchpad: removing an attacher
020
Alex Warth @alexwarth.bsky.social · 21/12/2024
Sketchpad: auto-solve mode
1162
Alex Warth @alexwarth.bsky.social · 21/12/2024
Sketchpad: making a honeycomb from hexagons with attachers
010
Alex Warth @alexwarth.bsky.social · 20/12/2024
Sketchpad: regular hexagon
010
Alex Warth @alexwarth.bsky.social · 20/12/2024
030
Alex Warth @alexwarth.bsky.social · 20/12/2024
Sketchpad: more flanges and rivets
010
Alex Warth @alexwarth.bsky.social · 20/12/2024
Sketchpad: creating an instance of the rivet
010
Alex Warth @alexwarth.bsky.social · 20/12/2024
I've been working on a Sketchpad implementation. I'll start posting some videos...
1100