Skip to main content

Luvix

Tests

Luvix is a CLI toolkit for HDR gain-map images: inspect, split SDR base and gain map, rebuild edited captures, validate, and export flattened HDR TIFFs.

Current release-candidate scope

The tested backend processes Apple HDR gain-map HEIC captures on macOS using ImageIO/Core Image and Swift. It supports inspect, extract, rebuild, validate, inspect-hdr, and export tiff. A 32-bit linear float TIFF with matching source-supported ICC has been validated in Photoshop. The 16-bit PQ TIFF was visually validated with an externally supplied P3 PQ ICC. General JPEG gain-map input, ISO/Ultra HDR interoperability, and arbitrary ICC source profiles are roadmap items, not current supported features.

Quick start (source checkout)

uv sync --extra dev
uv run luvix doctor
uv run luvix inspect ~/Pictures/photo.HEIC
uv run luvix extract ~/Pictures/photo.HEIC --output ~/Pictures/work/photo
uv run luvix rebuild --source ~/Pictures/photo.HEIC \
  --base ~/Pictures/work/photo/base.png \
  --output ~/Pictures/work/photo_rebuilt.HEIC
uv run luvix validate --source ~/Pictures/photo.HEIC \
  --output ~/Pictures/work/photo_rebuilt.HEIC
uv run luvix export tiff ~/Pictures/photo.HEIC \
  --bit-depth 32 --transfer linear --color-space source \
  --output ~/Pictures/work/photo_linear32.tif

For 16-bit PQ output, use a compatible external PQ ICC and explicit reference white:

uv run luvix export tiff ~/Pictures/photo.HEIC \
  --bit-depth 16 --transfer pq --color-space source \
  --reference-white 203 --icc-profile ~/ColorProfiles/P3_PQ_Reference.icc \
  --output ~/Pictures/work/photo_pq16.tif

Do not assume the example profile is bundled. Confirm your exact CLI options with uv run luvix export tiff --help. Input captures are never modified, but HEIC rebuild may re-encode pixels.

Documentation

  • User guide: full command walkthrough, output formats, and troubleshooting.
  • Architecture: gain-map model, color handling, and format constraints.
  • Roadmap: planned JPEG, ISO 21496-1, Ultra HDR, multichannel maps, and color-space expansion.
  • Release checklist: CI, package verification, merge, publish, and install smoke tests.
  • Changelog

Development checks

uv run ruff check .
uv run ruff format --check .
uv run pytest -q
uv lock --check
uv build
uv run --locked twine check dist/*

The native Apple backend requires macOS and swiftc. The Python package itself is cross-platform, but this does not imply the Apple HDR features run on Linux.

License

Apache License 2.0. Do not redistribute proprietary reference ICC profiles or private photographs as part of Luvix.

Metadata

Release files for luvix 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for luvix 0.1.2
File Size Uploaded
luvix-0.1.2.tar.gz 26.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for luvix 0.1.2
File Interpreter ABI Platform
luvix-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 56.2 kB

Release files / luvix-0.1.2.tar.gz

Download URL luvix-0.1.2.tar.gz
Size 26.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c185d848ec250e07d90f66e9a3d870dbc99f0bc12865ed3764339e6aab12bc7a
BLAKE2b-256 checksum
How to use checksums
9299f7781e0b233c09a41235a6b890d9db064444c2e953c7b6b8d3cfdc15a44b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / luvix-0.1.2-py3-none-any.whl

Download URL luvix-0.1.2-py3-none-any.whl
Size 30.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4cdcbdd2dfc610cd2081c41f4a7e38ac55182bfa97b043cd821158624edc29f0
BLAKE2b-256 checksum
How to use checksums
96aefae4d35e9a5303391f351b832faed4eec6b30bc9690b85694331aacc0cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page