A model that runs on the reader’s machine
In 2020 I ran recognition models inside a browser, for a reason that had nothing to do with performance. An openly dated retrospective: the technique has been replaced, the argument has not.
This piece needs dating before it is read. In November 2020, running a neural network inside a browser was a demonstration: the available models recognised a face, a hand, a pose, and you converted a model trained elsewhere into a format the page could load. Almost everything that follows has since been replaced. One thing has not moved, and it is why I am rewriting these notes.
A model that runs on the reader’s machine transmits nothing. No image goes to a server, so nothing is retained, nothing can leak, and there is no processing agreement to negotiate. Against a hosted approach the gap is not measured in milliseconds: it is measured in obligations you do not have. In 2020 that was a technical curiosity; given what has happened since around personal data, it has become a design argument.
The price was the model: small, therefore mediocre, and downloaded on every visit. You arbitrated between a usable model and a page that loads, and the arbitration nearly always ended the same way. That is where the comparison with today is cruellest and most instructive: the shift of these five years did not come from better execution in the browser, it came from far larger models executed far further away.
The lists I kept then (example repositories, models published by companies, assisted training tools) did not survive. Whole families vanished, others were absorbed. I am not copying them across: republishing a 2020 directory in 2026 would be the one real mistake this piece could make.
I am not claiming local execution has become the right answer again. For most current uses the model is too large for the reader’s machine, and arguing otherwise would be nostalgia. The question worth keeping is the one from 2020: does this computation need to leave the device, and if so, what is obtained in exchange for what is handed over.