/Rx – Extensible pixel editor implemented in Rust, inspired by Vi

Rx – Extensible pixel editor implemented in Rust, inspired by Vi

rx — a minimalist and extensible pixel editor

 ██║   ██╔╝ ██╗
 ╚═╝   ╚═╝  ╚═╝

v0.2.0 alpha

a modern and extensible pixel editor implemented in rust

Download for GNU/Linux

rx is an extensible, modern and minimalist pixel
and animator implemented in rust[0].
It’s designed to have as little UI as possible, and instead takes
inspiration from vi’s[1] modal nature and command mode.

Compared to other pixel editors, rx aims to be smaller yet more configurable
and extendable. `rx` takes a different approach when it comes to animation
as well, which is done with *strips*.

[0]: https://rust-lang.org
[1]: https://en.wikipedia.org/wiki/Vi


  • * Minimal UI. Clean aesthetics. No clutter.
  • * Everything that should be controlled by the keyboard, is.
  • * Extensible and scriptable with a simple command-based language.
  • * Familiar to anyone with vi(m) knowledge.
  • * Snappy. All commands run in < 16ms.
  • * Optimized for advanced users. vi-like philosophy.
  • * Small, hackable codebase. At most 10 KLOC.
  • * First-class Linux support.
  • * CPU & memory efficient.


  • * Built-in sprite animation support, with live preview.
  • * Work with multiple files simultaneously.
  • * Extensible command system.
  • * Text-based configuration.
  • * HiDPI display support.
  • * Undo/redo support.
  • * Color palette support.
  • * PNG support.
  • * Animated GIF support.
  • * Multi-brush / synchronous editing.
  • * Symmetry brush mode.
  • * Brush filtering a.k.a “pixel-perfect” mode.
  • * Coming soon: Layers.
  • * Coming soon: Visual mode.
  • * Coming soon: Workspaces.



On Linux, Vulkan support is required. The drivers can be installed for example with
apt install mesa-vulkan-drivers on debian-based systems.


On macOS, Metal support is required. This usually requires installing Xcode
and the Xcode Command Line Tools.


On Windows, Vulkan support is required.


Disclaimer: this is alpha software, use at your own risk!

On Linux, the simplest way to get rx is to download the AppImage
from here:


Then make it executable with eg. chmod +x, rename it to
rx and move it somewhere in your PATH.

For macOS and Windows, see the following section.


You’ll need cargo and rust to build rx from source. For more
detailed instructions, see the README.


$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features vulkan


$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features metal


$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features vulkan

The default installed palette is sweetie16.palette.
Other palettes are also available here, and you can create your own.


Configuring rx involves editing the init.rx
script, which is found in a platform-dependent location. On Linux, this
is in the XDG config directory, eg. ~/.config/rx/init.rx, while on
macOS this is in the ~/Library/Preferences folder.

To get the exact location of the config directory, enter :echo config/dir
from inside rx.


The source code is available at github.com/cloudhead/rx.
rx is free software.


If you find this project useful and want to support its continued maintenance,
consider sending ₿ (Bitcoin) to the following address with a memo indicating your
name, to be added to the contributors list:



If something ain’t working like it’s supposed to, there are various things you can
do to debug the problem:

  1. 1. Run rx with verbose logging, by using the -v command-line flag.
    This will log errors from the underlying libraries that are usually
    suppressed. You can increase the verbosity further by using -vv.
  2. 2. Try the winit backend, by building rx with eg. --features winit,vulkan.

Otherwise, see the following BUGS section.


If you encounter a bug, please open an issue on the tracker
or send an email to rx@cloudhead.io.


This software is licensed under the GPL.

© 2019 Alexis Sellier
Original Source