Aseprite Alternative — a Free Companion for After the Drawing
Aseprite is the pixel editor many sprite artists draw in: a $19.99 desktop editor for Windows, macOS and Linux with layers, tags, onion skin, tilemaps, Lua scripting and a command line. Nerulio Studio does not try to replace that. It is a free browser companion for the work after the drawing — slicing sheets you did not draw, timing, pivots and hitboxes, packing and engine files — and it reads and writes .aseprite files.

- Godot 4Verified· Godot 4.7.2
- .asepriteVerified· Aseprite 1.3.18
- Unity 6Verified· Unity 6000.5.3f1
- Phaser 3 / 4Verified· Phaser 3.90 + 4.2
- PixiJS 8Verified· PixiJS 8.21
- Aseprite JSONVerified· Phaser load.aseprite · PixiJS 8.21
- Spine / libGDXVerified· spine-canvas 4.2
- Starling / Sparrow XMLVerified· Phaser 4.2
- LÖVEVerified· LÖVE 11.5
- DefoldBuilt· Defold bob.jar 1.13.1
- GameMakerUNVERIFIED
- CSS spritesVerified· Chromium
- GIF / APNGDecoded· Pillow
What it does
- Opens .aseprite and .ase in a browser tab with no Aseprite installed: tags with direction and repeat, per-frame durations, and slices as pivots, boxes and 9-slice. Layers stay separate when they compose exactly; otherwise the file is flattened and the reason is shown.
- Writes .aseprite back (Sprite › Export .aseprite), so the pivots and hitboxes you placed here arrive in Aseprite as slices. The writer was checked on 231 corpus files, every one reopened in Aseprite 1.3.18.6 without a warning.
- A packer rather than a best-fit sheet: MaxRects with five heuristics, Skyline and Guillotine, rotation only for engines that read it, up to 64 pages, identical frames stored once.
- Engine files next to the JSON: Godot 4 SpriteFrames and a scene, a Unity 6 importer, Phaser 3/4 and PixiJS 8 atlases, Spine and LÖVE, each labelled with how it was checked in that engine.
- Sheets from asset packs are cut from their pixels: the grid with margin and spacing is measured, "islands" handles irregular sheets, and a flat background colour becomes transparent.
Nerulio Studio and Aseprite, side by side
Studio rows come from our own runs; the Aseprite column from its 1.3.18 release as tested in our competitor research (2026-09-23).
| Nerulio Studio | Aseprite 1.3.18 | |
|---|---|---|
| .aseprite round trip | 231/231 corpus files imported, re-written and reopened in Aseprite with the same tags, durations and pixels (222 layered, 9 flattened) | Its own format |
| Price and platform | Free, in a browser tab; files are not uploaded | $19.99; desktop app for Windows, macOS and Linux |
| Drawing pixels | No — the Pixel workspace is coming | Yes: layers, blend modes, onion skin, indexed palettes, tilemaps |
| Sheet packing | MaxRects (5 heuristics), Skyline, Guillotine, best-of search; rotation where the engine reads it; up to 64 pages | Rows, columns or a best-fit "Packed" sheet; never rotates; one sheet, no multipack |
| Data files | Aseprite JSON plus Godot 4, Unity 6, Phaser 3/4, PixiJS 8, Spine and LÖVE files | JSON hash or array with tags, slices and layers |
| Pivots and hitboxes | Pivot (P), boxes (B) as rectangle, circle or polygon, collision polygon from alpha; pivots written into every engine file, boxes into Aseprite JSON slices and SpriteFrames metadata (not Godot nodes), and back into .aseprite as slices | Slices with a pivot and 9-slice centre, keyed per frame |
| Cutting a sheet you did not draw | Grid measured from the pixels (margin, spacing) or islands, with a confidence | Grid by a cell size you type |
| Scripting and batch | Browser interface only | Lua API and a command line (-b, --sheet) |
Source of these numbers: docs/STUDIO-SPRITE.md, docs/STUDIO-PACK.md, research/competitors/SPRITE-PIXEL.md
Where Aseprite is the better choice
- Drawing and animating pixels: pencil, shading ink, symmetry, RotSprite rotation and onion skin while you draw. The Studio has no painter yet.
- Indexed colour work — palettes, dithered conversion — and editing tilemaps directly on the canvas.
- Automation: a Lua scripting API and a command line that export sheets from a build script.
- It is a desktop program that keeps working without any website or browser tab.
How to do it
- Drop the .aseprite file — or a sheet from an asset pack — on this page; it opens in the Sprite workspace.
- Look over tags, durations and layers in the Timeline; play a tag with Enter and toggle onion skin with F3.
- Set pivots with the pivot tool (P) and draw hit or hurt boxes with the box tool (B) where the game needs them.
- Open Pack & Export and Export (Ctrl+E) for your engine, or use Sprite › Export .aseprite to hand the frames back to Aseprite with slices.
Engine exports and how each was checked
"Verified" means the exported files were loaded by the real engine or tool on real CC0 assets and the result was compared with the source. Anything that was not loaded is labelled as such.
| Target | Files | Check |
|---|---|---|
| Godot 4 | .tres SpriteFrames · .tscn AnimatedSprite2D · .png.import | Verified Godot 4.7.2Loaded by Godot; every animation frame drawn and compared with the source file. The scene uses Nearest filtering; rotation is never used. |
| Unity 6 | .unity.json · Editor/NerulioSpriteImporter.cs · AnimationClip | Verified Unity 6000.5.3f1Batch mode: sprite rects, pivots, pixels, clip keys and durations checked. |
| Phaser 3 / 4 | atlas JSON (multiatlas) · .anims.json | Verified Phaser 3.90 + 4.2Frames and animations drawn by both versions. |
| PixiJS 8 | spritesheet JSON · animations · anchor · meta.scale | Verified PixiJS 8.21Rotated and multi-page atlases included. |
| Aseprite JSON | hash / array · frameTags · slices | Verified Phaser load.aseprite · PixiJS 8.21Tags keep their direction and repeat count. |
| .aseprite | layers · tags · durations · slices | Verified Aseprite 1.3.18Opened and rendered by the Aseprite command line. |
| Spine / libGDX | .atlas | Verified spine-canvas 4.2Every region drawn by the Spine runtime, rotated and trimmed; libGDX itself was not run. |
| Starling / Sparrow XML | XML per page | Verified Phaser 4.2Phaser 3.90 draws trimmed XML frames wrongly (its own bug); the "Sparrow XML (Phaser 3)" preset turns trim off and passes in 3.90 and 4.2. |
| LÖVE | Lua quads · nerulio_atlas.lua · main.lua | Verified LÖVE 11.5Every frame drawn and every animation stepped through the shipped helper. |
| Defold | .atlas · .tilesource | Built Defold bob.jar 1.13.1Built by Defold's command-line builder; the built texture's UVs were read back. |
| GameMaker | spr_<name>_stripN.png · gamemaker.json | UNVERIFIEDNot loaded in GameMaker (no headless GameMaker). The strips are cut the way its strip importer cuts them. |
| CSS sprites | .css · preview .html | Verified ChromiumEvery class drawn from the shipped stylesheet. |
| GIF / APNG | one file per animation | Decoded PillowEvery frame and delay decoded again after export; APNG is exact. |
Evidence
GIF decoder: 408 of 408 frames identical to Pillow on 29 real GIFs; APNG 132 of 132 on 16 files. .aseprite: 231 corpus files imported, re-written and reopened in Aseprite 1.3.18 with the same tags, durations and pixels (231/231). Exports: 49 runs in the real engines on real CC0 assets, 47 pass — the 2 failures are Phaser 3.90's trimmed-XML bug, which the Phaser 3 preset avoids.
Limits
- A grid or island guess is a preview with a confidence; nothing is cut until you press Apply, and every choice has one-click alternatives.
- .aseprite files whose layers do not compose exactly (e.g. group opacity) are imported flattened, and the Import panel says why.
- Rotated frames in an imported atlas stay rotated; their export is UNVERIFIED.
- Images up to 32,768 px per side (268 million pixels), subject to your browser's memory.
Questions
Can I draw my sprites in Nerulio instead of Aseprite?
Not today. The Pixel workspace is still coming. Draw in Aseprite (or Pixelorama or Piskel) and bring the file here for slicing, timing, boxes and export.
Will Aseprite still open a file after Nerulio saved it?
On the 231-file corpus every file the Studio wrote opened in Aseprite 1.3.18.6 without warnings, with the same tags, durations and pixels. 222 kept their layers; 9 were flattened because their layers did not compose exactly, and the Studio tells you when that happens.
Do I need Aseprite installed to get my animation into Godot?
No. The Studio reads the .aseprite itself and writes Godot 4 SpriteFrames, verified in Godot 4.7.2. The common Godot plugin route calls the Aseprite command line, which needs an installed copy.
Is it free, and do I need an account?
Everything on these pages is free and works without an account. There is no watermark and no export that is held back.
Are my sprites uploaded?
No. The Studio decodes, packs and exports in this browser tab. Projects are autosaved in the browser (IndexedDB) and can be saved as a .nerulio file.
Does it need Aseprite or an engine plugin installed?
No. .aseprite files are read and written in the browser, and each engine bundle carries what that engine needs (for Godot, the import settings and scene; for Unity and the Godot TileSet, a small editor script).