Principal Investigator at @inkandswitch
Formerly at Alan Kay's research groups (YCR/HARC, CDG, VPRI), and Google
Creator of OMeta, co-creator of @_ohmjs
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 👇
Yesterday I made a “plaything” for Igarashi et al.’s excellent SIGGRAPH 2005 paper, As-Rigid-As-Possible Shape Manipulation!
Works with a mouse, but it’s much more fun with multi-touch on an iPad.
Link below 👇
Claude totally nailed it (!!) and now I have a version of that stuff that I can play with. I was able to recreate the examples in the paper and get a much better feeling for how it works. Excited about this!
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 👇
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 👇
The full series, in order — “A Guided Tour of Sketchpad”:
piped.video/playlist?list=PL…
Coming soon: the bridge demos and the “dismember” operation, then a few demos of my own.
@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.
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…
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.
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…
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.…