---
title: "blit"
url: https://manvsmidi.com/projects/blit/
category: tool
status: wip
date: 2026-08-15
tags: [pixel-art, rust]
related: [pxl]
---

# blit

> A native pixel art editor in Rust, in the same space as Aseprite and Pixelorama, with a command line and Rhai scripting so a sprite can be a build step.

Tool · In progress · 2026-08-15

A pixel art editor written in Rust: egui for the chrome, wgpu for the canvas, and a core crate with no GUI or GPU dependency at all. It's at v0.2, which means you can draw, layer, animate, tag, save and export real work in it.

## The editor

- **Two tools at once.** Each mouse button gets its own tool, colour, brush and options, so pencil on the left and eraser on the right removes the most common mode switch in pixel art.
- Pencil, eraser, bucket, picker, line, rectangle, ellipse, with pixel-perfect stroke thinning and X/Y mirroring.
- Pixel and group layers, nine blend modes, clipping masks, per-cel z-index.
- Frames with individual durations, and playback timed by the wall clock rather than repaint count.
- Canvas resize with an anchor, crop, trim, flips and turns, all undoable.
- `.blit` projects, PNG, PNG sequences, spritesheets with a JSON atlas, animated GIF; palettes in `.gpl`, `.pal`, `.hex` and JSON.

Compositing runs on the CPU on purpose. The canvas and the exporter call the same function, so what you see is what you export by construction, not by testing two implementations into agreement.

## The command line

A separate `blit` binary links only the core, so it runs on a build server with no display. It does info, export, transform, resize, crop and import (slicing a spritesheet back into frames), and `blit run` executes a Rhai script over the same functions. A `.blit` file can never carry a script, so opening a sprite someone sent you never runs code. Exports are byte-identical across runs.

![A greyscale pixel wolf in profile with red eyes](https://manvsmidi.com/_astro/wolf-side.DIoLEKHb.png)
*Drawn by a script: 64×64 of hand-placed ASCII, rendered through the same tool functions the canvas uses and redrawn by the test suite on every run.*

## Connected projects

- [pxl](https://manvsmidi.com/projects/pxl/index.md): shared tags: pixel-art
