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.
Smartly samples edge pixels to detect transparent, white, or black backgrounds — no manual setup required.
A fast projection-based algorithm detects sprite bounds in milliseconds, even for large sheets.
Split any column into multiple animations with simple counts like 6, 5, 3, 2 — perfect for mixed clips.
Play animations at 1–30 FPS, swap instantly between them, and fine-tune timing in real time.
Everything runs in your browser. Your sprites are never uploaded to any server — ever.
Export to Godot, Phaser, Cocos2d-x, Unity, PixiJS, Aseprite, or individual frames — all in one click.
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.
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.
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.
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:
6, 5, 3, 2, preview each clip, and export straight to your engine.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:
PACKING_LOGIC.MAX_EDGEmode and it's what keeps the free-rectangle list small and the result tight when sprite sizes vary a lot.MAX_AREAsorting for an area-first heuristic.)regioncan't express rotation, so rotation is automatically disabled for that 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.
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:
maxrects-packerlibrary, a modern MaxRects implementation comparable to the bin-packing core TexturePacker relies on, including the MAX_EDGE sort, smart compaction and 90° rotation..plist, Phaser 3 atlas JSON, plus Godot.tres, Unity.metaand Aseprite JSON.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.
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:
.tresSpriteFrames resource + atlas image, ready for AnimatedSprite2D..plistsprite sheet with frames and animation delays..metaTextureImporter sprite metadata.6, 5, 3, 2in the split box. Each group gets its own color so you can see exactly which frames belong to which animation.Yes — no sign-up, no watermark, no limits, no "pro" tier. Everything runs in your browser.
No. The entire pipeline runs client-side, so your sprite sheets never leave your device.
Yes. Drop the generated grid in, and it'll be sliced and grouped automatically so you can preview each animation live before exporting.
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.
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.
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.