Imaging core · Rust

One engine.
Every pixel.

PIXL Engine develops, grades and re-encodes photographs in its own colour science, carries HDR from the sensor to every screen, and writes every modern format, measured against the standards. Every PIXL app is built on it.

Architecture

Decoders in. One pipeline. Every app out.

Proven decoders at the edge, read the way their makers render them. In the middle, PIXL's own pipeline: every pixel in linear PixlRGB floats, one HDR master, one rounding. Each product is a different surface on the same core.

The one rule

It makes no decisions.
It keeps the receipts.

Most image libraries guess. They pick a quality for you, fall back to another codec when one fails, or quietly re-label colours they didn't convert. Every guess is a bug waiting in someone's photo library.

PIXL has no guesses to go wrong. The app decides, the engine does exactly that, and anything impossible is refused with the name of the setting to change.

convert() → report · abridged example
master  peak 575.7 cd/m² (+1.5 stops)
        ceiling: peak · tone map v2
colour  Display P3 base + gain map
        3 channels, −0.02..1.49 stops
grade   white balance 7000 K
        exposure +0.18 · highlights −0.5
loss    1 rounding, one float pass
meta    EXIF · ICC · XMP copied verbatim

refused pixel.depth: 8-bit PixlRGB bands visibly. Write it at 10 bits or more, or convert to Display P3.

01 · Colour science

Colour, owned from the sensor to the screen.

Most editors borrow their colour: a stock camera matrix, a working space built for something else. PIXL measured its own, end to end, and published the space it works in as an open standard.

PixlRGB · open standard

A working space that holds every colour.

PixlRGB is the smallest RGB triangle that encloses every colour the eye can see, and every colour of sRGB, Display P3, Adobe RGB and Rec.2020. Every edit runs in it, so the saturated reds and cyans a camera records are never clipped before you touch them. Point at the map to see which spaces hold a colour.

  • 100% of the visible range, in linear 32-bit float
  • 6% of its area spent on non-colours, against 33% for ACES AP0
  • CC BY-SA specification and ICC profiles, free to implement
Read the PixlRGB standard
-0.10.00.10.20.30.40.50.60.00.10.20.30.40.50.6u′v′460480490500510520540560580600620700D65
Point at the diagram
Spaces

% = share of the visible range (u′v′ area) inside the triangle.

The forest road ungraded.The same road graded: warmer, shadows lifted, highlights pulled, more contrast and vibrance.BeforeGraded
A colourist's toolkit, rounded once. White balance, exposure, tone, contrast and vibrance, each in the space it belongs in. However many you stack, the pixels are rounded once, at the end.
The Display P3 photo re-tagged as sRGB: duller greens.Re-tagged sRGB
The same photo converted to sRGB: the colours as shot.Converted
The difference between the two, amplified eight times: brightest in the saturated foliage.Difference ×8
Converting isn't re-labelling. A P3 photo can be tagged sRGB or converted to it. PIXL makes the app say which, and reports which happened.
02 · HDR pipeline

One master. Every screen.

One render in linear light keeps every highlight the photo holds. From it, PIXL writes HDR for screens that show it and a matching picture for those that don't, from the same pixels.

A street at dusk under a pink sky, with a lit street lamp: an iPhone photo rendered by PIXL's master as a base picture with a gain map, so HDR displays show the sky and the lamp brighter than white.
On an HDR display (Safari, Chrome, an iPhone) the highlights above glow brighter than the page's white: a gain-map AVIF written by PIXL's master. Elsewhere you see its standard picture.
Measured, not guessed

HDR that keeps its colour.

The master measures each photo's own peak, holds it to the ceiling you choose, and tone maps for standard screens along hue lines the eye agrees with: bright saturated colours roll gently toward white without turning.

  • ≤ 0.18° median hue shift in saturated highlights (a per-channel tone map: up to 19.8°)
  • 0.04 stops: a gain-map file rebuilds the master, and never passes its ceiling
  • 0.49 s an HDR preview of a 24 MP edit, from the cached master
Inside the HDR pipeline
03 · Encode and decode

Read exactly. Written smaller.

Every file is decoded the way its makers render it, and written with every encoder setting stated. Sizes are compared at equal measured quality, never at equal "quality numbers".

AVIF · JPEG XL · RAW

Smaller isn't a guess.

With AV1's still-image tuning, PIXL's AVIF is 7–13% smaller than the default tuning at the same perceived quality on photographs, about the size of HEVC there, and 10–20% smaller than HEVC on graphics and HDR. JPEG XL repacks a JPEG 19% smaller and gives the original back to the byte.

  • −19% JPEG → JPEG XL, reversible bit for bit
  • 0.31 s a CR2 to a lossless DNG, mosaic bit-identical
  • 13 parsers fuzzed under AddressSanitizer
