100% Free • No upload • No watermark

Free OnlineSprite Sheet Cutter
& Animation Previewer

Upload a sprite sheet, instantly auto-slice it by transparent, white, or black background, regroup frames into custom animations, and preview them live — all in your browser.

1

Upload Sprite Sheet

Drag & drop or click to browse — your image never leaves your device
Drop your sprite sheet here
PNG · WebP — transparent backgrounds work best
Auto-detect backgroundInstant slicingNo watermarks

Auto Background Detection

Smartly samples edge pixels to detect transparent, white, or black backgrounds — no manual setup required.

Instant Projection Slicing

A fast projection-based algorithm detects sprite bounds in milliseconds, even for large sheets.

Custom Frame Grouping

Split any column into multiple animations with simple counts like 6, 5, 3, 2 — perfect for mixed clips.

Live Preview Engine

Play animations at 1–30 FPS, swap instantly between them, and fine-tune timing in real time.

100% Private

Everything runs in your browser. Your sprites are never uploaded to any server — ever.

Multi-Engine Export

Export to Godot, Phaser, Cocos2d-x, Unity, PixiJS, Aseprite, or individual frames — all in one click.

Online Sprite Sheet Cutter — Slice, Group & Preview Animations

100% FreeNo WatermarkNo UploadNo Sign-upRuns in Browser

Cut a sprite sheet online in seconds. Drop in a PNG or WebP texture atlas and this free tool will detect every frame automatically — no matter whether the background is transparent, white, or black — then let you group those frames into walk, run, attack, idle and any other animation you need. Preview each clip live at 1–30 FPS, then export a clean atlas plus engine-ready metadata in one click. It runs fully in your browser, so your art never gets uploaded anywhere.

Slice sprite sheets automatically

Most sprite sheets pack frames in a loose grid with transparent, white or black padding between them. Doing this by hand in Photoshop or GIMP is tedious and easy to get wrong. This tool uses arow/column projection algorithm: it scans each column and row, counts non-background pixels, and snaps tight bounding boxes around every sprite. The result is accurate slicing on irregular layouts, uneven spacing, and sheets where one animation has 6 frames and another has 13 — all in milliseconds.

Group frames into animations you actually want

A sheet rarely matches your engine's animation list one-to-one. Maybe row 1 has 8 frames but yourwalkcycle is only the first 6 andrunis frames 7–13 across two rows. Type6, 7in the split box and the frames are instantly re-grouped and color-coded — no re-export, no Photoshop. Need four clips? Type6, 5, 3, 2. Animations can flow across rows, so a 12-frame attack can live on two rows of 6. Default grouping is one animation per detected row, but you have full control.

Preview AI-generated sprite frames (GPT Image 2, NanoBanana Pro, Midjourney)

AI image tools like OpenAI'sGPT Image 2, Google'sNanoBanana Pro,MidjourneyandStable Diffusioncan generate gorgeous character poses, but they come back as a flat grid that still needs cutting and timing before it's usable in a game. This tool closes that gap:

  • GPT Image 2 → animation:export your GPT Image 2 grid as a PNG, drop it in, and watch every pose cycle as a live preview.
  • NanoBanana Pro → animation:NanoBanana Pro often emits multiple actions per sheet. Carve them with6, 5, 3, 2, preview each clip, and export straight to your engine.
  • Midjourney / Stable Diffusion:stitch your generated frames into one sheet, drop it in, and auto-slice them into a playable clip.
  • Any AI sheet:transparent, white and black backgrounds are auto-detected, so SDXL, Leonardo AI and hand-drawn Aseprite exports all work the same way.

Tight atlas packing with the MaxRects algorithm (maxrects-packer)

