Skip to content
NicoNexPublic

About

The colorist's workbench for 3D LUTs: build looks on stills (JPEG/RAW), audition whole LUT libraries, chain/mix LUTs and convert them between log profiles. GPU-accelerated, exact color math, .cube/.vlt/HALD export. Rust + GTK4.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

35 Commits

Folders and files

Repository files navigation

VibingLUT app icon

VibingLUT

The colorist's workbench for 3D LUTs.

Build looks on real images, compare entire LUT libraries side by side, combine LUTs, and convert them between log profiles, all on the GPU and with exact colour maths. Export to Resolve, Premiere, Final Cut, OBS, photo editors or straight to camera. Free, open source, native Linux desktop app.

License: GPL-3.0 Rust GTK4 + libadwaita GPU: Vulkan · Metal Formats

VibingLUT grading a seaside photo with a before/after split, scopes and colour controls

Why VibingLUT?

Every colorist ends up with the same problems: dozens of LUTs nobody remembers, looks built for the wrong log curve, and a full NLE to open just to bake or audition one cube.

VibingLUT is a dedicated LUT workbench. Grade a still with professional tools and get a mathematically exact LUT out of it. Audition your whole collection on the same frame. Chain or mix LUTs, and retarget them between log profiles: a look built for ARRI LogC4 can run on Sony S-Log3, and a Fujifilm F-Log LUT can run on Panasonic V-Log or Rec.709. The results go to your grading suite, your editor or your camera.

  • Look development on real images. Open a frame grab, a JPEG or a camera RAW, grade it, and press Ctrl+E.
  • What you see is what you export. The preview and the exported LUT come from the same GPU code, and the LUT is evaluated exactly at every lattice point.
  • Fits any pipeline. 33³/65³/129³ .cube, Panasonic .vlt and HALD CLUT for grading suites, editors, photo tools and on-set or in-camera monitoring.
  • Native and fast. Rust + GTK4/libadwaita, GPU-accelerated through Vulkan (Metal on macOS), no Electron and no browser engine.

Features

🎨 Grade: build your look

  • White balance on the CIE daylight locus with CAT16 chromatic adaptation.
  • Tone: exposure, contrast, highlights, shadows, whites and blacks in log space.
  • Colour: saturation, vibrance, and saturation of shadows and highlights, computed in OKLab / OKLCh, a perceptually uniform colour space.
  • Primary colour wheels: lift, gamma, gain and offset, each with a luma control (double-click to reset).
  • Selective colour: hue, saturation and luminance for reds, oranges, yellows, greens, teals, blues, purples and magentas, with smooth bands that never tear gradients.
  • Curves: master + R/G/B, monotone (Fritsch–Carlson) so they never overshoot.
  • Stack LUTs after the grade, each with its own intensity. They are previewed live and baked into the export.
  • Bypass any section with its eye toggle to compare with and without it.
  • Live scopes: histogram, waveform and vectorscope.
  • Before / after split that you can drag across the image.

🗂️ Compare LUTs: your whole library at a glance

Compare LUTs view: a gallery of LUT thumbnails rendered on the same photo

Point VibingLUT at a folder (sub-folders included) and every LUT is rendered on your photo as a thumbnail, with tetrahedral interpolation on the GPU. You can search by name, filter by sub-folder, and click a thumbnail to see it full size with a before/after split. .cube, .vlt and HALD .png LUTs are all recognised, with a small badge for each format.

🧪 LUT Lab: combine and convert LUTs

LUT Lab converting a Fujifilm F-Log2 C LUT for use on a Standard picture profile

  • Chain LUTs one after another, or mix them as a weighted average in OKLab, each with its own intensity.
  • Retarget a LUT to another camera profile. Tell the Lab which profile a LUT was made for and which signal you will use it on. The conversion is analytic: it uses the manufacturer log curves and gamut matrices, not a lookup approximation.
    • Use Fujifilm's F-Log / F-Log2 / F-Log2 C film simulation LUTs on a Panasonic in V-Log, or on a Standard profile.
    • Turn a Rec.709 look into a V-Log, S-Log3 or C-Log3 LUT, and back.
  • The source profile is detected from vendor file names such as FLog2C_to_ETERNA….
  • A plain-language summary tells you exactly what the exported LUT will do.

🔬 Test chart: see what a LUT really does

Test chart showing a LUT applied to grey ramps, a hue sweep and a ColorChecker

Press T to swap the photo for a synthetic chart made of grey ramps, a full hue sweep and the 24 ColorChecker patches. Neutrals that drift, hues that bend and skin tones that shift become obvious instantly, in every view.

📤 Export

.cube is the universal 3D LUT format, read by almost every grading suite, editor, monitor and camera that loads LUTs. Pick the size your target supports:

Target Format Size
Cameras, monitors, recorders, OBS .cube 33³
Grading and editing (Resolve, Premiere, Final Cut, Nuke…) .cube 65³
Maximum precision .cube 129³
Panasonic VariCam / Lumix (native format) .vlt 17³
Photo editors, GIMP, ImageMagick, ffmpeg haldclut HALD CLUT .png (16-bit) 64³
Identity HALD for external tools HALD .png 64³

Supported camera profiles

