Skip to content

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.

Drop a sprite sheet, numbered frames, a GIF / APNG or an .aseprite file
Runs in your browser. Files are not uploaded.
Studio Sprite workspace: an .aseprite file with four tags (forward, reverse, ping-pong, repeat counts), per-frame durations and a hit box from its slices
The real Studio with a CC0 asset (Nerulio).
Exports to
  • 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 StudioAseprite 1.3.18
.aseprite round trip231/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 platformFree, in a browser tab; files are not uploaded$19.99; desktop app for Windows, macOS and Linux
Drawing pixelsNo — the Pixel workspace is comingYes: layers, blend modes, onion skin, indexed palettes, tilemaps
Sheet packingMaxRects (5 heuristics), Skyline, Guillotine, best-of search; rotation where the engine reads it; up to 64 pagesRows, columns or a best-fit "Packed" sheet; never rotates; one sheet, no multipack
Data filesAseprite JSON plus Godot 4, Unity 6, Phaser 3/4, PixiJS 8, Spine and LÖVE filesJSON hash or array with tags, slices and layers
Pivots and hitboxesPivot (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 slicesSlices with a pivot and 9-slice centre, keyed per frame
Cutting a sheet you did not drawGrid measured from the pixels (margin, spacing) or islands, with a confidenceGrid by a cell size you type
Scripting and batchBrowser interface onlyLua 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

  1. Drop the .aseprite file — or a sheet from an asset pack — on this page; it opens in the Sprite workspace.
  2. Look over tags, durations and layers in the Timeline; play a tag with Enter and toggle onion skin with F3.
  3. Set pivots with the pivot tool (P) and draw hit or hurt boxes with the box tool (B) where the game needs them.
  4. 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.

TargetFilesCheck
Godot 4.tres SpriteFrames · .tscn AnimatedSprite2D · .png.importVerified 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 · AnimationClipVerified Unity 6000.5.3f1Batch mode: sprite rects, pivots, pixels, clip keys and durations checked.
Phaser 3 / 4atlas JSON (multiatlas) · .anims.jsonVerified Phaser 3.90 + 4.2Frames and animations drawn by both versions.
PixiJS 8spritesheet JSON · animations · anchor · meta.scaleVerified PixiJS 8.21Rotated and multi-page atlases included.
Aseprite JSONhash / array · frameTags · slicesVerified Phaser load.aseprite · PixiJS 8.21Tags keep their direction and repeat count.
.asepritelayers · tags · durations · slicesVerified Aseprite 1.3.18Opened and rendered by the Aseprite command line.
Spine / libGDX.atlasVerified spine-canvas 4.2Every region drawn by the Spine runtime, rotated and trimmed; libGDX itself was not run.
Starling / Sparrow XMLXML per pageVerified 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ÖVELua quads · nerulio_atlas.lua · main.luaVerified LÖVE 11.5Every frame drawn and every animation stepped through the shipped helper.
Defold.atlas · .tilesourceBuilt Defold bob.jar 1.13.1Built by Defold's command-line builder; the built texture's UVs were read back.
GameMakerspr_<name>_stripN.png · gamemaker.jsonUNVERIFIEDNot loaded in GameMaker (no headless GameMaker). The strips are cut the way its strip importer cuts them.
CSS sprites.css · preview .htmlVerified ChromiumEvery class drawn from the shipped stylesheet.
GIF / APNGone file per animationDecoded 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).