ImgVX AI

Sprite sheets and seamless textures for games

Games draw hundreds of small images every frame. Loading each as a separate file is slow, so they are packed into one big image, a sprite sheet, with a data file saying where each frame is. Backgrounds and floors do the opposite: one small tile repeated across the screen, which only works if its edges meet without a seam.

Sprite sheet or texture atlas?

The Sprite Sheet Generator makes both at once: a PNG grid and a JSON atlas in the TexturePacker "hash" format that Phaser, PixiJS and many other engines read directly.

Packing frames cleanly

Loading the result

Keep the PNG and the JSON together with the names they download as. In Phaser 3: this.load.atlas('hero', 'hero.png', 'hero.json'), then reference frames by name. In Unity, import the PNG, set its Sprite Mode to Multiple and slice it by cell size in the Sprite Editor. In Godot, use an AnimatedSprite2D and add frames from the sheet by grid size.

Seamless textures

A texture tiles seamlessly when its right edge continues into its left edge and its bottom into its top. Photos never do that by accident. Two ways to fix it:

The Seamless Pattern Maker does both and shows the tile repeated so you can spot a seam before you download. Photograph textures in flat, even light, square on to the surface: a shadow or a bright spot will repeat across the whole floor. Even a perfect tile can show a visible repeating pattern over large areas; in a game, break it up with a few decals or a second texture.

Sizes

For 3D and game textures, stick to powers of two (256, 512, 1024, 2048) so the engine can generate mipmaps. For a website background, 200 to 600 pixels is plenty; compress it with the Image Compressor so it does not slow the page.