Tile Lab

Measure the grid, slice tiles, test autotile rules and check seams in one workspace.

An autotile sheet is only a picture until every tile says which neighbours it connects to — Godot calls these terrain peering bits, Tiled calls them Wang IDs, Unity writes them as Rule Tile neighbours. Tile Lab (the Tile workspace of Nerulio Studio) takes a PNG sheet, measures its grid, recognises which of 12 published layouts it is from the seams between tiles, writes the bits, lists missing combinations and paints a test map with Godot's or Tiled's rule. The export was built and painted in Godot 4.7.2, Tiled 1.12.2 and Unity 6000.5.3f1; the LDtk file was checked against the 1.5.3 schema and loader.

Drop image files hereProcess many files at once
No upload · processed on this device

How the layout is recognised from the pixels, and when it fails

A layout is a table: for each cell of the sheet, the neighbour mask that tile stands for. The same 47 blob tiles are published in at least five incompatible orders (cr31 ascending 8×6, wang blob 7×7, caeles, GameMaker, the Godot 3 12×4 template), and nothing in a PNG says which one you have. Apply the wrong table and every tile lands in the wrong rule.

So the workspace tests each table against the art. If a layout says tile A connects on its right and tile B connects on its left, A|B must join without a visible seam; if only one of them connects, the layout promises a break. For every neighbouring pair it compares the pixels across the shared edge (split into the two corner segments and the middle), and scores the layout by the probability that a "should be seamless" pair really is smoother than a "should break" pair — the ROC AUC, where 1.0 is perfect and 0.5 means the pixels say nothing. Only edge pixels count, so slot numbers printed on template tiles do not disturb it.

Every layout is tried at every position on small sheets and on its own block grid on sheets above 400 cells: a quick sampled pass, then a full pass for the best six placements. Confidence is high when the AUC is at least 0.97, no cell of the layout is blank and it leads the next different reading by at least 0.03; medium from an AUC of 0.88 with at most one blank cell; anything else is low. Nothing is written until you press Apply.

