Skip to main content

ChromaPakZ

ChromaPakZ — lossless RGBD video encoder

A lossless RGBD video codec (クロマパックZ): a single ordinary .webm that carries an 8-bit RGB track alongside bit-exact 16-bit auxiliary signals — depth, object IDs, packed normals, or any other W×H uint16 plane — all kept in sync. Its design goals:

  • a legacy player shows plain RGB — the depth rides in extra tracks an ordinary player ignores;
  • it uses only royalty-free codecs (VP9 / libvpx, BSD-licensed) — no GPL encoder, no patent pool;
  • it runs in the browser through WebCodecs — no WASM on Chromium, with a small libvpx-WASM fallback for engines whose native path isn't bit-exact;
  • each 16-bit signal is packed with a single reversible map, not a stack of per-range slices to manage;
  • multiple lossless uint16 signals (depth, object IDs, …) share one container, frame-aligned.

The same format is implemented three times — browser (WebCodecs), C++ (libvpx), and Python — and a file written by any one of them decodes bit-exactly in the other two.

Quickstart

# Python — self-contained wheels (libvpx is linked in; no build tools needed)
pip install chromapakz
python -c "import chromapakz as cz; print(cz.inverse_depth_spec(0.3, 9.0))"
#   cz.encode({"depth": u16}, specs={"depth": cz.inverse_depth_spec(near, far)}, rgb=rgba)

# Browser — streaming encode/decode, WebCodecs with a per-operation WASM fallback (docs/API.md)
npm install chromapakz
#   import { createEncoder, createDecoder } from 'chromapakz';
#   createEncoder({ signals: [{ id:'depth', near, far }, { id:'objectId' }] })
#   createDecoder(bytes).readFrame() -> { rgb, signals: { depth: { u16 }, objectId: { u16 } } }

# Browser demo — encode→file→decode→view, entirely in-page (no WASM on Chromium)
python3 -m http.server 8000      # from the repo root, then open http://localhost:8000/demo/

Building from a checkout instead (C++ CLI, or a platform with no wheel) needs libvpx dev headers, pkg-config, CMake and a C++17 compiler — brew install libvpx pkg-config cmake ninja, or apt-get install libvpx-dev pkg-config cmake ninja-build g++:

pip install .                    # pip compiles the native core via CMake and bundles it

cmake -S . -B build && cmake --build build -j     # or: native/build.sh
./build/dccli selftest
./build/dccli decodesignal clip.webm depth depth.u16

How it works

Layer Choice
Container WebM / Matroska, multi-track. The primary RGB stream is track 1, so any player shows it; depth tracks are ignored by players that don't know them. A Duration, a Cues index, and ~1 s RGB keyframes make it seekable in <video> (depth stays single-keyframe — it isn't what <video> plays).
RGB tracks 8-bit VP9, YUV 4:2:0, BT.709 full-range — normal, viewable video streams. One per camera for stereo / multi-camera rigs (rgbs); legacy readers see the primary.
Lossless signals Each signal: optional quant (e.g. inverse-depth for float depth) → uint16 → triangle-fold 8+8 → two VP9 lossless tracks. Add object IDs, labels, etc. as additional signal pairs.
Metadata v3 — rgbs[] (every RGB stream) + signals[] (each signal: id, tracks, scheme, quant).

Inverse-depth quantization spends precision where it matters (near surfaces), matching how stereo/ToF sensors behave. Float can't be stored losslessly in 16 bits, so this quantization is the format's defined precision boundary; everything below it is bit-exact.

Triangle-fold is the key trick. Split a 16-bit value into a high and low byte the naive way (d & 0xFF) and the low byte becomes a sawtooth — a hard 255→0 cliff every 256 levels. Those manufactured edges defeat any spatial predictor, since the codec sees a discontinuity wherever the depth simply crosses a byte boundary. Reflecting every other segment (lo = (high & 1) ? 255 - lo : lo) turns that sawtooth into a continuous triangle wave with no cliffs, so VP9's predictor sees smooth gradients again. One reversible map, nothing to manage.

