TFBInk
Live snap · hold to commit
Draw a line, an arc, an L, a box.As your gesture settles, a dashed preview of its ideal appears and the ink firms toward it — corners and closed shapes too, each built from your own edges. Hold still to commit. Turn freely or scribble and it stays out of the way.
you lent / committed — brighter & grained
ceiling β=0.85 · peak lent 0.00 machine's hand: 0% now · 0% max (of the β it's allowed) input: —
Coupling κ — the line's impedancehalf weight
Recognition — how readily a shape is offeredbalanced · needs 0.55
Now the instrument shows its own hand. A line, arc, L, box, or closed shape still firms from your own edges as your gesture settles, and a hold still commits. What's new is honesty about influence. It surfaces the debt. The “machine's hand” readout shows, live, how far the rendered ink sits from your actual fingertip — as a percentage of the budget it's allowed. It yields instead of clamps. That budget is β × the larger of how far you just moved and how far your hand is from your own ideal — both quantities that are yours. If the lend would carry the line past that, it doesn't silently cap the math; it returns authority toward you and the color falls back toward gold so you can see it happen. So the ceiling isn't a per-step bend you're asked to trust — it's a bound on the rendered position you can watch it honor. Consent leaves a receipt. A full snap fires only on a deliberate hold, and it prints what it did: how long you held, at what confidence, and how far it moved your line — with undo to revoke. Unbiased fits. Recognition now runs on your path resampled to even spacing along its length, so a slow patch or a pause-and-jitter can't pull the result toward wherever your hand lingered, and the circle now uses a Taubin fit, which stays accurate on the short, shaky arcs you actually draw — where the older algebraic fit lets the radius drift. A straight fit also has to be one-directional now: scrubbing back and forth along an axis no longer passes as a line — it reads as the hairpin it actually is, or as nothing. And now a curve. When a gesture is neither straight, circular, nor a polygon, it firms toward a clean smooth version of itself instead of being forced to the nearest wrong shape — but only as a genuine fallback: a line, arc, or real polygon always wins, and a "polygon" is overridden as a curve only when its turning is spread out rather than spiked at corners. The honest boundary: a very sharp wave can still read as a polyline, since at some point a peak just is a corner. One dial, not a hidden number. The confidence a shape must reach before it's offered is no longer a buried constant — it's the Recognition slider, shown to you as the actual threshold and driving both the appear point and its enter/exit hysteresis together; other tuning constants remain, but this lifts out the one that most changes how the instrument feels. Cheap on long strokes. Recognition no longer re-scans your whole path every tick — it runs on a small fixed-size buffer that folds in each new point once and halves its own resolution when full, so a marathon scribble costs the same per frame as a short one. (Drawing the ink is still proportional to its length; that part is unavoidable.) The lend is legible without color. How much the instrument lent your line is no longer told in hue alone: lent ink also brightens (a luminance cue every reader perceives) and carries a faint grain, while your unaided hand stays smooth and dim — so the confession of influence reaches you whether or not you can tell gold from teal, and the running "machine's hand" readout states it in plain numbers besides. The file keeps the record, not just the picture. A PNG flattens everything into pixels; the new exports tell the truth. JSON saves your raw hand path, the rendered result, and the per-point lend together — and reloads, so what the instrument did stays auditable later instead of being baked away. SVG writes the recognized shapes as real geometry: a committed line is a line, a full circle is a circle, a polygon is your polygon — vector truth, not a raster blur — with the same brighter-and-grained cue carried across. The work has a place; the screen is just a window. Your marks live in their own coordinate space now, not in screen pixels — so resizing the window no longer drags your drawing around, and you can pan (the move toggle) and zoom (buttons, or scroll) to work at any scale; the marks keep their identity while only the lens moves. SVG export frames the whole drawing, not whatever happened to be on screen. Built for the pen. Apple Pencil, Wacom display pens, and Wacom tablets all drive it directly: high-frequency strokes are captured through coalesced samples so fast lines stay smooth, pressure sets the stroke weight, and tilt broadens it like a pencil's edge. A resting palm won't draw — once a pen is in use, stray touches are ignored, and only one pointer draws at a time. The readout up top names the device and what it detects. Verified vs. not. The covenant arithmetic (rendered point stays within β × budget of your hand; firming only ever closes ≤ β of your own deviation) and the receipt's “moved %” are checked numerically; whether the recognition fires at the right moment, and whether the yield feels like authority coming back, are yours to judge with the line in your hand.