GithubHelp home page GithubHelp logo

tchigher / rx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudhead/rx

0.0 0.0 0.0 546 KB

Modern pixel editor implemented in rust

Home Page: http://cloudhead.io/rx

License: GNU General Public License v3.0

Rust 99.39% GLSL 0.48% Shell 0.13%

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. 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. 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.
  * CPU & memory efficient.

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 / synchronous editing.
  * Brush filtering a.k.a. "pixel-perfect" mode.

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

PLATFORM SUPPORT

  * Linux     (vulkan)         [GOOD]
  * macOS     (metal)          [GOOD]
  * Windows   (vulkan)         [OKAY]

BUILD DEPENDENCIES

  * rust (https://www.rust-lang.org/tools/install)
  * cmake (https://cmake.org/download/)

  macOS

    * `Xcode` and the `Xcode Command Line Tools` are required.
      The latter can be obtained by running `xcode-select --install`
    * CMake might be required. You can install it with `brew install cmake`.

BUILD & 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 either 'vulkan' or 'metal'.  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

  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. If a config file isn't found, the default
  configuration (`config/init.rx`) will be written.

  To get the exact location of the config directory, enter `:echo config/dir`
  from inside `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:

    :help                    Display help
    :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

TROUBLESHOOTING

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

  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. Try the `winit` backend, by building `rx` with eg. `--features winit,vulkan`.

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 dashaw92 avatar fbbdev avatar kstrafe avatar phrohdoh avatar rbisewski 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.