Row animation namesName row 1 as idle, walk, attack, etc. JSON frames become idle_001, idle_002...
3. Output layoutExport never trims, crops, rescales, or removes whitespace inside a sprite. It copies whole grid cells exactly.
How this works
On load, the app tries to detect rows/columns by finding full transparent or white separator lines. If that guess is wrong, enter rows/columns yourself and Apply grid.
Duplicate detection is exact: every pixel in the full grid cell must match. No sensitivity slider, no trimming, no fuzzy matching.
The JSON gives animation frame names from row labels, original source positions, packed positions, and duplicate mappings.