Public evidence lab
Repeat the converter's compatibility tests yourself
Download original synthetic inputs, repeat browser-local conversions, and compare the observed frames, timing, layers, and intentional rejection boundaries.
Maintained by khs2325 · Last reviewed August 24, 2026
This lab turns compatibility claims into repeatable checks. Every downloadable file below is tiny, original test artwork generated inside the public repository. None of it contains user artwork or a third-party asset. You can inspect the generator, download the exact input, run it through the production converter, and compare the resulting project with the observations recorded here.
Evidence boundary: a passing fixture demonstrates the documented structure represented by that fixture. It does not prove universal compatibility with every file made by the same editor.
Start with the two-frame spark
Repeat the PNG sequence check
- Download both 4×4 PNG frames above.
- Open the converter, click PNG frames and then Aseprite on the conversion route map, and add the two files in frame order.
- Follow the directed route to start conversion, then inspect the local preview before downloading the generated Aseprite file.
- Open the result in Aseprite and compare the canvas, frame count, layer count, order, transparency, and representative pixels.
| Check | Expected observation | Why |
|---|---|---|
| Canvas | 4×4 RGBA | Both inputs have the same decoded dimensions. |
| Timeline | 2 ordered frames | Each PNG becomes one frame in supplied order. |
| Timing | 100 ms per frame | The sequence importer uses its documented default duration. |
| Layers | 1 generated layer | PNG stores composited pixels, not original editor-layer records. |
| Transparency | Unused pixels remain transparent | RGBA pixel alpha is carried into each cel. |
Repeat the atlas metadata check
Use the same pixels as an atlas by downloading spark-sheet.png and spark-sheet.json. Choose Spritesheet PNG + JSON and add both files. The JSON names two rectangles: (0,0,4,4) and (4,0,4,4). The observed result is a 4×4, two-frame, one-layer timeline with durations of 80 ms and 120 ms. The metadata changes timing and slicing; it still does not create source layers that are absent from the flat sheet.
Read the exact atlas metadata
{
"frames": [
{ "frame": { "x": 0, "y": 0, "w": 4, "h": 4 }, "duration": 80 },
{ "frame": { "x": 4, "y": 0, "w": 4, "h": 4 }, "duration": 120 }
],
"meta": { "image": "spark-sheet.png", "size": { "w": 8, "h": 4 } }
}Layered project checks
Flat images test frame reconstruction. Project files test a different claim: preserving supported layers when the source actually contains layer records. These files are deliberately tiny so their structure and output can be inspected without relying on private artwork.
| Input | Observed SpriteProject | Preservation evidence |
|---|---|---|
| multi-layer.piskel | 2×2 · 2 frames at 50 ms · 2 layers | Background and Accent layer records, with source opacities 0.5 and 1, map to separate Aseprite layers. |
| two-layers-two-frames.pixil | 2×2 · 2 frames at 120/75 ms · 2 layers | Stable layer identities and full-canvas embedded PNG cels are reconstructed across both frames. |
| two-layers-two-frames.pxo | 2×2 · 2 frames at 100/250 ms · 2 layers | Names, order, visibility, opacity, frame duration multipliers, and raw RGBA cel payloads are mapped. |
| two-layers.ora | 4×3 · 1 frame at 100 ms · 2 layers | Names, order, visibility, opacity, signed offsets, and PNG-backed raster pixels remain distinct. |
| two-paint-layers.kra | 2×2 · 1 frame at 100 ms · 2 layers | Supported Krita paint-device tiles decode from native BGRA bytes; flattened previews are not used to invent layers. |
| two-layers.psd | 4×3 · 1 frame at 100 ms · 2 layers | The narrow RGB 8-bit subset maps raster layer names, order, visibility, opacity, and decoded RGBA pixels. |
To repeat one of these checks, download the fixture, choose its matching project mode, convert, and inspect the preview plus the downloaded file. A normal raster layer result is evidence of source layer data being mapped. It is not evidence that groups, vectors, masks, effects, text, smart objects, tilemaps, or non-normal blends were preserved.
Animation timing and compositing checks
The GIF fixture exercises transparency, partial rectangles, and delay normalization. Its observed durations are 100, 20, 120, and 65,535 ms. The APNG fixture exercises partial rectangles and rational delay normalization; its observed durations are 1, 17, 10, and 65,535 ms. Both formats produce one generated flat layer because animation frames do not contain the original editor's layer stack.
What the tests intentionally reject
A credible compatibility boundary includes failures. The automated suite does not silently accept a file merely because its extension looks familiar. Representative rejection checks include:
- PNG sequence frames with mismatched decoded dimensions.
- A grid whose cell products do not exactly fit its spritesheet.
- Atlas rectangles outside the source image, incomplete trim data, unsupported rotation values or conventions, and invalid durations.
- Malformed JSON, invalid PNG signatures, unsafe ZIP paths, missing archive entries, and resource limits.
- External Pixil image URLs, unsupported model versions, ambiguous layer identity, and missing cels.
- Project groups, tilemaps, effects, masks, vector or text objects, unsupported color modes, and non-normal blend behavior outside the documented subset.
- Flattened previews offered in place of actual layer payloads.
Failing closed protects the meaning of the output. It is better to explain that a structure is unsupported than to return a file labeled editable after silently discarding data.
Inspect and reproduce the evidence
The public samples are copied byte-for-byte from the repository's deterministic fixtures. Their generator can reproduce them locally, and automated tests assert that the published copies have not drifted from the inputs used by the importers. Start with the fixture inventory and provenance notes, inspect the deterministic generator, and follow the end-to-end conversion assertions. The Aseprite writer tests cover binary structure and validation.
Maintainer: khs2325. Corrections and reproducible compatibility reports belong in the public issue tracker; use newly created synthetic artwork rather than private source files.