An open API service indexing awesome lists of open source software.

https://github.com/ozwaldorf/lutgen-rs

Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes.
https://github.com/ozwaldorf/lutgen-rs

cli color-grading colorscheme hald-clut linux-desktop rice rust theming wallpaper

Last synced: 2 months ago
JSON representation

Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes.

Awesome Lists containing this project

README

          






lutgen-rs



crate
crate
crate
build
ci



A blazingly fast interpolated LUT utility for arbitrary and popular color palettes. Theme any image to your desktop colorscheme!

---

## Example Output

### Hald Cluts

Catppuccin Mocha

Gruvbox Dark

Nord

### Color Corrections

Original Image

Catppuccin Mocha

Gruvbox Dark

Nord

## Lutgen CLI

### Package Repositories

[![Packaging status](https://repology.org/badge/vertical-allrepos/lutgen.svg?exclude_unsupported=1)](https://repology.org/project/lutgen/versions)

### Install from source

```bash
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
cargo install --path crates/cli
```

### Crates.io

```bash
cargo install lutgen-cli
```

### Documentation

Detailed documentation, examples, and more are available on [The Lutgen Wiki](https://ozwaldorf.github.io/lutgen-rs)

## Lutgen Studio

Lutgen Studio

### Package Repositories

[![Packaging status](https://repology.org/badge/vertical-allrepos/lutgen-studio.svg?exclude_unsupported=1)](https://repology.org/project/lutgen-studio/versions)

### Required Dependencies

(For this example, Ubuntu packages are listed)

- libxcb-render0-dev
- libxcb-shape0-dev
- libxcb-xfixes0-dev
- libxkbcommon-dev
- libssl-dev
- wayland

### Install from source

```bash
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
cargo install --path crates/studio
```

### Crates.io

```bash
cargo install lutgen-studio
```

## Rust Library

See the latest rust documentation on [docs.rs/lutgen](https://docs.rs/lutgen)

## Nix flake

A nix flake is available providing both lutgen and lutgen-studio packages.
The flake can be easily run via:

```bash
nix run github:ozwaldorf/lutgen-rs
nix run github:ozwaldorf/lutgen-rs#lutgen-studio
```

Cache is provided via https://garnix.io

### Development Shell

A development environment is also provided in the flake:

```bash
git clone https://github.com/ozwaldorf/lutgen-rs
cd lutgen-rs
nix develop

# inside dev shell
cargo run -r --bin lutgen
cargo run -r --bin lutgen-studio
```

## Planned features

- [ ] Interpolation for more accuracy when correcting with low level luts (<16)
- [ ] Hardware acceleration for applying luts to images

## Sources

- Hald Cluts: https://www.quelsolaar.com/technology/clut.html
- Editing with Hald Cluts: https://im.snibgo.com/edithald.htm
- Sparse Hald Cluts: https://im.snibgo.com/sphaldcl.htm
- RBF Interpolation: https://en.wikipedia.org/wiki/Radial_basis_function_interpolation
- Shepard's method: https://en.wikipedia.org/wiki/Inverse_distance_weighting
- Oklab Colorspace: https://bottosson.github.io/posts/oklab/

## Special Thanks

- [Gingeh](https://github.com/Gingeh) for the initial inspiration and imagemagick approach
- [The Catppuccin Org](https://github.com/catppuccin) for continual feedback and support along the way
- [Stonks3141](https://github.com/Stonks3141) for maintaining the Alpine Linux package
- All the nixpkgs maintainers