← Guides

macOS · Color Management

ICC Profile Tools.
Build. Calibrate. Verify.

Build matrix/TRC display profiles, calibrate from a .cube LUT, and inspect, compare, and assign color profiles — natively on your Mac, with honest read-back verification at every step.

What is an ICC profile?

An ICC profile describes a display's color space so software can reproduce color predictably. PatternSpace builds a matrix/TRC profile — the simplest, most portable kind — which encodes exactly two things:

PatternSpace is a generator, not a profiler: it builds a profile that describes the color space you specify. It does not measure your display. Because a matrix/TRC profile can only describe a fixed gamut and a single transfer curve, the builder is SDR only — PQ and HLG are deliberately omitted (more below).

Primaries + white RGB→XYZ · D50 + Tone curve (TRC) sRGB · γ2.2 · γ2.4 · BT.1886
A matrix/TRC ICC v4 profile is just a colorant matrix plus a per-channel tone curve.
CIE x CIE y D65
Rec. 709 / sRGB Display P3 Rec. 2020
The gamut triangle plots each space's primaries on the CIE xy diagram — the same view the app's Chromaticity panel shows.

Build a profile

Start from a preset — Rec. 709 / sRGB, Display P3, DCI-P3, Rec. 2020, or Adobe RGB (1998) — or edit any chromaticity to build a custom space. Pick the tone response curve written into the profile:

Export writes a standard ICC v4 .icc file you can inspect in ColorSync Utility, assign to images, or install as a display profile. Building a profile is free; exporting requires PatternSpace Pro.

Calibrate from a LUT

Import a .cube calibration LUT and export it as an ICC profile with a VCGT tag — a per-channel video-card gamma table macOS loads when the profile is assigned. PatternSpace supports 1D LUTs directly and reduces a 3D LUT only when it is separable along the neutral axis. If a LUT changes gamut, mixes channels, or clips unexpectedly, export is disabled and the reason is shown — a VCGT calibrates display gamma only, not a full 3D transform.

Import
.cube LUT
Encode
VCGT gamma table
Apply
Display (live or .icc)
A calibration LUT becomes a VCGT gamma table — exportable to .icc, or applied live.

PatternSpace can load the calibration's gamma curves onto the selected display live — visible immediately and verified by reading the ramp back. A live apply is session-volatile: it clears on logout, sleep, or when another app takes over the gamma, and a per-display rollback record automatically reverts any calibration left active the next time you launch the app. Applying a calibration live requires PatternSpace Pro; export the calibrated ICC (also Pro) to make it permanent via a profile assignment.

Inspect, compare, and assign

The same workbench reads and verifies profiles, not just builds them:

Inspect

Read the active display profile or any .icc/.icm file: description, class, transfer curve, white point with CCT, gamut coverage, and whether a VCGT is present.

Compare

Measure a subject against a reference — gamut coverage, white-point difference including ΔCCT, and whether the transfer curves match, with both gamut triangles overlaid.

Assign

A guided handoff installs a generated or calibrated profile (Pro) — or any existing .icc file (free) — as the display's system profile, then reads it back to confirm: applied, not applied, or a discrepancy.

Restore

Assignments are keyed to the physical display and survive reconnecting monitors. A guided restore puts the previous profile back whenever you want.

Honest by design

PatternSpace never silently rewrites your system display profile. Because a sandboxed Mac App Store app cannot write the system profile itself, assignment is a guided handoff you complete in System Settings — and PatternSpace confirms the result by reading it back.

PQ and HLG are deliberately omitted because their absolute-luminance, system-managed behavior cannot be represented honestly in a matrix/TRC profile. Live calibration is temporary and reversible. When a display cannot be uniquely identified, live apply and assignment are disabled rather than risk targeting the wrong screen. A LUT/table-based display profile is reported as "primaries not comparable" instead of inventing values.


Try it on your Mac

The full ICC workbench — build, calibrate, inspect, compare, and assign — is in PatternSpace on the Mac App Store. Building, inspecting, and comparing profiles are free; exporting a profile (plain or calibrated .icc), applying a calibration live, and assigning a PatternSpace-generated profile require PatternSpace Pro — assigning an existing .icc file you already have stays free.

Download on the App Store

FAQ

Does PatternSpace measure my display?

No. It is a profile generator, not a profiler — it builds a profile that describes the color space you specify. Pair it with a measurement tool for closed-loop calibration.

Can I calibrate from a .cube LUT?

Yes, when the LUT can be represented as per-channel video-card gamma (1D directly; 3D only if separable along the neutral axis). The result exports as an ICC profile with a VCGT tag, or applies live.

Does it support HDR, PQ, or HLG?

No. The builder is SDR only. PQ and HLG are intentionally excluded because their absolute-luminance behavior cannot be represented honestly in a matrix/TRC profile.

Will it change my system display profile?

Only through a guided handoff you complete in System Settings, which PatternSpace then verifies by reading the active profile back. It never rewrites the system profile silently.