When you export, Sprite Forge doesn't just dump frames into a uniform grid — it repacks them into thesmallest possible textureusing theindustry-standardmaxrects-packerlibrary, a modern MaxRects bin-packing implementation in the same family as the algorithms used by professional tools like TexturePacker and Unity Sprite Atlas. Here's why that matters:

  • Less wasted space:unlike a uniform grid where every cell is as big as your largest sprite, MaxRects nests each frame tightly against its neighbours, so a sheet full of mixed-size poses exports at a fraction of the pixel area.
  • Lower memory & bandwidth:smaller atlases mean smaller downloads, less VRAM, and faster load times on mobile and web.
  • MAX_EDGE sorting heuristic:before packing, the library sorts frames by their largest edge (max(width, height)) descending and places the biggest sprites first. This is thePACKING_LOGIC.MAX_EDGEmode and it's what keeps the free-rectangle list small and the result tight when sprite sizes vary a lot.
  • Smart bin compaction:the canvas is grown on demand — it starts at 0×0 and only expands as far as the content actually needs, instead of being fixed to a max size and leaving dead space. (Switch toMAX_AREAsorting for an area-first heuristic.)
  • Optional 90° rotation:tall sprites can be rotated 90° and slotted into narrow horizontal gaps, which on irregular AI-generated sheets typically saves another 8–15% of pixels. The rotation flag is correctly carried into Phaser, Cocos2d-x, PixiJS/TexturePacker and Aseprite metadata (Godot'sregioncan't express rotation, so rotation is automatically disabled for that export).
  • Safe 2px padding + outer border:every frame is separated by a 2-pixel guard band and the whole atlas has a matching outer border, to avoid bleeding from mipmaps or linear sampling — the same default TexturePacker uses.
  • Optional power-of-2 mode:for older GPUs that require NPOT-free textures, the final atlas is padded up to the next 64 / 128 / 256 / 512 / 1024 boundary.
  • Graceful fallback:if MaxRects ever fails to pack every frame (it won't, but just in case), the tool detects any leftover slots and falls back to a uniform grid for the whole sheet, so you always get a valid export.

In short, the exported PNG/WebP atlas + JSON/PLIST/TRES metadata is drop-in ready for Godot, Phaser, Cocos2d-x, Unity, PixiJS and Aseprite, with the same tight packing a paid texture packer would produce.

How Texture Packer creates sprite sheets — and a free alternative

If you've ever searched for a sprite-sheet tool, you've probably come acrossTexturePacker, the long-standing desktop app from CodeAndWeb. The way Texture Packer creates sprite sheets is simple in concept but powerful in practice: you feed it a folder of individual frames (or a pre-made grid), and it runs abin-packing algorithmto nest every frame into the smallest possible texture, then writes a sidecar data file (.json,.plist,.tpsheet…) that tells your game engine where each frame lives. That same workflow — frame detection → tight packing → engine metadata — is exactly what Sprite Forge does, but100% free, in your browser, with no install and no watermarks:

  • Same packing math:Sprite Forge uses themaxrects-packerlibrary, a modern MaxRects implementation comparable to the bin-packing core TexturePacker relies on, including the MAX_EDGE sort, smart compaction and 90° rotation.
  • Same output formats:export TexturePacker-style JSON Hash (great for PixiJS), Cocos2d-x.plist, Phaser 3 atlas JSON, plus Godot.tres, Unity.metaand Aseprite JSON.
  • No install, no license:TexturePacker's full feature set is paid and adds a watermark in the free tier. Sprite Forge is completely free with no watermark — ever.
  • Works on any OS:because it runs in the browser, you get the same TexturePacker-style workflow on Windows, macOS, Linux, ChromeOS and even iPad.
  • Private by design:your sprites are packed locally and never uploaded, which matters for client work and unreleased art.

So if you're looking for afree TexturePacker alternative— or just want to understand how texture packer creates sprite sheets under the hood — this tool gives you the same tight, engine-ready atlases without leaving your browser.

Export to every major game engine

Once your animations look right, export them in the format your engine expects. ChoosePNGfor lossless quality orWebPfor auto-compressed files, optionally pad the atlas topower-of-2(64 / 128 / 256 / 512…) for older GPUs, then pick a target:

  • Godot 4.x.tresSpriteFrames resource + atlas image, ready for AnimatedSprite2D.
  • Phaser 3— atlas JSON (Hash) with a built-in animation list.
  • Cocos2d-x.plistsprite sheet with frames and animation delays.
  • Unity.metaTextureImporter sprite metadata.
  • PixiJS / TexturePacker JSON— generic Hash format, widely compatible.
  • Aseprite JSON— frame data plus animation tags.
  • Individual frames ZIP— every frame as a separate PNG/WebP, sorted into folders.
  • Raw JSON— plain frame rects and animation groups for custom pipelines.

How to use it

  1. Uploada sprite sheet — drag & drop or click to browse. PNG keeps transparency, WebP is supported too.
  2. Auto-detectsamples the image border and picks transparent, white or black automatically, then slices every frame.
  3. Regroupby typing counts like6, 5, 3, 2in the split box. Each group gets its own color so you can see exactly which frames belong to which animation.
  4. Previewany animation by clicking its tab. Drag the speed slider to test timing from 1 to 30 FPS.
  5. Exportin your engine's format. PNG, WebP and power-of-2 are all selectable in one place.

Frequently asked questions

Is Sprite Forge really free?

Yes — no sign-up, no watermark, no limits, no "pro" tier. Everything runs in your browser.

Are my images uploaded?

No. The entire pipeline runs client-side, so your sprite sheets never leave your device.

Can I preview frames from GPT Image 2, NanoBanana Pro or Midjourney?

Yes. Drop the generated grid in, and it'll be sliced and grouped automatically so you can preview each animation live before exporting.

What if detection picks the wrong background?

The detector ranks transparent, white and black by border dominance and tries each until one yields sprites. If your sheet has noisy edges, re-export it with a clean background for best results.

Can an animation span multiple rows?

Yes. Frames are read as one continuous sequence (row by row, left to right), so a 12-frame clip can flow across two rows of 6.

Shrink your textures — free PNG / JPG to WebP compressor

Heavy sprite atlases slow down web games and bloat mobile downloads. Before exporting, run your source art through our sister tool, theFree Image Compressor, to convertPNG to WebPandJPG to WebPin bulk — typically25–70% smallerwith no visible quality loss and full transparency support. It's also 100% client-side, no upload, no watermark, and works as a generalimage optimizerfor websites, emails and social media.

  • PNG → WebP— keep transparency, drop up to 70% of the bytes.
  • JPG / JPEG → WebP— 30–50% smaller photos at the same visual quality.
  • Batch + resize— compress dozens of images and downscale them in one click.
  • Lossless PNG output— when you need mathematically identical pixels.

Who is it for?

  • Indie game devson Unity, Godot, Phaser, Cocos2d-x or PixiJS who need engine-ready exports fast.
  • Pixel artistswho want to test a sheet without opening Aseprite or TexturePacker.
  • AI artiststurning GPT Image 2 / NanoBanana Pro / Midjourney / Stable Diffusion outputs into game-ready animations.
  • UI/UX designersprototyping micro-animations, loaders and icon loops.
  • Web developersbuilding canvas or CSS sprite animations.
0
Uploads
100%
Client-Side
Free
3
Backgrounds