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.1

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.1
File Size Uploaded
luvix-0.1.1.tar.gz 26.1 kB Details

Built distribution (wheel)

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

Total release size: 56.2 kB

Release files / luvix-0.1.1.tar.gz

Download URL luvix-0.1.1.tar.gz
Size 26.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2784db31a0b0197a6002b32402cad0c4eae58c89b83e9bb96b18aa7b79527d5e
BLAKE2b-256 checksum
How to use checksums
56faec02176c396bc3fb9f8f77b121817a4edfb4a0bd727e9813f263b2c69259
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 10, 2026.

Transparency log

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

Download URL luvix-0.1.1-py3-none-any.whl
Size 30.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92fef79e4d86e8c183d4ce1cc5c2a7e8303a59eaf8d20b22481fc2676b03031a
BLAKE2b-256 checksum
How to use checksums
0eacb9dbf82e47a0cac1ec0a2c49ef58a295f0e3cc222231a921a9114bd439eb
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 10, 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

0.1.2

2 release files

This release

0.1.1 This release

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