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:
- Devanagari and Bengali. The shirorekha — the headline bar — is detected across the whole word and drawn last, in one continuous left-to-right sweep, after the letters beneath it are finished. That single detail is what makes the animation read as handwriting rather than as a wipe. Matras follow their base consonant, and conjuncts stay in one piece.
- Arabic. The whole word is shaped and traced as one unit, because Arabic is cursive and letters change form depending on their neighbours. Tracing letter by letter would capture the isolated form of each one and produce a row of disconnected shapes. The pen travels right to left, and the dots go on after the body of the word, the way the script is really written.
-
The seven Latin languages. Diacritics behave the way a hand writes them — the dot on an
i, the German umlaut, the ring on å, the slash through ø and the French
cedilla all appear after the letter they belong to. Every bundled font is measured for
latin-extcoverage before it is offered, so Straße, Rødgrød, Kärlek and Français never fall back to tofu.
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.