Full color range is signaled in the bitstream (VP9E_SET_COLOR_RANGE), so a range-honouring decoder returns the packed luma unscaled instead of applying a limited-range conversion that would corrupt depth.

Why these choices (measured, not assumed — Chromium 148)

WebCodecs has no "lossless" switch, so every claim here is a measurement from experiments/webcodecs-lossless:

  • VP9 at QP 0 is bit-exact through WebCodecs; AV1 is not (AV1 quantizer:0 drifts by up to ~257). So VP9 carries depth; AV1 is fine only for the lossy RGB track.
  • Triangle-fold beats a naive byte-split by ~13%, and inter-coding cuts another ~52% (and stays bit-exact across the GOP) — most of what looks like incompressible LSB noise is actually static fold structure that temporal prediction removes.
  • 8+8 beats high-bit-depth. 10-bit VP9 encode is available in browsers, but a 10+6 split is ~4% worse than 8+8 and narrows browser reach, so 8+8 wins on both counts.

docs/EVALUATION.md is the full due-diligence record: every codec/container/packing alternative considered, the constraint that eliminates each, a head-to-head benchmark (ChromaPakZ beats FFV1, PNG-16 and x264 on the same 16-bit depth, beats x265/HEVC at matched 11-bit precision, and lands within 1–2% of LZMA), cited licensing/browser facts, and a sensitivity analysis of when a different choice would win.

What it costs

Lossless 16-bit depth of a real sensor is noise-bound: the low bits are largely sensor noise, and lossless coding must preserve every bit of it. On real Kinect data (TUM RGB-D fr1/desk, 30 frames at 640×480, 78% valid):

track bits / pixel
RGB 0.19
depth (hi + lo) 0.50 + 4.35
total 5.04

— depth round-tripped bit-exact. Reproduce with examples/tum_fr1desk.py (see its header for the one-line dataset fetch).

The one knob that moves this is the quantization precision relative to the sensor's noise floor. Spread depth across all 65,535 codes and each step is far finer than the noise, so the codec dutifully archives the randomness bit for bit. Coarsen the grid to match the noise and the cost collapses — with no loss of real signal. The sweep below is measured on the synthetic benchmark clip (make_synthetic_rgbd.py, range ≈0.9–7.8 m) — a separate clip from the TUM numbers above:

effective bits depth precision at 7.8 m depth bpp
16 (default) 0.9 mm per step 13.2
12 14 mm per step 9.7
11 28 mm per step 8.1
10 56 mm per step 6.9

(Reproduce the bpp column with python python/benchmark_codecs.py.) levels is a first-class, metadata-stored parameter (default 65536 = full 16-bit) shared by all three implementations, so reduced-precision files reconstruct identically everywhere. Set it with chromapakz-ingest --depth-bits N or the levels= argument.

Codec rate-distortion

This is a separate axis from precision: how faithfully the codec carries whatever quantized depth you give it. PSNR here is the encode→decode path measured against the source codes.

ChromaPakZ codec rate-distortion

The lossless codecs all sit on the ∞-dB band — they reproduce depth exactly and differ only in size, where ChromaPakZ (VP9) is smallest, just under FFV1, with PNG-16 well behind. The blue curve is ChromaPakZ's own near-lossless option (sweeping the VP9 quantizer trades fidelity for size), but the default operating point is QP 0, bit-exact. Regenerate with python python/plot_rd.py.

A note on ffmpeg. Decoding ChromaPakZ files with ffmpeg (or any conformant VP9 decoder) is bit-exact. But encode with ChromaPakZ, not the ffmpeg CLI: ffmpeg -c:v libvpx-vp9 -lossless 1 is lossless yet ~3× larger (≈39 vs ≈13 bpp) — same library, far worse coding decisions, and no flag tested closes the gap. python/plot_rd.py therefore uses the real WebCodecs encoder for the VP9 numbers.

Cross-language implementations

All three read and write the identical .webm, verified bit-exact in every direction (browser ⇄ C++ ⇄ Python), and produce standard files — ffprobe reports matroska,webm with one RGB stream plus two VP9 streams per lossless signal, and ffmpeg decodes track 0 as plain RGB when present.

