MCPcopy Index your code
hub / github.com/Kl4rry/simp

github.com/Kl4rry/simp @v3.10.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.10.3 ↗ · + Follow
227 symbols 527 edges 34 files 6 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Simp

Simp is a fast and simple GPU-accelerated image manipulation program.

Screenshot

Goals

  • Support of as many image formats as possible.
  • 60 Hz. Avoid blocking for more than 16ms.
  • Flicker free redrawing.
  • Smooth resizing.
  • Always use GPU-acceleration where possible.
  • Desktop OS support.
  • Basic image manipulation.

Non Goals

  • Powerful image manipulation (I am not making the next photoshop)
  • Web/Mobile platform support.

Supported Platforms

OS Support
Linux The aur package is the only platform with all image formats enabled.
Windows Windows does not have any optional formats enabled by default.
MacOS MacOS compiles but is not well tested.
NetBSD Native package available.

Supported Codecs

Format Decoding Encoding
PNG
JPEG ✅ Baseline and progressive ✅ Baseline
GIF
BMP
ICO
TIFF
WebP ✅ Converted to Rgba8 ✅ Lossless only
AVIF 🚧 Only 8-bit (1)
PNM
DDS
TGA
farbfeld
SVG ✅ (2)
PSD
Raw ✅ Support from rawloader (3)
HEIF/HEIC ✅ (4)
JPEG XL ✅ (5)
OpenEXR
qoi
hdr
  1. Building with AVIF support requires the C library dav1d and is therefore not enabled by default.
  2. SVGs are rastarized because Simp is primarily a bitmap image editor.
  3. Most common cameras are supported but the colors may look weird because the standard curve may not fit all images.
  4. HEIF/HEIC is only enabled on linux by default.
  5. JPEG XL is only works well on linux currently.

Keybinds

Action Input
Open image Ctrl + O
Save as Ctrl + S
Reload image F5
New window Ctrl + N
Undo Ctrl + Z
Redo Ctrl + Y
Copy Ctrl + C
Paste Ctrl + V
Resize Ctrl + R
Rotate left Q
Rotate right E
Zoom in - or Mousewheel up
Zoom out + or Mousewheel down
Best fit Ctrl + B
Largest fit Ctrl + L
Crop Ctrl + X
Fullscreen F11 or F
Delete image Delete
100% - 900% Zoom Ctrl + 1 - 9
Previous image A or Left arrow
Next image D or Right arrow

Runtime dependencies

The dav1d library is required for AVIF support and libheif is required for heif/heic support.

pacman -S dav1d libheif

Build dependencies

pacman -S git rust cargo-about nasm clang

Installation

Cargo

cargo install simp --locked

Arch

paru -S simp

NetBSD

A pre-compiled binary is available from the official repositories. To install it, simply run:

pkgin install simp

Latest from github

cargo install --git https://github.com/Kl4rry/simp --locked

The latest build is very likely buggy and unfinished. You can always also just grab the latest binary from actions build artifacts.

Manual

Just download the exe from the releases tab. No actual installation is required.

The name

It's an acronym (S)imple (i)mage (m)anipulation (p)rogram.

Extension points exported contracts — how you extend this code

HasAlpha (Interface)
(no doc) [9 implementers]
src/util/mod.rs
ToGrayScale (Interface)
(no doc) [4 implementers]
src/app/op_queue/imageops.rs
UserEventLoopProxyExt (Interface)
(no doc) [1 implementers]
src/app/op_queue.rs
UiClosure (Interface)
(no doc) [1 implementers]
src/app/dialog_manager.rs

Core symbols most depended-on inside this repo

buffer
called by 34
src/util/mod.rs
send_output
called by 29
src/app/op_queue.rs
clamp
called by 22
src/app/preferences.rs
width
called by 21
src/rect.rs
height
called by 21
src/rect.rs
queue
called by 20
src/app.rs
push
called by 18
src/app/undo_stack.rs
p2
called by 17
src/util/mod.rs

Shape

Method 134
Function 52
Class 30
Enum 7
Interface 4

Languages

Rust100%

Modules by API surface

src/app.rs27 symbols
src/app/image_view.rs22 symbols
src/app/op_queue.rs15 symbols
src/util/mod.rs12 symbols
src/rect.rs12 symbols
src/image_io/save.rs12 symbols
src/app/op_queue/imageops.rs11 symbols
src/app/undo_stack.rs10 symbols
src/app/dialog_manager.rs10 symbols
src/app/image_view/image_renderer.rs9 symbols
src/app/image_view/crop_renderer.rs9 symbols
src/app/image_list.rs9 symbols

For agents

$ claude mcp add simp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page