It turns an ordinary photograph into touch strokes and draws it on an Android phone, over ADB, with nothing installed on the device. A drawing of five hundred points lands in about two seconds.
These are the actual strokes the program sends to a phone, in the order it sends them. Drag along the grey lines and try to cover them. The clock starts when you do.
Drag on the drawing to start.
Every touch on Android normally costs a process. Sending a thousand of them that way takes minutes, which is why anything continuous - a gesture, a line, a signature - is unusable through the obvious route.
| Route | Per point | 1,500 points |
|---|---|---|
adb shell input | ~110 ms | 2 min 45 s |
raw /dev/input | microseconds | refused by any recent Pixel |
| on-device injector | microseconds | about 4.5 s, and the pacing is ours |
The last row is the one that matters: when the time between points belongs to us, a drawing can arrive instantly or it can arrive the way a hand would have made it, tremor and overshoot included.
| Windows | An installer, or a folder you unzip. Nothing else to install: Python, OpenCV and adb all travel inside it. |
| macOS | A disk image, for Apple Silicon and Intel. |
| Linux | From source, three commands. |