Git Product home page Git Product logo

rx's Introduction


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

    `rx` is a modern pixel editor implemented in rust.

  Designed with great care and love
    with pixel artists and animators in mind.

OVERVIEW

  `rx` is an extensible, modern and minimalist pixel editor 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*.

  See the screenshots/ folder to get an idea of what this looks like.

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

GOALS

  * Minimal UI. Clean aesthetics.
  * 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. No perceptible input lag when painting. All commands run in < 16ms.
  * Optimized for advanced users. No hand-holding. vi-like philosophy.
  * Small, hackable codebase. At most 10 KLOC with only a handful of direct dependencies.
  * First-class Linux support.

FEATURES

  * Built-in sprite animation support, with live preview.
  * Work with multiple files simultaneously.
  * Extensible command system.
  * Text-based configuration.
  * Built using modern graphics.
  * HiDPI display support.
  * UI scaling.
  * Undo/redo any edit.
  * PNG support.
  * Animated GIF output.
  * Multi-brush.

  * (Coming soon: Layers)
  * (Coming soon: Visual mode)
  * (Coming soon: Workspaces)

PLATFORM SUPPORT

  * Linux     (vulkan)         [GOOD]
  * macOS     (metal)          [GOOD]
  * Windows   (dx11/dx12)      [UNTESTED]

BUILD DEPENDENCIES

  * rust & cargo (https://www.rust-lang.org/tools/install)

INSTALLATION

  Before proceeding, make sure the build dependencies have been installed.

  Then, run:

    $ cargo install --git https://github.com/cloudhead/rx --locked --features <backend>

  where <backend> is one of 'vulkan', 'metal', 'dx11' or 'dx12'.
  See the PLATFORM SUPPORT section for which feature to enable on
  your platform.

  This will download `rx` and install it under `~/.cargo/bin/rx`.
  If you prefer a different install location, you can specify it
  via the `--root <prefix>` flag, where <prefix> is for example
  '/usr/local'.

CONFIGURATION

  Linux

  Create a config folder for rx in your XDG configuration directory:

    $ mkdir -p ~/.config/rx

  and copy the default configuration and palettes from the `config/`
  directory of this project to it. You can then edit `init.rx` to
  configure rx.

USAGE

  After installing, simply run `rx` from a shell or application launcher.

  You can then use the :help command to show the default set of key mappings
  and commands.

  Common commands:

    :e <path..>              Edit path(s)
    :w                       Write/save view
    :q                       Quit view
    :slice <n>               Slice view into <n> frames
    :source <path>           Source an rx script (eg. a palette)
    :f/resize <w> <h>        Resize frames

  For example, to create a 32x32 sprite with 4 frames:

    1. Open `rx`.
    2. Type `:f/resize 32 32`.
    3. Press <return> three times to create a total of four frames.
    4. Zoom in/out with `.` and `,`.
    5. Draw something great!
    6. Type `:w animation.png` to save it.

SUPPORT

  If you find this project useful, consider supporting it by sending ₿ (Bitcoin) to
  the following address:

    1MpF7p9A8LJabZn7ehHpGbLcN5PCXRdGqm

LICENSE

  This software is licensed under the GPL. See the LICENSE file for more details.

COPYRIGHT

  (c) 2019 Alexis Sellier <[email protected]>

rx's People

Contributors

cloudhead avatar fbbdev avatar phrohdoh avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.