← Back to the app

About

A free tool that turns typed text into a handwriting animation you can export as video — in English, German, French, Dutch, Swedish, Norwegian, Danish, Hindi, Bengali and Arabic. No account, no watermark, and nothing is uploaded.

What it is for

People use handwriting animation for reels and shorts, title cards, lesson intros, logo reveals, wedding and invitation graphics, and signature stings at the end of a video. The usual way to get one is to pay for a subscription app that exports with a watermark, or to film a real hand and spend an afternoon masking it. This does the same job in a browser tab, for nothing, and gives you a transparent file you can drop straight onto footage.

How it actually works

The interesting problem is that fonts do not contain handwriting. A font holds glyph outlines — closed shapes describing the edge of each letter — and animating an outline traces around the outside of the letter, which looks nothing like writing.

So the app computes the centreline of every letter at the moment you type it. Each grapheme cluster is drawn to an offscreen canvas, thinned down to a one-pixel skeleton, turned into a graph of strokes, cleaned of the hairs that thinning leaves behind, smoothed into curves, and put into a plausible writing order. That happens in a Web Worker so the interface never stutters, and the result is cached in em units — so changing the size, the colour, the paper or the speed never repeats the work.

The centreline is then used as a reveal mask over the real typeface, not as a brush to paint with. What appears on screen is genuinely the font you picked, with its true weight and contrast, uncovered in writing order. Painting a synthetic stroke along the centreline instead would always look like a marker — and it would throw away the shaping the browser just did for you.

Why that matters for Hindi, Bengali and Arabic

Because whole words are drawn with the browser's own text engine, every hard part of complex script rendering comes for free and comes out correct:

What it will not do, and why

Japanese, Chinese, Korean, Thai and Hebrew are not supported, and that is a decision rather than a gap. Stroke order in those scripts is formally taught and culturally strict. Deriving it from geometry does not produce an order that is slightly approximate — it produces one a native reader would call wrong. Doing it properly means a second engine built around a real stroke-order dataset, which is a different project. A half-working version would be worse than none, so the app detects those scripts and says so plainly.

For the same reason, this is not a handwriting teaching tool. The order it derives is convincing, not pedagogically exact, and it should not be used to teach anyone how to form letters.

Built to be private

There is no server here to send anything to. Layout, stroke extraction and video encoding all happen on your device, using the browser's text engine and WebCodecs. Your settings live in this browser's local storage and nowhere else. The privacy page explains how to verify that yourself in about thirty seconds.

Credits

Fonts are self-hosted and licensed under the SIL Open Font License 1.1. Video muxing uses mp4-muxer and ZIP packing uses fflate, both MIT-licensed and served from this site rather than a CDN.

Try it →