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.
Sponsored Feature
Sponsored Result

Keep Jaconir Lab Free

To provide these tools without logins or fees, we use curated sponsorships and minimal push notifications to cover server costs. Thank you for supporting frictionless science!

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

More free browser-based game development tools

Game Dev Lab