Kaomoji Maker

GenerativeTypographyUnicodeSingle file

A combinatorial generator for Japanese emoticons: mix parts by hand, randomize them in agreement or in open disagreement, and add your own.

Kaomoji are assembled, not drawn.

The Eyes section: a row of paired eyes, and below it separate left and right columns

( ˶ˆ ᗜ ˆ˵ )

Eyes, a mouth, something for the cheeks, arms, and whatever is going on around them. A kaomoji is assembled from parts, and this takes that literally: five categories, each a browsable set, each swappable without disturbing the rest.

Left and right are separate

The eyes are the whole idea in miniature. There is a row for picking both at once, and underneath it, two more rows — left and right, independent.

Symmetric eyes are what a kaomoji usually has. Asymmetric eyes are where the character comes from: one eye a spiral and the other a dot reads as an expression, not a mistake. Making the split explicit rather than automatic means it is a choice you make, not a dice roll you hope for. Arms and environment work the same way, with their own left and right rows.

The Arms and Environment sections, each with paired and split rows and a control for adding your own

Together or apart

Two ways to randomize, and the difference is the whole point.

The randomize buttons in use: each press replaces the kaomoji in the preview above them

Together picks parts that agree with each other — matched eyes, a mouth in the same register, arms that belong to the same gesture. You get something coherent, and coherent is usually a little boring.

Apart randomizes every feature independently. Left eye and right eye stop matching, the arms disagree, the head belongs to a different face. Most of the results are wrong. A few are far better than anything the coherent mode produces, and they are unreachable any other way.

Both buttons exist twice: once at the top for the whole face, and once inside every category. So you can hold a face still and let one feature thrash, which is how you actually find things.

Your own parts

Every category takes custom entries. Anything typed into the part creator joins the pool and is randomized alongside the built-in sets, so the generator drifts toward whatever you have been feeding it. Custom eyes, mouths, heads, arms and adornments each persist separately.

Keeping things

Favorites persist locally, a history strip keeps recent variations visible so you can walk back to one you scrolled past, and copying puts the kaomoji straight on the clipboard — the only export that matters for something you paste into a chat.

Built with

One HTML file, about four thousand lines, no dependencies and no build step. It is a text toy; it should not need a toolchain.

Ricky Yurewitch

Kaomoji Maker