Receipt Loom
Screenless Loom implementation.
- year
- 2024–25
In the summer of 2024, my partner Shanni suggested we purchase a receipt printer with the explicit intention of tangibly visualizing Loom trees on receipt paper.
I realized that loom could ostensibly power a prototype of an interactive "paper loom" with just a few modifications. We ordered and received our first thermal printer shortly thereafter; I spent a week or two adding rudimentary ESC/POS support, and we gave a series of informal demonstrations to a number of pairs -> groups of friends (and friends of friends) over the following weeks and months.
what is loom
Josh
as used in a subculture I was actively involved with at the time,
it is basically.. branching LLM completions
a friend of mine describes it as a choose your own adventure
It’s the only system I’ve ever used where I feel like I have space mentally to do with as I wish. I can use it to think, I can use it to read, or I could just be present and do neither. … The web browser has infinity, for your mind, and that’s really hard not to engage with. But when all you have is these eight nodes, and the only thing you can do with them is scan them or not, and they’re not on a screen that’s itself a portal to everything else, that’s really powerful. edited
2024
I found my laptop + terminal to be rather heavily distracting to users, quickly & continuously hijacking attention from the receipts themselves, let alone the material printed on the receipts.
The less visual contact between a user and my computer, the smoother their experience seemed to go, regardless of technical inclination.
We observed that a user who engaged with the receipts directly (minimized eye-screen, maximized hand-paper contact) was more likely to find intrigue in the heart of the project: base models + Loom. A couple of users noted that their previously wholly-negative impression of AI broadly had been swayed by their experience.
I found myself at a certain point in this process fascinated by the idea of a paper-only "card-based" mechanism for operating the loom. My early attendance @ Side Project Saturday was largely oriented toward building out something to that effect:

Prompt card
Write a prompt by hand.
Models
Check off the models to run.
Completions
How many outputs to print.
max_tokens
Mark a length on the dial.
temperature
Two marks here.
Card codes
A camera above the table was meant to read both cards at once. Reading several codes in room light never worked well enough.
Prompt card
Write a prompt by hand.
Models
Check off the models to run.
Completions
How many outputs to print.
max_tokens
Mark a length on the dial.
temperature
Two marks here.
Card codes
A camera above the table was meant to read both cards at once. Reading several codes in room light never worked well enough.

I made solid progress, but hit a wall (that is, quickly and reliably scanning multiple QR codes with a single faraway camera under varied lighting conditions) and paused work on the receipt side of my loom for a good while.
Barcode scanner
I resolved one night in March 2025 to finish the first iteration of a paper-only receipt loom; my intention was to give the multi-QR scanning hurdle another earnest attempt in light of new model releases, etc.
Thinking the next morning about what I'd seen of Omar & Andrés' Folk Gadget, I realized that scanning multiple QR codes simultaneously (Folk-style) was a problem that didn't necessarily need solving for this system to exist.
I'd previously toyed with a webapp to scan codes with a mounted or handheld smartphone, but foregone the idea in large part due to its dissonance with the intention behind the project (screenless computing / LLM interaction), along with performance concerns.
By comparison, barcode scanners have been heavily optimized for speed, accuracy, and ergonomics:
The rest of the prototype came together pretty smoothly over the course of a couple of weeks.

Settings
The model and sampler settings for this run.
Input
The scanned node under its parent. A vertical layout confused some people at first, so each panel title gives its position.
Outputs
Each completion prints in its own panel.
Code
Scanning it runs the loom from this output, or reprints it in show mode.
Earlier receipt
A run from the same input.
Settings
The model and sampler settings for this run.
Input
The scanned node under its parent. A vertical layout confused some people at first, so each panel title gives its position.
Outputs
Each completion prints in its own panel.
Code
Scanning it runs the loom from this output, or reprints it in show mode.
Earlier receipt
A run from the same input.
currently the app has two actions performed by scanning article QRs: print article, or print set of outlinks in article
the receipt loom and bsky client had a similar model where any given QR could trigger different actions when scanned
loom at first was conceived for use with joycon in one hand and scanner in the other, and later ended up implementing scan-sheet-to-change-mode (vs joycon trigger / shoulder+trigger to set) edited
qr show
qrshow.nyc, held @ Recurse Center on March 16, 2025
& organized by greg.technology

Thermal printer, lid open
An Epson thermal receipt printer, opened for a new roll.
Receipts
Runs printed during the show.
Terminal
The laptop runs the scanner loop and the Joy-Con state. Visitors read the paper; the screen stays out of the way.
Thermal printer, lid open
An Epson thermal receipt printer, opened for a new roll.
Receipts
Runs printed during the show.
Terminal
The laptop runs the scanner loop and the Joy-Con state. Visitors read the paper; the screen stays out of the way.

Receipts printed during qr show, hung on the wall in columns.
Exhibit card
The show's card for receipt loom, with a code. It names both makers.
Signatures
Some receipts carry signatures.
Next exhibit
A neighbouring exhibit's poster.
Other exhibits' cards
Cards and codes from other exhibits on the same wall.
Exhibit card
The show's card for receipt loom, with a code. It names both makers.
Signatures
Some receipts carry signatures.
Next exhibit
A neighbouring exhibit's poster.
Other exhibits' cards
Cards and codes from other exhibits on the same wall.
Receipts printed during qr show, hung on the wall in columns.
To have the opportunity to share the project with a large amount of people who mostly enjoyed it, that was really cool … a year ago, I didn’t know ~anyone I could have shared this work with. edited
qr show retrospectiveqrshow.nyc
Sydney
We also brought the receipt loom to Sydney, Australia.
Slow loom
also, wow
I just realized
that the process of using the receipt loom with slow local models is actually nice edited
given that while waiting, you can do some variation of:
- physically handle existing outputs
- decide what you're going to scan next
- adjust parameters
- scan another node to queue a run
- repeat

A long run
One lineage printed as a single scroll.
Receipt queue
Assorted runs to be read.
Scanner
A long run
One lineage printed as a single scroll.
Receipt queue
Assorted runs to be read.
Scanner






