Format schema: docs/FORMAT.md. API: docs/API.md.

Surface Codec Build
Browser WebCodecs VP9 none — src/chromapakz.js, src/signals.js, src/webm.js. Multi-signal streaming API.
C++ libvpx VP9 CMake → build/_core + dccli (dc_encode_multi, dc_decode_signal)
Python ctypes → C++ pip install . — encode(), create_encoder(), decode(), parse_metadata()
./build/dccli encodergbd rgb.rgba depth.u16 W H N fps near far kbps out.webm
./build/dccli decodesignal clip.webm objectId ids.u16
./build/dccli decodergb  clip.webm rgb.rgba

Real-data ingestion

Shipped in the wheel, so these work straight after pip install chromapakz:

  • chromapakz.ingest — load depth (.exr / .npy / .npz / 16-bit PNG·TIFF / raw) and optional RGB (image sequence, video via ffmpeg, or array), auto-derive inverse-depth near/far from percentiles, encode, and report real per-track bpp. Invalid pixels (<=0/NaN) map to code 0. Importable (from chromapakz.ingest import encode_clip) or as the chromapakz-ingest command: chromapakz-ingest --depth 'd_*.exr' --rgb 'rgb_*.png' -o clip.webm --report --verify
  • chromapakz.webm_inspect — pure-Python EBML parser for the per-track byte breakdown (no native deps).

Repo-only dev scripts under python/:

  • make_synthetic_rgbd.py — a realistic RGBD generator (smooth surfaces, depth edges, disparity-domain noise, occlusion shadows, dropout holes) for when you don't have a sensor handy.
  • benchmark_codecs.py, plot_rd.py — the benchmark and rate-distortion plots.

How it relates to RealSense / Kinect

Depth-camera ecosystems already split into two camps; ChromaPakZ takes the best of both.

  • Intel RealSense colorizes 16-bit depth into an RGB image (Hue, ~10.5 effective bits) and encodes that with a stock H.264/H.265 codec. Great for streaming and reuse of hardware codecs, but lossy — unfit for ground-truth or archival depth.
  • Kinect / RGBD datasets store depth raw or as 16-bit PNG. Azure Kinect even records to Matroska with a 16-bit depth track (lossless via per-frame PNG); TUM RGB-D, NYU and ScanNet use 16-bit PNG sequences. Bit-exact, but intra-only and large — no temporal compression.
RealSense colorize Kinect / PNG ChromaPakZ
bit-exact 16-bit depth ✗ (lossy) ✓ ✓
RGB plays in any legacy player ✓ — ✓
inter-frame (temporal) compression ✓ (lossy) ✗ ✓ (lossless)
royalty-free, browser-native (no WASM on Chromium) — — ✓

That Azure Kinect already chose Matroska — WebM's basis — is telling. ChromaPakZ differs by compressing depth losslessly (VP9 + triangle-fold, inter-coded) rather than storing raw or intra PNG, and by running in the browser. Sources: RealSense colorized depth, Azure Kinect record format.

Repository layout

src/          chromapakz.js, signals.js, webm.js, chromapakz-core.js
native/       chromapakz.{h,cpp}, dccli.cpp
python/       chromapakz/ (pip package: __init__.py, ingest.py, webm_inspect.py)
              make_synthetic_rgbd.py, benchmark_codecs.py, plot_rd.py   (repo-only dev scripts)
demo/         index.html                     in-browser encode→decode→view
examples/     tum_fr1desk.py
experiments/  webcodecs-lossless/            run.mjs, smoke-demo.mjs, headless tests
docs/         FORMAT.md, API.md, EVALUATION.md, RELEASING.md
tests/        test_*.py (pytest) + *.test.mjs (node --test), both glob-discovered; fixtures/

CI builds and tests on Linux + macOS and runs the in-browser VP9-lossless probe in headless Chromium; docs/RELEASING.md covers wheels and PyPI publishing. The full design rationale and benchmarks are in docs/EVALUATION.md.

Status & limitations