It fails in predictable places: seamless art where every piece looks alike (an RPG Maker A2 floor scored 0.5), heavily textured art (the 64 px cave set scored 0.964, still all 47 tiles right), a layout that is not in the list (Tilesetter's output order is not published), and sheets that are not autotile sets at all. Then you paint the bits yourself or let the workspace suggest them from the pixels as a preview.

Peering bit
Godot 4's name for the terrain a tile expects at one of its 8 neighbour positions; Tiled stores the same idea as a Wang ID, Unity as a Rule Tile neighbour rule.
Layout
The order in which a sheet stores its tiles: which neighbour mask sits in which cell.
Seam AUC
How cleanly a layout's "seamless" pairs beat its "broken" pairs on edge pixel difference: 1.0 perfect, 0.5 no information.
Match mode
Which neighbours count: corners and sides (47-tile blob), sides only (16 edge tiles), corners only (16 corner / dual-grid tiles).

What identification said about real sheets

Corpus run of 2026-09-23 (docs/STUDIO-TILE.md), grid and layout found from the pixels with no hints:

Sheet                              Detected as               Confidence  Seam AUC  Bits right
GameMaker 47 template              GameMaker 47              high        1.000     47/47
caeles template 7×7                caeles 7×7                high        1.000     49/49
Tiled wangblob example             wang blob 7×7             high        1.000     49/49
cave platformer 47 (64 px art)     GameMaker 47              medium      0.964     47/47
Wang S-V2 (corner template)        corner16 cr31             high        1.000     16/16
coolschool A2 (seamless floor)     nothing from the pixels   low         0.5       size hint → assembled
Kenney tiny dungeon (no autotile)  low, or a 3×3 box with the warning "only part of the sheet: 9 of N tiles"

Godot 4.7.2 painting the exported sets: 485 of 485 test cells equal the Studio's prediction on each blob set.

The cave set is the typical real case: textured rock makes the edges noisier, so the AUC drops below 0.97 and the result is labelled medium even though every tile is right. Read the confidence as "how much to double-check", then confirm with the test map.

Check the result before you export

  • Check panel: it says Complete only when every combination has a tile, no tile has a corner bit behind an open side, and the art-vs-bits check was measured and found nothing. "Not measured" is shown as such, never as a tick.
  • Missing combinations appear as ghost tiles with their mask; draw exactly those, or generate them with the tileset generator.
  • Press M and look at the starter island with the Godot rule, then the Tiled rule: outlined cells are where the engine would leave a hole or substitute a tile (what the outlines mean).
  • After export, paint the same shapes in the engine: in Godot 4 run the shipped nerulio_tileset_import.gd (File › Run), assign the saved nerulio-tileset.tres to a TileMapLayer and paint with the Terrains tab; details in Godot 4 autotile.

Troubleshooting

SymptomLikely causeHow to checkFix
The top layout candidate is low, or plainly wrongSeamless or heavily textured art, or a layout that is not one of the 12 known onesRead its seam AUC and the warning "explains only part of the sheet"Paint the bits with the Bits tool (B), or select the full tile and use Suggest bits from pixels, then accept the preview
Candidates show twice or half the real tile sizeA multiple of the true tile explains the same edges (a 64×32 cell made of eight 16×16 tiles)The dashed grid preview cuts through drawn tiles, or cols × rows is not 8×6, 7×7, 4×4 or 12×4Pick the candidate whose cols × rows matches a layout, or type the tile size
Check lists "corner bits behind open sides"A corner bit was set where one of its two sides is open: no map ever needs that tileClick the listed tile; the 3×3 bit editor shows the corner and the open sideClear the corner bit or connect the side; one click each, one undo step
The art check flags exactly two tilesTwo tiles are swapped in the sheet compared with the layoutThe art check lists both tiles by position; the drawn rims of each contradict its bitsSwap their bits (copy / paste bits) or fix the order in the sheet and re-import
An RPG Maker sheet gets no layout at allA2 / A4 sheets hold the pieces tiles are assembled from, not the tiles; a seamless floor scores 0.5A size hint appears, e.g. 768×576 = RPG Maker A2 at 48 pxUse "Assemble from this block"; see RPG Maker autotiles in Godot

Other ways to do it

OptionWhen it is the better choice
Godot's own TileSet editor: select tiles in Select mode and set the Terrain Peering Bits by handA small set in an unusual layout that only you use; nothing to install, and you see Godot's own UI while you learn it.
Tiled's terrain set editorYour levels live in Tiled and you mark Wang colours there anyway; Tiled Wang sets shows what the export writes.
LDtk auto-layer rulesYou build levels in LDtk and want its rule editor (rules on an IntGrid layer) rather than per-tile bits; see LDtk autotile rules.
A base-block generator such as Blobsmith, or Nerulio's own generatorYou have not drawn 47 tiles yet: draw a 2×3 base and assemble the rest (tileset generator).

What this page does not cover

  • Isometric and hexagonal tiles, animated tiles, alternative tiles, occlusion and navigation layers are not handled.
  • Tiled's terrain brush, the LDtk app and Godot's editor painter were not driven; the checks used their file readers and set_cells_terrain_connect.
  • Rules for more than two terrains meeting at one point are only as complete as the art.

Versions and sources

Verified by Nerulio (docs/STUDIO-TILE.md, 2026-09-23, Windows 11): Godot 4.7.2.stable.official built the TileSet with the shipped importer and painted every corpus map exactly as the Studio predicted; Tiled 1.12.2 read every Wang ID as written; Unity 6000.5.3f1 with 2D Tilemap Extras 8.0.3 built the Rule Tiles and matched in every cell; LDtk only against the 1.5.3 JSON schema and the official loader. Engine concepts above follow the linked documentation.

Official documentation used

Tile Lab

Measure the grid, slice tiles, test autotile rules and check seams in one workspace.

How it works

  1. Add images
  2. Adjust settings and review the result
  3. Download a new file

Supported formats

PNG / JPG / WebP / AVIF / HEIC → PNG + JSON (ZIP) — Input decoding depends on browser support and optional engines.

What this tool does

Measure the grid, slice tiles, test autotile rules and check seams in one workspace.

Implementation and verified quality

advanced · Studio Tile workspace: seam-continuity layout identification, terrain bits, Godot 4 terrain matcher port, quarter-exact generator, Godot/Tiled/LDtk/Unity writers. Quality qualification is in progress. Pro/Flagship quality has not been established.

Before you export

It tests rules; it does not draw tile art for you. Check the Godot helper's verification note before trusting it.

Frequently asked questions

What are this tool’s limitations?

It tests rules; it does not draw tile art for you. Check the Godot helper's verification note before trusting it.

Are my files uploaded?

This tool processes the files you open on your device without uploading them. Images you explicitly attach to community posts are uploaded separately. Optional engines and models are downloaded from third parties; those requests expose connection information such as your IP address.

Will my work be saved automatically?

No. Images and editing state stay in this tab; media output can use local temporary storage. Changing language preserves your work; reloading, closing the tab, or following a link to another page can clear it.