← Guides

macOS · LUT Tools · Beta

LUT Tools Beta
Know your transform.

Inspect a LUT, combine transforms, make explicit adjustments, and prepare an export for your workflow. A native Mac workbench with clear diagnostics and format limits.

For PatternSpace 2.2 on macOS. LUT Tools is in beta. Building and inspecting chains and preparing exports are available in PatternSpace Free. Advanced invertibility analysis and writing LUT or ICC files require PatternSpace Pro. Review the current format and operation limits below before preparing a deliverable.

A workbench for LUTs you already use

A lookup table maps input RGB values to output RGB values. In a calibration workflow, a LUT may contain a display correction; in an imaging workflow, it may contain a look or a technical transform. The filename alone does not tell you which role it serves.

PatternSpace’s LUT Tools lets you import supported LUTs, combine transforms in a node chain, apply numerical adjustments, inspect sampled behavior, and prepare a result for a destination format and grid. Imported files remain unchanged; export writes a separate result.

Open Tools → LUT Tools (Beta)…. Select Identity for a 1D, 3D, or Mixed identity, or Existing LUT file to reveal the shared drop area and Choose File… button. Choosing the card opens no dialog. Replacements keep the working file until loading and validation succeed. Compose and Subtract start with an empty Input B using the same picker.

Example LUT chain and export workflow An imported LUT or identity source feeds Compose, optionally using a second LUT, then Adjust and Filter. Every step can be analyzed before and after. Selecting Export automatically samples the destination grid, encodes the result, and reads it back. Export writes a separate file with PatternSpace Pro. Source Imported LUT or identity Compose LUT B Branch Adjust CDL · saturation · scaling Filter Smooth · Sharpen · Relax Prepare Destination grid → encode → read back Export a new file · Pro
An example chain. Compose, Adjust, and Filter are optional, and their order determines the exported transform. Select any step to analyze what it changes.

Choose the right operation

Compose: apply transforms in sequence

Compose feeds the result of the chain above the node into its Input-B branch. For transforms A then B, the result is B(A(RGB)). Reversing that order generally changes the result. A branch can contain its own operations before it rejoins the main chain.

Only compose LUTs whose input and output meanings are compatible. A normalized 0–1 domain does not identify a color space or transfer function. A log-to-display transform and a display correction need the correct order and signal interpretation; format conversion does not infer those choices.

Adjust: make explicit numerical changes

The Adjust node applies input scaling → ASC CDL Slope, Offset, and Power → saturation → output scaling. Use it for known adjustments to the transform, keeping the imported source intact. These controls do not calculate a calibration from measurements.

Signal Range fills the scaling for common video-level paths: Full → Legal output compresses a full-range result to 10-bit legal levels (64–940) for a display or LUT box that expects legal data, Legal → Full input expands a legal-range input, and Legal in and out does both so a full-range LUT works inside a legal-range path.

An adjustment can remain 1D when its Slope, Offset, and Power values match across channels and saturation and scaling are neutral. Other adjustments bake to 3D; the chain’s dimensionality also depends on the source and other operations.

Filter: clean up a noisy correction

Filter works on the correction built by the chain above it, such as one generated from display measurements. Smooth averages out noise and Sharpen boosts fine detail; both act only on how the LUT departs from identity, so an identity LUT is never altered. Strength gives the same result at any export grid size. Low and High limit the effect by level; the defaults smooth only the shadows, where measurement noise is highest. Black and white points are always kept exactly. Relax straightens the toe just above black.

Subtract and Invert: use with care

Subtract applies an approximate inverse of its Input-B branch to the chain above it. It does not subtract corresponding RGB table entries. Invert attempts to reverse the complete transform above the node.

1D inversion requires monotonic channels with usable spans. 3D inversion uses a numerical solution. Clipping and many-to-one mappings lose information: if two inputs become the same output, an inverse cannot uniquely recover both. A finite grid introduces additional approximation. Review these results in the intended workflow rather than treating them as guaranteed reversals of a calibration.

When Invert or Subtract cannot solve a sample exactly — it is out of range, sits on a flat region, or has no solution — the Export panel lists those samples for each operation, with the step label and the residual before encoding. The export format’s own encoding error is reported on a separate line. If an inversion fails outright, the message names the channel and the cause, such as a flat section, no usable range, or non-monotonic samples.

Analyze every step before export

The fixed-height Analysis widget stays above the step settings. It shows sampled status and compact metrics, with a Live tag during adjustments and a remembered collapse control. Click its miniature curves to open Curves, or Open… / ⌥⌘A to open Overview. The Analysis window offers Overview, Curves, Slices, and Points and selects its own step independently of the canvas. Curves supports pinned values and issue navigation; Slices and Points examine off-axis RGB code values. Select Export to prepare the encoded artifact automatically and compare it with the diagnostic chain. Overview arranges its summary and diagnostic cards into a mosaic that adapts to the window width. These are code-value diagnostics rather than a color-managed preview or display measurements.

Advanced invertibility analysis is a Pro feature started only by Run Analysis in Overview. It checks coverage and round trips for every Invert and Subtract in the chain. Large chains may take several minutes; Cancel stops the request. Chain changes mark retained reports out of date until you request them again. Sampled Solver results and export preparation remain free. Reports describe the mathematical transform before encoding and do not certify the exported artifact.

