Lulucat Blog is where we write down how the apps actually get built. Expect deep dives into the rendering engines behind our handwriting tools — stroke models, erasers, GPU pipelines — the measurement harnesses we build to trust them, and honest notes on working with AI coding agents: what they got right, what they broke, and what we kept. No fixed schedule; new posts appear when there's something real to show.
Dense handwriting made Lulucat Notes' chalk tool slow. The bottleneck was not 3,571 input samples; it was 70 full-screen scratch passes in every frame. A rejected low-resolution cache and a per-stroke scissor rectangle explain the rest.
We evaluated Turso/libSQL for our iPad handwriting app, measured everything, and chose flat snapshot files. This workload does not need a database — every step should pay only for problems that already exist.
We wanted Freeform's directional fountain pen in Lulucat Notes. The spec was a screenshot of handwriting. Two models, one discriminating question, and an ellipse nib later, the water pen writes the way it should. Kimi K3 carried out the research, code, and validation on Fireworks.
Our Core Graphics tile pipeline became a Metal point-sprite pipeline in six small steps, each verified on a real iPad. The code was pair-programmed with Kimi K3 on Fireworks.
An eraser stroke as a standalone element is the obvious design. Object movement breaks it, so in Lulucat Notes the erasure stays with the stroke it removes ink from.