Pixel Avatar Maker

Compose original CC0 character parts and export exact-pixel PNG, GIF and a share card on your device.

Nerulio Pixel Avatar Maker combines original CC0 face, hair, eye, outfit and accessory parts on a 16 × 16 logical grid. Choose each part or randomize unlocked categories, then save a transparent PNG, an eight-frame blink or breath GIF or a 1200 × 630 share card. Every PNG size is a whole-number enlargement of that grid: 32 px is 2×, 48 px is 3×, 64 px is 4× and 4096 px is 256×. The export is generated locally. A settings link reproduces the built-in parts, but cannot carry an optional local background image or a unique social preview.

Drop image files hereProcess many files at once
No upload · processed on this device

A tiny grid with deliberate silhouettes

The 16 × 16 source is a constraint, so the round and angular jaws, open and sleepy eyes, two hair outlines and two outfits were checked as separate parts at 32, 48 and 64 pixels before the tool was built. Output sizes are integer multiples of 16. Enlarging one source pixel into a square block preserves the authored palette and does not invent blended edge colors.

Hair and outfit colors use authored four-shade ramps. A color choice changes the entire ramp, including shadow and highlight, rather than rotating every RGB channel. Random uses a recorded seed and can leave locked categories intact. Undo returns to the preceding selection; a settings link stores part identifiers, palette choices and export settings, not raster bytes.

A user-supplied background stays in the browser. It is cropped to a square and reduced to the same 16 px grid before being placed behind the character. The background may have its own copyright; the CC0 grant applies to the original character parts, not to images added by a user.

Logical pixel
One cell of the authored 16 × 16 source image.
Integer enlargement
Each logical pixel becomes a 2 × 2, 3 × 3 or larger block without fractional interpolation.
CC0
A public-domain dedication for the original parts, to the extent of the author’s rights.

One avatar at four output sizes

The approved original study is in docs/avatar-prototype/output. Four variants were independently reopened with Pillow and compared pixel-for-pixel with the browser renderer’s 16 px image.

16 × 16 logical source = 256 cells
32 × 32 PNG = each cell copied 2 × 2
48 × 48 PNG = each cell copied 3 × 3
64 × 64 PNG = each cell copied 4 × 4
4096 × 4096 PNG = each cell copied 256 × 256

The 48 px choice is deliberately a 3× enlargement of 16 px, not a blurred reduction of a 64 px preview. The browser GIF uses the exact colors in the logical frames and an eight-frame blink or breath; its 256 px sample reopened as eight frames with 130 ms GIF delays and an infinite loop. GIF timing is in hundredths of a second.

Files you get

FileWhat it is for
avatar-size.pngA square RGBA PNG at the chosen integer size, with a transparent or chosen background.
avatar-size.gifEight-frame blink or breath GIF at up to 1024 px. GIF transparency is one bit, and a local photo background is reduced to 16 px first.
avatar-card.pngA 1200 × 630 PNG card saved locally for manual attachment to a post. It does not become the social preview of the settings link.

Use it in the engine

  1. Choose a face, hair, eyes and outfit. Use Random for a starting point, then lock a part you want to keep.
  2. Select a PNG size for a game profile or sprite reference. Prefer 32, 48 or 64 px when the destination displays small avatars.
  3. Download the PNG and reopen it in the destination application. For a social image, save the card and attach the file manually; X and LINE buttons share only the settings link.

Check the result

  • At 32 px, confirm that the hair silhouette, eyes and jaw are still distinct. If an icon is displayed smaller than 32 px by another site, inspect that site’s result.
  • Open the PNG in another viewer and check its dimensions and alpha channel. A checkerboard in this page is a preview, not a baked background.
  • Reload a copied settings URL: the built-in parts and colors should return. A local background should be absent, because the URL never contains local image bytes.
  • Open the GIF in a frame-aware viewer and check eight frames, selected motion change, loop and transparent corner.

Troubleshooting

SymptomLikely causeHow to checkFix
The avatar looks blurry after uploadThe destination site smooths or downsizes the PNGCompare the downloaded PNG at 100% with the site’s displayed thumbnailUse a size matching the destination, or choose nearest-neighbor display if that site allows it
My uploaded background vanished from a shared linkA local image is intentionally excluded from the URLReload the link and look for the local-background labelDownload a PNG or card and attach that file to the post
The social preview is genericStatic pages do not generate a new Open Graph image for each settings queryCompare the link preview with the downloaded cardAttach the card manually; the link still restores built-in settings
GIF colors or motion differ from a videoGIF is an indexed format and this tool offers a selected eight-frame blink or one-pixel shoulder breathInspect frames and frame delays in a GIF viewerUse PNG for a still image or export the GIF at a smaller integer size

Other ways to do it

OptionWhen it is the better choice
Pixel Art EditorDraw every pixel yourself when you need a shape outside the authored part catalog.
Sprite LabCut and animate a full game sprite sheet when you already have character frames.

What this page does not cover

  • The current catalog has two face, hair, eye and outfit families plus simple accessories. It does not synthesize new art with AI.
  • A static settings URL cannot produce a unique Open Graph image without an approved server-side renderer. X and LINE share the link; Kakao rich sharing needs an owner app key and registered domain.
  • The original parts are CC0 and may be used commercially, but a user-added background may have separate rights. CC0 does not give exclusive ownership or trademark clearance.
  • A browser or phone may run out of memory on 4096 px output. Use a smaller integer size if an export fails.

Versions and sources

Part catalog v1, 16 × 16 logical grid. Browser PNG/GIF outputs and the original art oracle were checked on 2026-09-28. The platform sharing behavior is explained separately in the tool design document.

Official documentation used

Pixel Avatar Maker

Compose original CC0 character parts and export exact-pixel PNG, GIF and a share card on your device.

How it works

  1. Choose original parts
  2. Adjust hair and outfit colors, or randomize with locks
  3. Export exact-pixel PNG, blink GIF or a local share card

Supported formats

No file required; optional local PNG / JPG / WebP background → 32–4096 px PNG, 32–1024 px GIF, or 1200 × 630 PNG card.

What this tool does

A 16 px original CC0 catalog is rendered on a whole-number pixel grid. The optional local background is reduced to that grid and never enters a settings link.

Implementation and verified quality

advanced · 16 px original CC0 part grid / nearest-integer OffscreenCanvas PNG / exact indexed GIF worker. Quality qualification is in progress. Pro/Flagship quality has not been established.

Before you export

X and LINE controls share a settings link with a generic site preview; they do not attach the generated image. A custom per-avatar Open Graph card is not available on this static site.

Frequently asked questions

Can I sell an avatar made here?

Yes. The original part shapes are CC0 and may be used commercially. You must clear rights for any background image you add.

Are my files uploaded?

This tool processes the files you open on your device without uploading them. Images you explicitly attach to community posts are uploaded separately. Optional engines and models are downloaded from third parties; those requests expose connection information such as your IP address.

Will my work be saved automatically?

No. Images and editing state stay in this tab; media output can use local temporary storage. Changing language preserves your work; reloading, closing the tab, or following a link to another page can clear it.