Working end-to-end and verified across all three implementations. Honest caveats:

  • Browser support is engine-specific (measured, EVALUATION.md §11): native WebCodecs lossless encode is Chromium-only today (WebKit lacks WebCodecs' quantizer mode; Firefox's QP 0 isn't lossless); native lossless decode works on Chromium and WebKit/Safari, while Firefox decodes VP9 to color-converted BGRX. Where native can't be trusted, the library transparently falls back to a bundled libvpx-WASM codec, chosen per operation by a cached runtime probe — so a decode-only browser (e.g. Safari) downloads only vp9-decode.wasm and never the larger encoder, and vice-versa. Force it with backend: 'webcodecs' | 'wasm' (default 'auto'); see docs/API.md. These are Playwright engine builds — reconfirm on shipping browsers before hard claims.
  • "Royalty-free" reflects the AOMedia/Google position on VP9; Sisvel operates pools that dispute it.
  • An auto precision picker (estimate the sensor noise floor to choose --depth-bits) is future work.
  • Network byte streaming is supported via onChunk on encode and createDecoder() + push()/finish() on decode; Python has the same streaming encoder as create_encoder(), for live recording. See docs/API.md.

Metadata

Release files for chromapakz 0.7.0

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

Source distribution (sdist)

Source distribution for chromapakz 0.7.0
File Size Uploaded
chromapakz-0.7.0.tar.gz 2.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for chromapakz 0.7.0
File
chromapakz-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
chromapakz-0.7.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
chromapakz-0.7.0-cp314-cp314-macosx_13_0_arm64.whl CPython 3.14 CPython 3.14 macOS 13.0+ ARM64 Details
chromapakz-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
chromapakz-0.7.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
chromapakz-0.7.0-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
chromapakz-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
chromapakz-0.7.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
chromapakz-0.7.0-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
chromapakz-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
chromapakz-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
chromapakz-0.7.0-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
chromapakz-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
chromapakz-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
chromapakz-0.7.0-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details
chromapakz-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
chromapakz-0.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
chromapakz-0.7.0-cp39-cp39-macosx_13_0_arm64.whl CPython 3.9 CPython 3.9 macOS 13.0+ ARM64 Details

Total release size: 16.0 MB

Release files / chromapakz-0.7.0.tar.gz

Download URL chromapakz-0.7.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
fa671bc7dd6afc53ff248db22a6d76c7d4489a568d65c4f35727571f2e1f4df8
BLAKE2b-256 checksum
How to use checksums
58186dabe9e9dc03ec27eca940b3d03658e43d8b480017983153c186708a1a53
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1e9da34a1c9117bc93469cd098a98e072b1e8d306bf5bf3994f6552c68e851ee
BLAKE2b-256 checksum
How to use checksums
19f456ea110d2bce0bf09698529e3d51bce522538f394fc334790aa6fbbdf0eb
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.14 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bd75278efd5327ab31752c033f4a91d596b4a0a9c9edba9fad6df6949f093550
BLAKE2b-256 checksum
How to use checksums
d434979a98f2f28c73fe3744f1fb28a77d553aa7125ebbfba97181619bde24a0
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp314-cp314-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp314-cp314-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.14 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
80f5a76fb280d612783ebae53381e9c5bd407182d589c7db473ccdb8287b2ea3
BLAKE2b-256 checksum
How to use checksums
8d9da61e7ceaf06d5b2116417ddc0ce2247146bc5fbe3568fbe9f2c720bc465a
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
915d757c0f192675ef118ea7e48263ccd2cf42d97bffcf0a55563949e696bc8a
BLAKE2b-256 checksum
How to use checksums
cc3907b73d349915329435a7ad0c951a843a403d41d62fb87be4873977fb7b5b
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d27e337357151fa25e352eb1b960304c16cf5271d9ba114a571f28656b646ee9
BLAKE2b-256 checksum
How to use checksums
7730352d9ec74f2f621e2dfb5deda1b349755c62849fbdfb469910d76bd02899
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp313-cp313-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp313-cp313-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
abc40c65c1e5e2f10ea3a69956eb90740399d25f76f60028ae825d1417c47ba7
BLAKE2b-256 checksum
How to use checksums
3559b979cd35e20ece1f419ad870b18c6e862568cd03f255859c36576ecef25e
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a00df0521da93b73c96f72a03c98d6d104b1f16e9e86699f1425b524261ea11c
BLAKE2b-256 checksum
How to use checksums
3eeb4ad1caca4d1d18de0c9134a31f260ccad9860c09ec0b2633041ec66a882a
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2ef59d5a9cd713af9c9dcc7e57eded91372213a9f55c055839c15066ad70b05d
BLAKE2b-256 checksum
How to use checksums
2b270de85a10c561fed41045d29bfdedcfce6c3d2996cc2675221f715f4421f3
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp312-cp312-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp312-cp312-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
75c8554501c92eacfd305a97f88ccdb5783b5ae3bb0ff78130425da238697ae8
BLAKE2b-256 checksum
How to use checksums
33fbc6604259f7ca4e42620452d80ce40bfecde6373fe26f35fe6e90cca05e9b
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fdbb16df4d547f451824654512e0210f44ff4f56d17eae4816a6ae87d4606e2b
BLAKE2b-256 checksum
How to use checksums
380a44105ecef4fa65f7f3ac100418d2cad6daf27a78281a0695aa0ec48afec7
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0c1f59a9479e193a709ba13c03e14ccd63400566a137ab60de5a510cb6a1f6b0
BLAKE2b-256 checksum
How to use checksums
81887ee2a0f44dabfa81426d580d385a6447ad77aca6a6cb4adf41cc01fb736a
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp311-cp311-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp311-cp311-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
f3cd74a4d30874d0115b51a5dfed488d68a465c1c2f88fd0c86335d4f14efaf1
BLAKE2b-256 checksum
How to use checksums
2b4e7bfacd53e367700ec5cbe7719ea9aedae6151ff5cf8d09e29d3acbd924bf
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d395e503acfa136b6178e4ad87a4b078506f161b7488476caa92c723d81bd5e9
BLAKE2b-256 checksum
How to use checksums
2f1200e981b57d1bae03d285c6c871909aff77654e5ac6b426855203019dd6cb
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a9b0d5ca40e23e2f0ed0c3780a94ba2b7749917dc60819b70d364aba362b7a0d
BLAKE2b-256 checksum
How to use checksums
b251b537d53263a390db6af13aa9779d7e2d74258d38f7615fd2370f691001ac
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp310-cp310-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp310-cp310-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
724796e59dcd1d482f5703aea90ed3067a3a41a8a8bc55c03ce5fc70ef2d5b4e
BLAKE2b-256 checksum
How to use checksums
567384c05e12c4db101d7ac69d90c88b1425082037ef69ac04c8e7dd261fc9e5
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL chromapakz-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 855.8 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b062dd91da27797557ff8fd8f995b39b6f12feb41d1679db3857f6d02925f2f9
BLAKE2b-256 checksum
How to use checksums
099188a3928d227ec80abe012d00b05843f1167f23f24cf9f45a8a4f7861b575
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL chromapakz-0.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 849.3 kB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d8eda4c90aa0dc0c5a3912cd8202b2b7c243975aaf73c35b1310205ea9ff3fd7
BLAKE2b-256 checksum
How to use checksums
217902a21d564ea07dd04e077975f6d9b516f22454c5273294bde5cc76ad00b9
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 Aug 8, 2026.

Transparency log

Release files / chromapakz-0.7.0-cp39-cp39-macosx_13_0_arm64.whl

Download URL chromapakz-0.7.0-cp39-cp39-macosx_13_0_arm64.whl
Size 582.9 kB
Tags CPython 3.9 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
b29a23a6f601b79b73b328934c72b3e9f1a95ace7b8ff2cab48e753cbf6cb840
BLAKE2b-256 checksum
How to use checksums
8a56b86094a99864e5cbe6b305ae0269caeb778b015ea37618285a7e52b7d8ba
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 Aug 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.1

19 release files

This release

0.7.0 This release

19 release files

0.3.0

19 release files

0.2.0

16 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