Custom Filters in ColourSpace + LUT Concatenation + LUT Swap — Progress ReportHere's a long-overdue update. Short answer: results are very promising — closed-loop validation on the Valerion is now complete, results and methodology documented below.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Motivation & Background━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Two separate problems drove this work.
First: calibrating the Valerion Visionmaster Max (RGB Triple-Laser) to a DCI-P3 target means dealing with an extreme gamut spread between the projector's native colour space and the target. Peak Chroma produces visible artefacts in the 3D Cube LUT preview — a reliable indicator that the algorithm can't handle that magnitude of gamut difference cleanly.
Second: volumetric profiling sessions with the JETI 2501 Hires spectroradiometer produce systematically noisy measurement points in the shadow region (<2 cd/m²).
Standard filtering either removes too much or too little — both outcomes degrade LUT accuracy in the low end.
Two separate problems, two separate solutions — which I'm now combining into a single workflow.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Setup━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Projector: Valerion Visionmaster Max — RGB Triple-Laser, native colour space well beyond BT.2020
Video Processor: madVR Envy Extreme MK1 (3D LUT applied after internal tone mapping → HDR target: DCI-P3 D65 Gamma 2.4)
Spectroradiometer: JETI 2501 Hires (probe match reference only)
Colorimeter: Admesy Prometheus, probe-matched to Jeti 2501 via FCVM in ColourSpace — used for all profiling
Software: ColourSpace Professional
Target colour space: DCI-P3 D65 Gamma 2.4 (SDR-equivalent on the Envy signal path)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Part 1: LUT Concatenation━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The solution for the Valerion is LUT Concatenation — two LUTs are combined via Maths → Add in ColourSpace before being loaded as a single LUT onto the Envy:
- Self-Calibration LUT (Peak Chroma, Profile → Native Space): corrects deviations of the projector from its own native colour space
- Colour Space Conversion LUT (Peak Luma, P3 → Native Space): maps the P3 target colour space onto the projector's native colour space
The key advantage: Peak Chroma only operates within the native colour space — the extreme gamut jump lives entirely inside the Conversion LUT, which is designed for exactly that purpose. The preview artefacts are completely gone.
Gamut Mapping is disabled for the Valerion (native gamut exceeds P3), which also enables cleaner processing and faster multi-threaded LUT generation.
Original Peak Chroma LUT

Concatenated Peak Chroma LUT

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Part 2: Custom Filter — What's Actually Possible━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ColourSpace's Custom Filter system is significantly more powerful than most calibrators realise. Beyond basic outlier removal, it allows highly specific, display-adaptive filtering logic that operates at the profile level — before any LUT is generated.
Without going into implementation details, the kinds of problems that can be addressed include:
Noise discrimination in the shadow region without discarding valid low-luminance measurements
Display-type-specific thresholds — what constitutes noise on a laser projector is fundamentally different from an OLED or a lamp-based display
Protecting specific measurement points from being filtered even when they fall below a general threshold — because not every low-luminance point is noise
Outlier detection relative to the display's actual measured behaviour, rather than fixed absolute limits
The net result is a cleaner profile feeding the LUT engine — and as anyone who has worked with ColourSpace's Infinite-Primary approach knows, profile quality is the actual accuracy bottleneck, not LUT generation size.
I'm keeping the implementation specifics private for now, but happy to discuss the conceptual approach and results.
Without Custom Filter

With Custom Filter

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Part 3: LUT Swap — Greyscale Optimisation via Dedicated Patch Set━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Even with a high-density volumetric profile, greyscale tracking accuracy is ultimately constrained by how many measurement points fall on or near the neutral axis. A general-purpose volumetric patch set distributes samples across the entire colour volume — which means the greyscale region is relatively sparse by design.
There is a second, less obvious issue: measurement duration. A full volumetric session — particularly with slower probes such as the X-Rite i1Display 3 — can take long enough that subtle display drift (thermal stabilisation, panel-level ABL behaviour, general instability) introduces inconsistency across the neutral axis measurements. The greyscale points are not measured in one continuous pass; they are distributed throughout the session and may reflect slightly different display states as a result.
The solution: a second, dedicated profiling pass using the Grey Ramp RGBCMY+ patch set — a dense grey ramp combined with grey-matched primaries and secondaries (RGBCMY). This pass is fast enough to complete within a stable display window, and gives ColourSpace a high-confidence, temporally consistent neutral axis while retaining just enough chromatic anchor points for correct gamut behaviour at the LUT boundaries.
Why this works: ColourSpace's Infinite-Primary Colour Engine treats all profile points equally — there are no structural anchors. A dense grey ramp measured within a short, stable window gives the engine significantly more reliable constraint along the neutral axis than greyscale points scattered across a multi-hour volumetric session. The result is tighter EOTF tracking and lower greyscale dE, particularly in the shadow and highlight regions where volumetric sampling is typically thinnest.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Part 4: Validation Results━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
All results below are from closed-loop measurements on the Valerion Visionmaster Max using the ADMESY Prometheus (probe-matched to JETI 2501 Hires).
Grey Scale dE76 (averaged, empirical):Raw Profile Peak Chroma LUT with Artefacts: 0.86
Raw Profile cleaned via Custom Filter, LUT Concatenation + LUT Swap: 0.33
The improvement comes almost entirely from the D65 Shadow Bypass and LUT Swap.
Without it, chromatically neutral shadow points were being incorrectly filtered out, which introduced a subtle but measurable bias in the low-end greyscale tracking.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next Steps━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Focused Patch Set two-pass workflow as the primary optimisation path (per Steve Shaw's recommendation); Custom Filter positioned as single-pass fallback for situations where a second pass isn't practical
Questions and feedback welcome, particularly on the D65 Shadow Bypass approach, as this doesn't appear to be documented in any public Custom Filter reference
material so far.