Grade from, export for, and convert between:

Maker Profile
Any camera Standard · Rec.709 (Photo Styles such as Standard, Vivid, Natural…)
Panasonic V-Log
Sony S-Log3 · S-Gamut3.Cine, S-Log3 · S-Gamut3
Canon C-Log3
Fujifilm F-Log, F-Log2, F-Log2 C
Nikon N-Log
ARRI LogC3 (EI 800), LogC4
Blackmagic Film Gen 5
DJI D-Log
RED Log3G10
Apple Apple Log

Photos in: JPEG, PNG, TIFF and camera RAW (RW2, CR2, CR3, NEF, ARW, RAF, ORF, DNG, PEF, SRW and more, via rawler). RAW files are developed to scene-linear light, so switching the input profile re-encodes them exactly, with no second decode.


How it works

  1. Open a photo: drag it in, press Ctrl+O, or right-click it in your file manager and choose Open With → VibingLUT.
  2. Pick the input profile: Standard for normal Photo Styles, or the log profile you shoot in.
  3. Grade: use the wheels, curves and selective colour, stack existing LUTs, and check the scopes and the test chart.
  4. Export: Ctrl+E writes a 33³ .cube, which works almost everywhere. Use the export menu for 65³ or 129³ .cube, VLT or HALD.

Using it with a Lumix (S9, S5 II, GH7…)

Export the 33³ .cube (or 17³ .vlt), copy it to the SD card, and load it as a Real Time LUT from the camera menu. Lumix cameras can apply a LUT to any Photo Style, so a LUT graded on a Standard JPEG works on Standard, Vivid and the others, not only on V-Log.


Under the hood

VibingLUT keeps colour handling exact and avoids shortcuts:

  • Exact bake. The grade is evaluated directly at every lattice point of the cube. The GPU preview and the CPU reference are tested against each other.
  • Tetrahedral interpolation everywhere a LUT is applied, on the GPU and the CPU.
  • CAT16 white balance, OKLab / OKLCh colour work, a C¹-continuous gamut fit and Fritsch–Carlson monotone curves.
  • Manufacturer log curves and gamut matrices, derived from the published primaries in double precision. A neutral, hue-preserving view transform maps scene-linear light to display.
  • Tested maths. Unit tests cover round trips between every pair of profiles, identity bakes, chain and mix semantics, LUT retargeting and format readers.
  • Separate engine. vibinglut-core has no UI dependency, so other front-ends (CLI, plug-ins…) can reuse it.
core/   vibinglut-core: colour science, profiles, LUT I/O, LUT Lab, GPU engine (wgpu + WGSL)
gtk/    vibinglut: GTK4 / libadwaita desktop app (Relm4)
po/     translations (gettext)

Install

Arch Linux

make arch                       # builds a package from the committed HEAD
sudo pacman -U packaging/arch/vibinglut-*.pkg.tar.zst

From source (any Linux)

You need Rust (stable), GTK ≥ 4.20, libadwaita ≥ 1.9, gettext and a Vulkan driver.

make run FILE=photo.RW2         # debug build, optionally open a photo
make release                    # optimised build
sudo make install               # installs to /usr/local; use PREFIX=~/.local for a user install

Other targets: make test, make check (format, clippy and tests), make pot (refresh translations), make clean.

macOS

The GPU engine has a native Metal backend and the app uses only cross-platform GTK. macOS builds from source are possible, but they are not tested or packaged yet.


Keyboard shortcuts

Action Shortcut
Open photo Ctrl+O
Export LUT (33³ .cube) Ctrl+E
Before / after split \
Test chart T
Grade / Compare LUTs view Alt+1 / Alt+2
Search LUTs Ctrl+F
Preferences Ctrl+,
All shortcuts Ctrl+?

Translations

The interface is in English, with an Italian translation. Translations use gettext: copy po/vibinglut.pot to po/<language>.po, translate it, and make picks it up automatically. Pull requests for new languages are welcome.

FAQ

Will my exported LUT match the preview exactly? Yes, within the precision of the chosen lattice size. The preview and the export run the same code, and a test checks that a 65³ bake reproduces the direct grade.

Can I use LUTs made for another camera? Yes, that is what the LUT Lab is for. Add the LUT, tell it which profile the LUT was made for, choose the signal you will use it on, and export.

Does it need a powerful GPU? No. Any Vulkan-capable integrated or discrete GPU is enough, and the gallery renders thumbnails one at a time so the interface stays responsive.

Is it free? Yes. VibingLUT is free software under the GPL-3.0.

License

GPL-3.0-or-later.

Keywords: colorist tool, LUT manager, LUT editor, 3D LUT creator, cube LUT generator, create LUT from photo, Lumix Real Time LUT, V-Log to Rec.709, convert LUT between log profiles, Fujifilm F-Log LUT converter, HALD CLUT, VLT, color grading software for Linux, GTK4, libadwaita, Rust, Vulkan.

About

The colorist's workbench for 3D LUTs: build looks on stills (JPEG/RAW), audition whole LUT libraries, chain/mix LUTs and convert them between log profiles. GPU-accelerated, exact color math, .cube/.vlt/HALD export. Rust + GTK4.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages