Pencil draws, fingers pan
Scroll is restricted to finger touches so a Pencil cannot pan the page. Two-finger tap undoes; three-finger tap redoes. Scribble over ink to erase it — gated so handwriting is never mistaken for a delete.
iPad · Apple Pencil · study notes
A notebook built on its own ink engine. There is no PencilKit in the project — strokes are captured from raw touches, stored as versioned JSON paths, and redrawn as vectors so writing stays sharp when you zoom. Scans become editable ink, not filtered photos.
Uniform round nib, centered smoothing on committed strokes, causal filtering for the live preview, and a tiled layer that re-rasterizes vectors at every zoom level. The live stroke raises its layer resolution while you draw zoomed in. Pen, pencil, and highlighter each keep their own opacity and blend behavior. The vector eraser’s hit radius stays constant on screen as you zoom.
Scroll is restricted to finger touches so a Pencil cannot pan the page. Two-finger tap undoes; three-finger tap redoes. Scribble over ink to erase it — gated so handwriting is never mistaken for a delete.
Strokes score against line, arrow, rectangle, ellipse, triangle, and diamond. Hold about a second and the best fit wins; lift normally and the ink stays exactly as drawn.
Orientation, threshold, and printed-ruling removal are derived from the page. Thin marks get centrelines; filled marks get outlines. Both become ordinary ink strokes — erasable, undoable, exportable as SVG.
Plus draggable shapes, stickers, text boxes, and graph cards, with a persistent sticker library for diagrams you reuse across notebooks.
| Platform | iPadOS 17.0+ · intentionally iPad-only |
|---|---|
| UI | SwiftUI · Dark Studio / Light Paper themes · indigo accent default |
| Ink | Custom engine from raw UITouch · JSON vector paths · tiled Core Graphics |
| Scan | VisionKit document camera · Vision OCR · contour + skeleton tracers |
| Storage | SwiftData · CloudKit-ready container iCloud.com.seanwirkus.lattice |
| Export | SVG — stroked centrelines and even-odd filled outlines |
| Bundle | com.seanwirkus.lattice |