underprint
A silent, local drawing language. Marks alter the rules that read other marks. Begin with a sheet of five marks. Help is available at any time.
keys / marks
Choose an ink, then draw or tap. On the sheet, arrows move a cursor; Enter writes. Tab reaches every mark. With stitch: select two marks. With seam: select one. With pair: select the two pattern marks, then their replacement. Escape cancels. Stop pauses editing.
Draw a mark. Or start with the ink already here.
stitch() joins two kinds. Try the first slash and the cup. The cup ends a phrase; now every slash does too. Empty phrases leave a tear.
seam() appoints any mark as punctuation. Punctuation also separates the places where a stitch is allowed.
pair() learns from three touches: two marks to match, then one mark to read them as. Their branches remain attached to the compound below.
Ink above. Reading below. The source stays while its reading changes. read() exposes the exact rules and the remembered target.
release opens a copy with only canonical tokens. It cannot recover the original ink by itself. Your full journal remains here; export it to keep a witness. Nothing is sent anywhere. Export before reloading to keep your work.
The notation, recovery claims, and fixed machinery