What it does:
- Sprite editor with layers, selections, mirror drawing, and an infinite-canvas workspace (multiple boards on one desk)
- Frame-by-frame animation with onion skin, per-frame duration, GIF and spritesheet export
- Tileset builder that auto-generates Wang-16 and blob-47 terrain sets from a single base tile β exports Godot 4 TileSet, Tiled .tsx, or PNG+JSON β plus a tilemap painter to test terrains in the browser
- Isometric (2:1 dimetric) grid mode with an iso-line tool
- Image-to-pixel-art converter: median-cut quantization, live adjustments, and a "pixel cleaner" that removes orphan pixels
Some technical bits:
- The renderer is a hand-rolled 2D canvas β no engine, no WebGL. Pixel maps are plain objects keyed "x_y" with an incremental dirty-pixel buffer, so a brush stroke costs ~0.006ms/frame instead of rebuilding the whole map
- Guest-first storage: everything autosaves to localStorage, with the multi-board snapshot in IndexedDB to escape the ~5MB quota. An account is only needed for cloud sync and publishing to the gallery
- Favorite recent bug: fitting a workspace of 16 isometric boards took 12.4 seconds. The iso lattice was drawn as O(colsΓrows) individual diamonds β every shared edge stroked twice. Rewriting it as two families of parallel lines (O(rows+cols)) brought it down to 16ms
- No CSS framework at runtime; the design system is one hand-written CSS file
Honest caveat: the repo is the frontend only. The community gallery and auth run against a hosted API, but the editor itself β drawing, animation, tilesets, conversion, exports β is fully client-side and works without an account.
Would love feedback, especially from anyone making game assets: what's missing before this could replace your current tool for quick sprites?

Discussion (2 Comments)Read Original on HackerNews
The only small thing I might suggest adding is the ability to change the loop style from a regular loop to a ping-pong style loop.
https://github.com/aseprite/aseprite