image

Pixel Animation Studio

Draw small pixel-art animations frame by frame, preview the motion, and export PNG, animated GIF, or sprite sheets.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Pixel Animation Studio is a browser editor for drawing small pixel-art animations frame by frame. Work on canvases from 16×16 through 128×128, duplicate or reorder frames, and build motion one pose at a time.

PNG import, onion skinning, frame timing, preview, and PNG / animated GIF / sprite-sheet export all run locally. Save an editable project file to continue on another device, or use local autosave when IndexedDB is available.

Good for

  • Draw small game-character animations frame by frame
  • Export pixel art as an animated GIF for the web or social sharing
  • Create short looping walk, idle, blink, or effect animations
  • Export multiple frames as one sprite-sheet PNG for a game workflow
  • Import same-size PNG images and use them as animation frames
  • Edit small pixel animations with touch on a phone or tablet

What it can do

Key capabilities available in this tool.

How to use

  1. Choose a 16×16, 32×32, 64×64, 128×128, or custom canvas, or start a new project from PNG files.
  2. Draw the first frame with Pencil, Eraser, Fill, and Eyedropper, using Grid, Zoom, Fit, or Pan when helpful.
  3. Add or duplicate frames and adjust the pose a little at a time. Enable Onion Skin to see the previous frame faintly.
  4. Set each frame delay from 20 to 5000 ms, or use Apply to all when every frame should share one delay.
  5. Use rectangle Selection when you need to move, copy, cut, paste, or nudge a pixel region.
  6. Preview the motion with Play / Pause / Restart / Loop and adjust frame timing as needed.
  7. Open Export and choose Current Frame PNG, Animated GIF, or Horizontal / Grid Sprite Sheet PNG.
  8. Confirm the filename and export settings, then save. To continue editing later, keep a file with Save project and restore it with Open project.

Supported

  • Canvas: 16×16, 32×32, 64×64, 128×128, or custom dimensions up to 128×128.
  • Frames: 1–128 frames with 20–5000 ms delay in 10 ms steps.
  • Drawing: Pencil, Eraser, Fill, Eyedropper, and rectangle Selection; Pencil / Eraser use 1 / 2 / 4 px brushes.
  • Import: PNG images and editable .pixel-project.json files. Start from one PNG or add multiple same-size PNGs as frames. Mismatched PNGs are not silently resized or cropped.
  • PNG export: save the current frame at 1× / 2× / 4× / 8× while preserving transparency with nearest-neighbor scaling.
  • GIF export: use all frames in order with individual delays, transparent background, infinite loop, and color reduction only when required by the 256-color GIF limit.
  • Sprite Sheet: place all frames in a horizontal row or a grid with a chosen column count and save as PNG.
  • Autosave: store project state in IndexedDB when available so work can be resumed after reloading.
  • Project files: up to 12 MiB, preserving all RGBA frames, dimensions, timing, colors, and editing settings. Keep them independently of local autosave.
  • Runtime networking: no external API, remote font, runtime CDN, analytics, or telemetry; CSP includes connect-src 'none'.

Limitations and notes

  • Canvas dimensions are limited to 128×128 and each project to 128 frames in v1.0.4.
  • Image import supports PNG only; GIF, WebP, JPEG, Aseprite, and sprite-sheet image import are not supported.
  • GIF output is limited to 256 colors and cannot preserve partial alpha; partially transparent pixels become transparent or opaque for GIF output.
  • Layers, lasso selection, palette files, animation tags, Animated WebP, and sprite metadata JSON are not supported.
  • Autosave depends on IndexedDB, so clearing browser site data can remove the locally saved project.
  • Undo / Redo history is not restored after a reload. Project files also omit undo history, selections, and clipboard contents; the view opens at Fit.
  • Large 128×128 projects with many frames can use more device memory, especially during GIF encoding.

Frequently asked questions

Can I save a pixel-art animation as GIF?

Yes. Animated GIF export uses every frame and its individual delay. GIF is limited to 256 colors and cannot preserve partial transparency.

Can it create a sprite sheet?

Yes. Export all frames as a PNG using either one horizontal row or a grid with a chosen number of columns.

Can I import existing PNG files as frames?

Yes. Start a project from one PNG or add multiple same-size PNGs as frames. Image import is PNG-only; open a .pixel-project.json file to resume an editable project.

Is the project autosaved?

When IndexedDB is available, project state is autosaved locally and can be resumed after a reload. Undo / Redo history itself is not restored.

Can I continue editing on another device?

Yes. Use Save project to keep a .pixel-project.json file, then Open project on another device. Files up to 12 MiB restore all frames, colors, timing, and editing settings, but not undo history, selections, or clipboard contents.

Is my pixel artwork uploaded to a server?

No. The hosted version downloads the app HTML initially, but PNG import, drawing, preview, autosave, and PNG / GIF / sprite-sheet generation run locally on the device.

Offline version and source code

The standalone HTML uses no external API, runtime CDN, or remote font and runs with connect-src 'none'. Open dist/index.html via file:// to draw, import PNGs, and generate GIFs or sprite sheets without network access.

View source on GitHub