Why AI tilesets don't tile (and what a Wang set is)
- Seamless is exact: edge pixels must continue into the next tile pixel for pixel.
- Diffusion can't hit it: the downscale averages the edges and the model has no tile grid.
- A real tileset is a 16-tile Wang / autotile family, and SpriteForge derives those edges by construction.
You asked an AI tool for a tileset and it looked plausible. Then you painted a map in Unity or Godot and got one of two failures: visible seams where tiles meet, or the same stamp printed over and over. Here is why, starting with the evidence.
Where to check in any tileset:
- The edge: two copies side by side, zoomed in on the join.
- The corner: four copies in a 2×2 block, zoomed in on the meeting point.
- An L-shaped blob: paint one and look at the inner corner.
What "seamless" actually requires
A tile is seamless when the pixels on its right edge continue exactly into the left edge of the next tile. Same colours, same positions. A 16×16 tile has 16 pixels per edge, and if one disagrees your eye finds the seam, because it repeats on a perfect grid across the whole map.
Seamlessness is a property of exact pixel positions, not of overall appearance.
Why diffusion output can't hit it
Most AI art tools are diffusion models. They generate a 512 or 1024 pixel image, then downscale it and reduce the colours so it reads as pixel art. For a single sprite that can pass (it is also why AI pixel art looks "off"). For a tileset it fails twice:
- The downscale destroys edge precision. When 512 pixels become 16, each final pixel is an average of a large neighbourhood. Nothing in the process ever tried to make two edges agree, so they don't.
- The model has no concept of a tile grid. A tileset is a family of small pictures with strict border relationships, and a diffusion model paints one canvas. Even "tileable texture" modes give you one repeating patch, not the corner, edge and interior tiles an engine assembles.
The usual workaround is a self-contained tile that fades to a neutral border so it never has to agree with its neighbour. That removes the seam and creates the stamp: no pattern flows across cells.
What a real tileset is: Wang tiles and autotiles
Game engines solved map-building with autotiles, a practical descendant of Wang tiles. For one terrain sitting on another (path on grass, say) you need a tile for every way a cell can meet its neighbours. In the common dual-grid convention that is 16 tiles.
The engine picks the right one automatically: you paint "path here" and the borders resolve themselves. Unity rule tiles, Godot terrain sets, GameMaker autotiles and Tiled terrain brushes all use this convention.
The catch is that those 16 tiles carry dozens of edge relationships that must all hold at once. A generator that cannot match two edges has no chance at forty.
How constraint-based generation fixes it
SpriteForge does the opposite of diffusion. The AI places every pixel on the tile grid directly, in a fixed palette, at the final resolution. There is no downscale step, so nothing smears the edges.
Tiling then comes from construction. The artist model designs the terrain pattern and the 16-tile autotile set is derived so that every edge relationship holds exactly. The pattern continues across tile boundaries instead of stopping at them, which is what kills the stamp look. That is the join magnified at the top of this post.
Because the output is a standard dual-grid set it drops into your engine's autotile system, or you can paint with one live in your browser and watch the transitions resolve.
What to take away
The test, for any tool (ours included):
- Put two copies of a tile side by side and zoom in on the join.
- Paint an L-shaped blob of terrain and look at the corners.
- A seam or a stamp shows up immediately. Single-tile marketing images never show you either.
The lesson generalises past tilesets. AI output becomes shippable when the generator works inside the rules of the format (the grid, the palette, the edge constraints) instead of producing something that merely looks right and leaving you to fix the structure by hand.
No card, no subscription. 16x16, paintable, engine-ready.