Stop the wobble. Line up your sprite frames, check the whole animation, and take a clean, transparent set back to your game.
Files stay in your browserWhole-pixel movesFree · no account
01 / Bring your frames
A new import replaces the current frames. Static PNG only (8-bit channels, plus supported low-bit grayscale/palette PNGs; no 16-bit PNG or APNG). Up to 120 frames, 20 MiB per file, 128 MiB total. Each source ≤16 MP; total source pixels ≤40 MP. Individual frames must fit within 2048 × 2048.
No PNG files selected
02 / Set a common canvas
Preserve keeps each image’s original top-left position and transparent padding. Center modes explicitly move the visible bounds. Per-frame offsets are added afterward. Nothing is resized.
03 / Settle the animation
0 Frames
Your pixels go here
Checkerboard, onion skin and the pink baseline are guides only. Exports contain transparent pixels, never these guides.
Positive X moves right; positive Y moves down. Offsets are integers and apply only to the selected frame.
04 / Check every frame & export
Export stays locked until all frames pass the clipping and size checks.
Try the demo or import your own PNG frames to begin.
ZIP includes normalized PNG frames, spritesheet.png, a PixiJS-compatible spritesheet.json and manifest.json with source names, order, offsets and settings. Maximum sheet: 8192 px per side / 64 MP; archive limit: 200 MiB. PNG metadata and color profiles are not retained. No files are silently skipped.
Your images and filenames are processed locally in this browser. Nothing is uploaded or saved by this tool. Refreshing or changing language clears your work. Page-visit analytics receive no file contents or filenames.
A few pixels can make all the difference
Why does my walk cycle wobble?
Frames with different transparent padding, source sizes or character placement can jump when played on a shared canvas. Import the PNGs, keep the first frame as an onion-skin reference, and nudge each frame by whole pixels. Use the baseline to compare feet without adding a line to the export.
Can I repair an uneven sprite sheet?
This version slices regular grids only. Enter the exact rows, columns, outside margins and gaps. For a packed or irregular sheet, extract the individual PNG frames in your image editor first, then import the sequence here. No automatic character detection or AI repair is used. Low-bit interlaced PNGs must be re-saved as non-interlaced or 8-bit PNGs.
Should I choose Preserve or Bottom-center?
Preserve is the default and keeps intentional movement and original padding intact. Bottom-center aligns each frame’s visible pixel bounds to the bottom of the common canvas; it can help grounded poses, but may erase intentional jumps. Choose it explicitly and inspect playback before exporting. This changes pixel placement, not a game engine’s pivot setting.
Why is export blocked when the preview looks fine?
Preflight checks every frame, including ones you have not selected. Any nontransparent pixel outside the common canvas blocks export. Increase the canvas, reduce the offset or change placement, then check again. Fully transparent frames remain in the sequence and are reported, never removed.
What can I import into my game engine?
The ZIP contains one normalized transparent PNG per frame and a row-major PNG sheet. spritesheet.json uses PixiJS-compatible frame rectangles, untrimmed source sizes and an animation named default. manifest.json records the original names, positions and settings. FPS is included as metadata; set playback speed in your engine. This tool does not export GIFs or configure engine pivots.
How do I keep the right animation order?
Imports use natural filename order, so frame2.png comes before frame10.png. Select a frame and move it earlier or later to change the sequence. The strip, playback, PNG numbering, sheet cells and JSON animation all use the same order. Blank grid cells are kept as real frames.
Are files saved for next time?
No. This studio keeps the current session in memory only. Download the complete ZIP before refreshing, closing the tab or changing language. Project save/reopen is not included. The small robot demo is original artwork built into the tool.