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:
- Primaries and white point: the RGB→XYZ colorant matrix, Bradford-adapted to the D50 profile-connection space.
- A tone response curve (TRC): a per-channel transfer function describing how signal maps to light.
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).
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:
- sRGB — the IEC 61966-2-1 piecewise curve.
- Gamma 2.2 / Gamma 2.4 — a pure power function.
- BT.1886 — idealized (black level 0), equivalent to γ2.4 in practice.
- Linear — an identity curve.
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.
.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.
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.