Jaconir
Game Dev LabStep 3 of 9

Sprite Sheet Generator

Pack multiple sprites into optimized texture atlases for Godot, Unity and modern 2D engines.

Workspace

Upload once · inspect the atlas · export for your engine

No sprites yet

Generated atlas

Your packed atlas preview

Dense pack

Your atlas will appear here

Upload PNG / JPEG / WebP. Packing stays in your browser.

Frame strip

Drag to reorder · order maps left→right, top→bottom in grid mode

Your imported frames will appear here in order.

Upload

PNG · JPEG · WebP

Layout

How sprites are arranged on the atlas

Bin-packs each sprite tightly. Best default for mixed sizes and photos.

Selected sprite

Hover or click a packed sprite to inspect it.
Settings
Show
Atlas Size
--
Occupancy
0%

Optimization insights

Production metrics from the current atlas — not marketing copy.

Pack sprites to see efficiency, GPU memory, and suggestions.

Engine compatibility

Supported exports and import notes for common 2D engines.

GO

Godot

AtlasTexture · SpriteFrames

  • Import as AtlasTexture
  • Filter clip + padding
  • Mipmaps off for pixel art

Use the Godot bundle — editor script builds AtlasTextures from trim-aware regions.

UN

Unity

Sprite Atlas · Multiple mode

  • Pixels Per Unit 100
  • Point filter for pixel art
  • Sprite Mode: Multiple

Drop the Unity bundle into Assets/ and run the helper to apply sprite metadata.

GA

GameMaker

Texture pages · PNG

  • Import PNG atlas
  • Map frames via JSON
  • Watch page size limits

Export PNG + JSON, then assign frames on a texture page.

PH

Phaser

Atlas JSON · Multi-atlas

  • Phaser 3 atlas JSON
  • Load with this.load.atlas
  • Trim offsets preserved

Phaser preset JSON loads directly with the atlas PNG.

CO

Construct

Sprite sheet · PNG

  • Import as sprite sheet
  • Match frame size
  • Use padding carefully

Use the PNG atlas; define frames from the exported JSON sizes.

Learn & best practices

Production advice from shipped 2D games

Padding

Keep 1–2px between sprites so bilinear samples never bleed. Extrude 1px duplicates edge colors into the gap.

Texture bleeding

Bleeding shows as colored fringes. Fix with padding + extrude, or Point filtering for pixel art.

Filtering

Pixel art → Point / Nearest. Smooth HD → Bilinear with enough padding. Never mix both on one atlas without care.

Power-of-two atlases

Prefer 512² / 1024² / 2048² when targeting older GPUs, mipmaps, or compressed formats.

Mipmaps

Enable only if sprites shrink on screen. Mipmaps + zero padding = bleed. Prefer POT + padding first.

Animation optimisation

Keep frame order stable. Grid packing preserves cell rhythm for AnimationPlayer / Animator clips.

Draw calls

Sprites that share one atlas can batch. Split atlases by material/shader, not by character pose.

GPU memory

RGBA8 ≈ width × height × 4 bytes. A 2048² atlas is ~16 MB uncompressed — trim and pack before upscaling max size.

Texture compression

Compress in-engine (ETC2 / ASTC / DXT). Export clean PNG here; let the engine compressor handle blocks.

Common mistakes

  • Zero padding with bilinear filtering — classic bleed.
  • One enormous 8192 atlas for a handful of UI icons.
  • Packing UI and world sprites on one sheet then forcing different filters.
  • Ignoring trim offsets so animations jitter after import.

Common presets

Click a preset to update packing configuration instantly

Continue your game dev workflow

Idea → level → art → collision → audio → progression

Frequently asked questions

What image formats are supported?

PNG, JPEG, and WebP. PNG with transparency is recommended for game sprites so trimming and packing stay accurate.

Is there a sprite limit?

Packing runs in your browser. Hundreds of frames are fine; very large sets (1000+) may take longer depending on atlas size and device memory.

Can I pack animation frames?

Yes. Use animation-safe grid mode when frame cells must stay consistent for timelines. Reorder frames in the strip to match your clip order.

What atlas sizes are supported?

Max texture size can be 1024, 2048, 4096, or 8192. Power-of-two and square options help engines that prefer POT textures.

Why does padding matter?

Padding prevents texture bleeding when filtering or mipmaps sample neighboring sprites. Pixel art usually needs 1–2px; HD may need more with bilinear filtering.

What is trimming?

Transparent margins are cropped before packing. Metadata keeps original size and trim offsets so engines can restore alignment.

What can I export?

PNG atlas plus Generic JSON, Phaser 3 atlas JSON, Unity/Godot import bundles, plus XML and CSS for pipelines that expect those formats.

Does this work with Godot and Unity?

Yes. Godot and Unity presets export trim-aware specs and helper scripts. Phaser gets atlas JSON ready to load.

Will packing improve performance?

One atlas reduces texture binds and draw-call pressure versus dozens of loose textures — especially important on mobile GPUs.

Does anything leave my browser?

No. Packing, preview, and ZIP generation are fully client-side. Nothing is uploaded.

More free browser-based game development tools

Game Dev Lab