A handwritten-formula recognition workstation that runs entirely in your browser. Sketch a math expression or upload an image, and a local vision-language model transcribes it to LaTeX. There is no server round-trip, and no formula image leaves your machine.
Inkwell is built on WebGPU and ONNX Runtime Web, so the inference pipeline runs locally against LiquidAI LFM2.5-VL, FastVLM, and Gemma 4 models.
Live demo: https://ink.aungzm.com/
pnpm install
pnpm dev
Then open the dev server URL printed in the terminal.
Use a Chromium-based browser (Chrome, Edge, Brave, Arc, Opera). WebGPU is enabled by default in Chromium since v113 and the ONNX Runtime Web pipeline is well exercised there.
dom.webgpu.enabled and considered experimental. Inkwell may load the runtime but fail during inference.The first time you pick a model, the browser downloads its ONNX weights from the HuggingFace CDN. Compact models are roughly 400–600 MB, depending on quantisation. The LFM2.5-VL 1.6B ONNX repository is much larger, so expect a longer first load and more browser cache use. Once cached by the browser, subsequent loads are much faster.
Other scripts:
pnpm build # type-check + production build
pnpm preview # preview the production build
pnpm test # run vitest
Model adapters live in src/vlm/ and implement a common VLMAdapter interface, so additional models can be slotted in.
Have an idea? Open an issue at https://github.com/aungzm/inkwell/issues.
MIT
56 commits
1 commits
TypeScript
86.2%
CSS
12.9%
A handwritten-formula recognition workstation that runs entirely in your browser. Sketch a math expression or upload an image, and a local vision-language model transcribes it to LaTeX. There is no server round-trip, and no formula image leaves your machine.
Inkwell is built on WebGPU and ONNX Runtime Web, so the inference pipeline runs locally against LiquidAI LFM2.5-VL, FastVLM, and Gemma 4 models.
Live demo: https://ink.aungzm.com/
pnpm install
pnpm dev
Then open the dev server URL printed in the terminal.
Use a Chromium-based browser (Chrome, Edge, Brave, Arc, Opera). WebGPU is enabled by default in Chromium since v113 and the ONNX Runtime Web pipeline is well exercised there.
dom.webgpu.enabled and considered experimental. Inkwell may load the runtime but fail during inference.The first time you pick a model, the browser downloads its ONNX weights from the HuggingFace CDN. Compact models are roughly 400–600 MB, depending on quantisation. The LFM2.5-VL 1.6B ONNX repository is much larger, so expect a longer first load and more browser cache use. Once cached by the browser, subsequent loads are much faster.
Other scripts:
pnpm build # type-check + production build
pnpm preview # preview the production build
pnpm test # run vitest
Model adapters live in src/vlm/ and implement a common VLMAdapter interface, so additional models can be slotted in.
Have an idea? Open an issue at https://github.com/aungzm/inkwell/issues.
MIT
56 commits
1 commits
TypeScript
86.2%
CSS
12.9%