The Wikimedia Commons Stroke Order Project

If you’ve checked out many online Chinese dictionaries or websites on learning Chinese, you’ve seen a variety of ways to present characters’ proper stroke order. Animated GIFs are a favorite, but they often fall flat in one important respect: they display each stroke in a single frame, often leaving the direction of the stroke somewhat unclear.

This is where the Wikimedia Commons Stroke Order Project impresses me: not only are the animated GIFs large and attractive, but they fluidly demonstrate the direction of each stroke. A nice example:

More info from the site:

> Hello, and welcome to the Commons Stroke Order Project. This project aims to create a complete set of high quality and free illustrations to clearly show the stroke order of East Asian characters (hanzi, kanji, kana, hantu, and hanja). The project was started as there was none like it in terms of quality and it seems that it is the only one working on all three schools of Han character stroke order; simplified and traditional Chinese, and Japanese.

> You are free to use the graphics we’ve made and welcomed to join us and contribute to our progress. It’s easy, you just have to follow the simple steps stated in our graphics guidelines.

At 378 total characters, the project is still far from a complete set, but it’s off to a nice start!

I do, wonder, though, what kind of stroke order information is freely available out there that could speed the process along. I’ve seen enough separate sets of animated characters to make me suspect many have been automatically generated. (Anyone have info on this?) I’m also curious how the project is going to deal with the annoying issue of variable stroke orders.

Note that there is also an Ancient Chinese Characters sister project.


John Pasden

John is a Shanghai-based linguist and entrepreneur, founder of AllSet Learning.


  1. pleco uses a similiar, or the same, system with lots of extras. it’s great.

  2. Yeah, but Pleco is not open. This project is free and open.

    Seems a little silly that every single Chinese-teaching organization has to redo stroke order animations for thousands of characters. The same work is being repeated again and again…

  3. I have a PDF copy of the official standard (for simplified characters) from 1997, called “现代汉语通用字笔顺规范”. But it’s just a scanned version, unfortunately, and a pain in the neck to search manually because it’s actually indexed by the stroke order instead of by pinyin or radical!

    The stroke order is encoded as a sequence of numbers, and even if the material was digitized I think it would be very difficult to algorithmically generate an animation from the number sequence.

  4. By the way, I see the project has a page listing the sources they use.

    Actually, I think the uses of this project are rather limited. Unlike the Ancient Chinese Characters project, which uses rescalable vector graphics, the stroke order images are all bitmaps. These aren’t very suitable for either resizing or for professional printing. As for changing style or colour, forget it! I’d be a lot more impressed if the stroke order was represented digitally somehow, and the images generated automatically from that data.

    I wonder, in fact, if has built exactly such a database?

  5. Indeed, the Skritter database is flexible enough. With some work, we could generate images almost as pretty as the one posted. We haven’t associated segmented direction information with each stroke yet, but we’ll do that soon.

    It would be a bit more work to set it up to generate animations that could be shared and embedded, but definitely worth doing. I’m thinking it could work a couple ways. We could provide a few different sizes or requested style combos for all the characters we have (about 4100 now). You could then embed them from永&size=250&speed=fast, something like that.

    Or, we could make a little Flash window that you could embed that could load the strokes dynamically from our server, do the animations really snazzily, and have more options, a preloader, animation controls, etc. You would pass the params you want into the thing with flashvars. We might even be able to hook something up with the alternative stroke orders.

    It wouldn’t be a small task to make and share these, though (although much smaller than doing it the Wikimedia way). So if we are going to provided them for free, it’ll have to wait until later. We might also need some attribution or to put a little Skritter in the .gifs or something, too.

    Would people actually want to use the Flash embed, or just the .gifs?

    By the way, many of the stroke order animations currently used in these sites are based on the EuroAsiaSoftware standard, where you generate the animations by cutting up the character in the order you want. There’s a post with a bit of discussion by the creator here:

  6. Nick,

    That’s pretty cool! Thanks for sharing that.

    So what’s Skritter’s stance on variable stroke orders? 🙂

  7. We support a lot of variable stroke order, and we get plenty of corrections from users when their desired stroke order isn’t there. But some of our supported stroke orders aren’t “correct” by any standard–they’re just common ways that people write. The system isn’t quite flexible enough to do some of the variations, yet.

  8. I like that the animations show the direction of a stroke. The only problem is that stroke order rules are kind of loose. Is the 3rd stroke of 馬 vertical or horizontal? For most Japanese people, the answer is vertical, while most Chinese (who still use fanti) would write the horizontal stroke first. Furthermore, there are some characters for which the stroke order suggested in current elementary school books differs from the stroke order 30 somethings here use.

    I think I know three different “correct” ways of writing 龜, all of which were promoted by the ROC ministry of education at one point or another. Similarly, I’ve seen some American pre-school books advocate a one-stroke 5, while others advocate a two-stroke 5. Ditto for the capital “G”.

    The idea of “correct” stroke order isn’t much more concrete than a “correct” accent. There are a range of options that looks natural, a range that are awkward and a range that look wrong. Mandating that every font and style of handwriting use the same stroke order would be a bit like trying to force the entire English-speaking world to use RP.

  9. Speaking of which, I just realized that the wiki page fails to list the commonly used Japanese stroke order of 馬:

    The Yamasa kanji dictionary’s entry for 馬:

  10. Awesome find and resource, John. I loaded up all the characters and was mesmerized by all the strokes, what a great way to learn stroke order!

  11. has a pretty amazing character dictionary, showing the definition, pronunciation in mandarin, canto, japanese, korean, and vietnamese, an etymology section, common words using the character…. oh, and of course also stroke count/order. if you don’t know how to write the character, there’s also even a handwriting recognizer… overall an extremely useful site!

  12. Hi Andrew

    Many thanks for the link. This is the first time I’ve seen an online character dictionary that shows pronunciations in Vietnamese!

  13. John, I hadn’t seen your like to the variable stroke order post. That was exactly the kind of thing I was thinking.

    The great thing about this being an open project is that I’m sure the lacking characters, such as the Japanese version of 馬, I pointed out above will get filled in by somebody. I’m tempted to contribute some 繁體字 myself.

  14. […] recent post on the Wikimedia Commons Stroke Order Project prompted Mark of to decry the relative […]

  15. The authors of the open source program Dragon Character Training developed a freely available stroke order database, which you can find in their Sourceforge repository. I think they developed a Java program for volunteers to trace over a TrueType font and thus generate a series of Bezier curves for the stroke order.

Leave a Reply