No issues does not mean calibrated. These are RGB-space diagnostics, not Lab ΔE values, and they do not measure a display. A deliberate look can alter neutral balance; a technically clean transform can still be inappropriate for the signal or monitor you intend to use.

The current beta does not provide a before/after image preview or a rotatable 3D gamut visualization. Evaluate the exported transform in compatible target software and use measurements when judging calibration accuracy.

Convert formats without losing sight of the transform

PatternSpace identifies supported structures from file contents. A .3dl or .cube extension alone does not guarantee compatibility. If the contents match more than one supported interpretation, select the intended format.

Format families in the current beta
FamilyScope and limitations
Cube1D/3D, with IRIDAS, Resolve, and Nucoda dialect recognition. Non-default Resolve input ranges are reported as omitted metadata; the canonical model does not remap those ranges.
3DLAutodesk/Lustre/Flame-style, Assimilate, and uniform same-range vertex-list structures. Non-zero-base LG and cross-range vertex/output variants are not supported. Review dropped-shaper diagnostics for Autodesk files.
CLFScalar/RGB LUT1D, LUT3D, and uniform shaper-plus-cube structures with 32f outputs. Range, Matrix, CDL, half-domain/raw-half, and other unsupported structures are rejected. Omitted source metadata and interpolation preferences are reported.
Other LUT formatsQuantel 1D/3D, LUTher 3D, RED Camera 1D, CineSpace CSP, Nucoda CMS, Truelight Cube, and IRIDAS Look. Available export choices depend on the chain and the format’s supported structure.
ARRI LookALF1, ALF2, and ALF4 import only, with the fidelity limits described below. ARRI Look export and ALF4c are not supported.

Compatible native shaper-plus-cube stages can be preserved when the destination supports them. Other conversions require baking or resampling. Review the preparation report for metadata loss, approximation, and range issues. Supporting a file format does not certify a device or provide a hardware upload workflow.

ARRI Look import: know what is represented

ALF1 imports its tone-map table; the full camera processing chain, CDL, and printer lights are not reproduced. ALF2 and ALF4 import a 33³ table and compose applicable CDL before that table. ALF4 Look Intensity and target color-space information are exposed as metadata; intensity is not applied. Sampling can differ from a camera’s processing between vertices.

Use these imports to inspect and work with the supported transform components. Do not assume that a converted file exactly reproduces the camera look.

Prepare, review, export

  1. Finish the chain. Every source and branch must load successfully. Failed or loading operands are not silently skipped.
  2. Select Export. Choose a supported destination format and grid that match the receiving application or device.
  3. Wait for automatic preparation. Selecting Export evaluates the chain for that destination, encodes it, reads the bytes back, and verifies the prepared result. Chain or setting changes refresh it automatically while Export is visible. Preparing export… shows progress; Cancel stops preparation and Retry restarts it after cancellation or failure.
  4. Review the report. Check differences, omitted metadata, and any compatibility diagnostics. More grid points do not recover information already lost in a source LUT.
  5. Export a separate file. Writing the file requires Pro. Source and operand files are protected against overwrite. Changing the chain or export settings refreshes preparation before writing is available.

Byte read-back checks the prepared file against the expected conversion. It is not a visual evaluation, measurement of display accuracy, or guarantee that another application will interpret every format option identically.

ICC export, display profiles, and VCGT are different

The ICC DeviceLink (RGB → RGB) destination, listed under ICC in the export picker, writes an ICC v4 RGB→RGB DeviceLink. It bakes the chain to a fixed 33³ table and stores the look transform in A2B0. This is for compatible software that can apply a DeviceLink transform; it is not a conventional display profile to assign in macOS.

Choose the output for its intended role
OutputPurpose
LUT fileA transform loaded by compatible software or hardware, according to that destination’s requirements.
ICC DeviceLinkAn RGB-to-RGB transform applied in software with DeviceLink support. Use a compatible conversion workflow, not ordinary profile assignment.
Display ICC profileA description of a display’s color response. Build and manage these in the separate ICC Profiles workbench.
VCGTPer-channel video-card calibration curves. These cannot carry arbitrary 3D color mixing or replace the DeviceLink look.

Include VCGT adds supported 1D calibration curves separately from the 3D look and is off by default. If the chain cannot be expressed as calibration curves — it is not separable per channel, not monotonic, does not span black to white, or leaves the 0–1 range — Prepare fails and names the reason instead of exporting without VCGT. ICC tables always saturate values to 0–1; Accept saturation of out-of-range values only controls whether Export warns about it. An existing compatible RGB→RGB DeviceLink can supply base metadata, and supported tags can be reviewed before export.

Export writes exactly the profile that Prepare validated. Changing an ICC option or tag refreshes preparation automatically while Export is visible; Export becomes available when the new artifact is verified. A passing structural check reads ICC structure validated: it confirms the file structure only.

Exporting a chain does not apply it to a display or to DeckLink output. For temporary display calibration, profile assignment, and restore, use Tools → ICC Profiles… and follow the ICC Profiles guide.

Use the beta in a calibration workflow

Keep the measurement source, the correction transform, and its destination explicit. Create the correction in your calibration software, use LUT Tools for supported inspection or transformation tasks, then load the result in the intended destination and measure again. Retain the original file and the settings used for the conversion so you can reproduce the result.

Start with free preparation to check whether your files and desired destination fit the current beta. See PatternSpace Pro for export access, the calibration guide for the full workflow, and the DeckLink SDI guide for hardware patch output.