Changelog

All notable changes. Follows semantic versioning from v0.2.0 onwards.

v0.2.4 April 18, 2026

Faster grain, WebP support

  • Rewrote grain kernel with NEON/SVE2 — 3.8× faster on ARM, 1.6× on x86_64
  • Added WebP input support (with warning for lossy sources)
  • Improved error messages for unsupported colour spaces (CMYK, P3)
  • EXIF orientation is now applied before processing
  • Fixed panic on 1-channel greyscale TIFF with hp5plus profile
  • Fixed halation bounds overflow on odd-pixel-dimension images
  • Fixed --out-dir not creating intermediate directories on Windows
  • Fixed bergcraft profiles show truncating output after first parameter group
v0.2.3 February 11, 2026

Batch mode improvements

  • Added --out-dir flag for batch processing to a target directory
  • Added --format flag to force output format independent of input
  • Progress bar now shows estimated time remaining for batches >10 images
  • Fixed output file being written even when processing fails mid-pipeline
  • Fixed memory not being released between batch items (caused OOM on large batches)
v0.2.2 January 3, 2026

WASM performance, custom profiles

  • WASM module is ~30% smaller after switching to wasm-opt level 4
  • Added --profile-file flag for loading custom TOML profiles
  • Custom profile schema documented in docs/custom-profiles.md
  • Browser editor: added grain and halation sliders
  • Fixed WASM build failing on Node 20 (WASI polyfill issue)
v0.2.1 November 28, 2025

Halation improvements

  • Halation threshold is now configurable via --halation-threshold
  • Added soft knee to halation bloom curve (previously hard cutoff)
  • Slightly adjusted Provia curve in the deep shadows (values below 0.04 linear)
  • Fixed halation being applied after grain instead of before
v0.2.0 October 14, 2025

New grain engine, Ilford HP5 profile

  • Rewrote grain engine using Poisson-disc sampling (replaces FFT noise approach)
  • Per-channel independent grain for accurate colour film structure
  • Added hp5plus B&W profile (Ilford HP5 Plus in D-76)
  • Added bergcraft inspect subcommand
  • 16-bit TIFF output now embeds sRGB ICC profile
  • Breaking: grain parameter values from v0.1 profiles are not compatible — the new engine uses different units. Re-tune any custom grain settings.
v0.1.2 August 30, 2025

Stability fixes

  • Fixed crash on images with embedded ICC profiles other than sRGB
  • Fixed portra400 curve clipping at 0.97 linear in red channel
  • Fixed install script on Alpine Linux (musl libc)
v0.1.0 July 22, 2025

Initial release

  • Initial public release
  • CLI with apply subcommand
  • Profiles: portra400, provia100f
  • JPEG and TIFF input/output
  • FFT-based grain (replaced in v0.2.0)