From b848956a7ffa4d8b59e6a20d6210fd2af87b32f0 Mon Sep 17 00:00:00 2001
From: Maxim Averyanov 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.MThread Draw
Everything below is in the released build, and every claim on this page was +measured rather than estimated.
+ +The screen, live, in its own shape, with the drawing lying over exactly where + it will land. About three frames a second: the phone scales and compresses each + one, so the cable carries 27 kB instead of a sixteen-megabyte framebuffer.
+Drag it over the live view, wheel to resize, Shift and wheel to turn, and + flip it either way. Held in fractions of the screen, so it survives the phone + being turned and means the same thing on a different device.
+Several pictures arranged against each other before anything is drawn, each + with its own position and its own tracer settings. Hide one, reorder them, + remove one.
+Drag across the strokes you do not want and they come out. Which ones count + as under the cursor is decided after placement, because the cursor is over a + picture of the phone rather than over a coordinate space.
+Record what you do on the phone and play it back, on that phone or another + one. The file holds each touch as a fraction of the screen, so replaying it + elsewhere scales it to that screen rather than refusing.
+mthread shape heart, mthread shape star --points 7,
+ mthread text "hello". Seven shapes from equations, and text in any
+ font the machine has.
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 diff --git a/tools/make_play.py b/tools/make_play.py index 557a51b..87c5eb9 100644 --- a/tools/make_play.py +++ b/tools/make_play.py @@ -126,6 +126,11 @@ def trace_all() -> dict: h2 { font-size: 26px; margin: 54px 0 6px; letter-spacing: -.01em; } .sub { color: var(--dim); margin: 0 0 20px; max-width: 70ch; } +.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; } +.tile { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; } +.tile h3 { margin: 0 0 8px; font-size: 17px; letter-spacing: -.01em; } +.tile p { margin: 0; color: var(--dim); font-size: 14.5px; } + .picker { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; } .pick { padding: 7px 14px; border-radius: 8px; border: 1px solid var(--line); @@ -164,8 +169,9 @@ def trace_all() -> dict:
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.
+ Android phone, over ADB, with nothing installed on the device. You watch the + phone's screen while you place the drawing on it, and a drawing of five hundred + points lands in about a second and a half.Everything below is in the released build, and every claim on this page was +measured rather than estimated.
+ +The screen, live, in its own shape, with the drawing lying over exactly where + it will land. About three frames a second: the phone scales and compresses each + one, so the cable carries 27 kB instead of a sixteen-megabyte framebuffer.
+Drag it over the live view, wheel to resize, Shift and wheel to turn, and + flip it either way. Held in fractions of the screen, so it survives the phone + being turned and means the same thing on a different device.
+Several pictures arranged against each other before anything is drawn, each + with its own position and its own tracer settings. Hide one, reorder them, + remove one.
+Drag across the strokes you do not want and they come out. Which ones count + as under the cursor is decided after placement, because the cursor is over a + picture of the phone rather than over a coordinate space.
+Record what you do on the phone and play it back, on that phone or another + one. The file holds each touch as a fraction of the screen, so replaying it + elsewhere scales it to that screen rather than refusing.
+mthread shape heart, mthread shape star --points 7,
+ mthread text "hello". Seven shapes from equations, and text in any
+ font the machine has.
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