Inside the codecs
File size against SSIMULACRA2 on a 24 MP photograph: AVIF with the still-image tuning reaches each score with a smaller file than AVIF's default tuning, about the size of x265 HEIC.File size against SSIMULACRA2 on a 24 MP photograph: AVIF with the still-image tuning reaches each score with a smaller file than AVIF's default tuning, about the size of x265 HEIC.6070809002468101214file size, MBSSIMULACRA2 (higher is better)AVIF, defaultAVIF, IqHEIC (x265)
A 24 MP photograph, 4:2:0, speed 6. Higher and further left is better. How it was measured →
RAW

A sensor mosaic is not an image.

Turning a RAW into a picture is a series of choices, and PIXL leaves every one to the app: a scene-linear develop for editing into headroom, a display-ready one, or the camera's own preview. For archives, RAW to DNG is lossless and keeps the mosaic bit for bit, with PIXL's own DNG 1.7.1 reader and writer.

The Canon CR2 developed in Scene mode, linear light, converted to Display P3 for the screen.Scene · linear
The same CR2 in Develop mode: display-ready sRGB.Develop · display
The camera's own embedded JPEG preview, warmer and more contrasty.Camera preview
One 35.6 MB Canon CR2, three ways. Scene and Develop are PIXL's own develop of the mosaic, from the same white and the same camera matrix; the preview is the camera's own JPEG, read in 92 ms. PIXL never picks one for you.

Everything an editor needs.

Every modern format in and out, a full grading toolkit, lens and retouch tools and on-device AI, with metadata copied verbatim and never "fixed".

Formats

  • Camera RAWCR2, CR3, ARW, NEF, RAF, RW2, ORF and more through LibRaw, developed by PIXL
  • DNGPIXL’s own DNG 1.7.1 reader and writer: every compression, opcodes, lossless out
  • AVIF8, 10 and 12-bit, HDR and gain maps, grids to 102 MP and beyond
  • HEICread exactly as Apple renders it, iPhone gain maps included
  • JPEG XLlossy, lossless, 32-bit float, and the bit-exact JPEG repack
  • JPEGlibjpeg-turbo, with Ultra HDR gain maps in and out
  • PNG · TIFF · WebP16-bit and HDR PNG, float TIFF, lossy and lossless WebP

Grading operations

  • White balance
  • Exposure, lift, gamma, gain
  • Highlights, shadows, whites, blacks
  • Point and parametric curves
  • Perceptual HSL
  • HSL bands
  • Vibrance with skin protection
  • Colour qualifiers
  • ASC CDL
  • .cube LUTs
  • Noise reduction
  • Sharpening
  • Clarity and texture
  • Dehaze
  • Vignette
  • Seeded grain
  • Colour-grading wheels
  • Channel mixer
  • Defringe
  • Add colour
  • Masks and layers

Beyond the grade

  • PixlRGB colour science: fitted camera colour, the visible-range guard, gamut compression
  • One HDR master: PQ, HLG, gain maps and floats from one render
  • RAW develop in scene-linear light, with four highlight modes
  • Lens corrections: distortion, fisheye, lateral CA, vignetting, flat-field
  • Upright perspective, with automatic suggestions
  • Heal, clone and content-aware fill; red and pet eye
  • On-device AI: super resolution, denoise, JPEG restore, deblur, subject and prompted masks

Use it from

  • Rust · the engine itself
  • Node & Electron · macOS (Apple silicon and Intel) and Windows x64, what the apps use

Measured, not claimed.

Real files, real conversions, on an Intel i7-14700F with 8 threads. Nothing here is copied from a datasheet.

Conversion times and sizes
ConversionInOutTime
Canon CR2 → DNG, whole sensor (lossless)35.6 MB28.3 MB0.31 s
JPEG → JPEG XL repack, reversible to the byte8.0 MB6.5 MB—
16-bit PNG → AVIF 10-bit 4:4:4, Iq q90104 MB10.8 MB3.6 s
24 MP JPEG → AVIF, Iq q70, speed 68.04 MB4.30 MB1.9 s
102 MP Fujifilm RAF → scene-linear develop101.7 MP1.49 GB peak4.9 s
Master cache → 2048 px HDR preview (JPEG XL, PQ)24 MP1.2 MB0.49 s
Built on it

Two apps today. The same core under both.

Badge

Say what's underneath.

Products built on the engine can carry the Powered by PIXL Engine badge on store pages, download pages and splash screens.

Powered byPIXL ENGINE
PIXL ENGINE

Who it's for

Build on PIXL Engine.

Licensing, partnerships and investment: hello@pixlfoundation.com

Get in touch