Tetrat
Software for the Horus pen plotter that runs right in the browser. Nothing to install: the plotter connects over USB to Chrome, Edge or Yandex Browser.

The brief
Horus is an affordable plotter that writes with an ordinary pen. The software that ships with it is awkward, and after a video of the plotter went out, people started asking where to get something better. The job was a whole product: a website, accounts, a free trial, payments and a studio you can use without reading a manual.
The studio
On the left, text with simple markup: a heading, a date, a list item, a formula in $…$, a function graph. On the right, a squared sheet that shows how the handwriting will lie and how long printing will take. The Python handwriting engine runs in the browser through Pyodide in a separate thread, so the interface never freezes.
A plotter from the browser
The plotter connects through Web Serial. The GRBL driver streams G-code and makes sure the controller’s 128-byte buffer always has room, and polls its state every 110 ms. The studio finds the corner of the sheet against the stops, checks pen contact, draws a frame, pauses, stops and resumes from any word.
The service
A Node.js server with no third-party dependencies: sign-up, sessions, a three-day trial, monthly and yearly plans, payments through YooKassa. The server re-checks every payment itself and blocks repeated trials and disposable email addresses.
How the browser drives the plotter
A tape of G-code feeds a 128-byte hopper: the next line goes only when the controller has made room. A ratchet asks for the state every 110 ms while the pen writes the word stroke by stroke.
Screens
Under the hood
- Web Serial: the plotter works from Chrome, Edge and Yandex Browser with no drivers or apps.
- Pyodide 0.27 in a Web Worker: the Python handwriting engine runs in the browser, not on a server.
- A G-code stream that counts bytes against the GRBL buffer and polls state every 110 ms.
- Firmware is checked with $I and $$, and speed limits are taken from the board’s own settings.
- Node.js with no dependencies: http, node:sqlite and scrypt; YooKassa payments verified on the server.
React · TypeScript · Vite · Web Serial · Pyodide · Node.js · SQLite