feat: Substrate OBA / FWA Compensation & Viewing Condition Options in Stage 4 (colprof) #176

Closed
opened 2026-09-02 00:59:17 +01:00 by gronod · 1 comment
Owner

Feature Summary & Background

In colour management, ISO 13655 measurement conditions (M0, M1, M2, M3) define spectrophotometer illumination and filtration. As detailed in the technical documentation, ArgyllCMS handles paper Optical Brightening Agents (OBAs / FWAs) mathematically during profile construction using Fluorescent Whitening Agent (FWA) compensation (colprof -f) rather than proprietary dual-scan hardware emulation.

To ensure profiles accurately represent prints under standard daylight viewing conditions while giving professionals complete control over ambient matching, Stage 4 (colprof) should expose substrate FWA compensation and viewing condition parameters.


Proposed Feature Requirements

1. Substrate OBA / FWA Compensation (colprof -f)

Add an OBA / Viewing Condition control in Stage 4 (Profile Generation) with the following options:

  • Calculated M1 (D50 Daylight FWA Compensation) [DEFAULT]:
    • Passes -f D50 (or -f) to colprof.
    • Estimates daylight-stimulated paper fluorescence from spectral data, delivering the visual intent of an ISO 13655 M1 profile.
  • None / Native M0 (No Compensation):
    • Omits the -f parameter.
    • Used for non-brightened media, standard tungsten M0 profiling, or imported CGATS datasets that are already natively captured in M1/M2/M3 hardware modes.
  • D65 FWA Compensation:
    • Passes -f D65 for prints evaluated under D65 daylight viewing booths.
  • Custom Ambient Illuminant (.sp):
    • Allows browsing and selecting a measured ambient spectrum file (.sp) captured via spotread -a or illumread, passing -f <path.sp>.

2. Standard Illuminant & Observer Options (Advanced Options)

Expose standard Argyll colprof spectral integration settings:

  • Illuminant (-i):
    • D50 (Default), D65, A (Tungsten), C, F5, F8, F10, D50M2 (UV-cut).
  • CIE Observer (-o):
    • 1931_2 (Default: 1931 2° Standard Observer), 1964_10 (1964 10° Observer), S&B_1955_2, shaw, J&V_1978_2.
  • Viewing Condition / Ambient Adaptation (-a):
    • Default (Omitted)
    • pc — Print evaluation in critical viewing booth (500 lx)
    • pp — Practical print evaluation (200 lx)
    • pm — Print evaluation with monitor matching (500 lx)
    • mt — Monitor in typical work environment

3. Preset Integration & CLI Argument Generation

  • Update ColprofConfig in src-tauri/src/commands.rs to deserialize the new parameters and construct the CLI argument list with unit test coverage.
  • Update src/js/presets.js to serialize and restore OBA/FWA and viewing condition parameters across preset save/load.
  • Provide contextual tooltip explanations explaining when to use Calculated M1 vs. None/Native.
### Feature Summary & Background In colour management, **ISO 13655** measurement conditions (M0, M1, M2, M3) define spectrophotometer illumination and filtration. As detailed in the technical documentation, ArgyllCMS handles paper Optical Brightening Agents (OBAs / FWAs) mathematically during profile construction using **Fluorescent Whitening Agent (FWA) compensation (`colprof -f`)** rather than proprietary dual-scan hardware emulation. To ensure profiles accurately represent prints under standard daylight viewing conditions while giving professionals complete control over ambient matching, Stage 4 (`colprof`) should expose substrate FWA compensation and viewing condition parameters. --- ### Proposed Feature Requirements #### 1. Substrate OBA / FWA Compensation (`colprof -f`) Add an **OBA / Viewing Condition** control in Stage 4 (Profile Generation) with the following options: * **Calculated M1 (D50 Daylight FWA Compensation)** `[DEFAULT]`: - Passes `-f D50` (or `-f`) to `colprof`. - Estimates daylight-stimulated paper fluorescence from spectral data, delivering the visual intent of an ISO 13655 M1 profile. * **None / Native M0 (No Compensation)**: - Omits the `-f` parameter. - Used for non-brightened media, standard tungsten M0 profiling, or imported CGATS datasets that are already natively captured in M1/M2/M3 hardware modes. * **D65 FWA Compensation**: - Passes `-f D65` for prints evaluated under D65 daylight viewing booths. * **Custom Ambient Illuminant (`.sp`)**: - Allows browsing and selecting a measured ambient spectrum file (`.sp`) captured via `spotread -a` or `illumread`, passing `-f <path.sp>`. --- #### 2. Standard Illuminant & Observer Options (Advanced Options) Expose standard Argyll `colprof` spectral integration settings: * **Illuminant (`-i`)**: - `D50` (Default), `D65`, `A` (Tungsten), `C`, `F5`, `F8`, `F10`, `D50M2` (UV-cut). * **CIE Observer (`-o`)**: - `1931_2` (Default: 1931 2° Standard Observer), `1964_10` (1964 10° Observer), `S&B_1955_2`, `shaw`, `J&V_1978_2`. * **Viewing Condition / Ambient Adaptation (`-a`)**: - `Default` (Omitted) - `pc` — Print evaluation in critical viewing booth (500 lx) - `pp` — Practical print evaluation (200 lx) - `pm` — Print evaluation with monitor matching (500 lx) - `mt` — Monitor in typical work environment --- #### 3. Preset Integration & CLI Argument Generation * Update `ColprofConfig` in `src-tauri/src/commands.rs` to deserialize the new parameters and construct the CLI argument list with unit test coverage. * Update `src/js/presets.js` to serialize and restore OBA/FWA and viewing condition parameters across preset save/load. * Provide contextual tooltip explanations explaining when to use Calculated M1 vs. None/Native.
gronod added the Kind/Feature
Priority
Medium
3
Reviewed
Confirmed
1
labels 2026-09-02 00:59:34 +01:00
gronod added this to the Milestone 13 : Polish milestone 2026-09-03 22:56:28 +01:00
Author
Owner

Implemented in enh/176-colprof-fwa (stacked on feat/184-configurable-delta-e):

  • Wrapped every Stage 4 colprof control in .has-tooltip and added contextual .tooltip-text help for OBA/FWA compensation, custom spectrum, illuminant, observer, and input/output viewing conditions.
  • Added a combined build_colprof_args test exercising FWA, illuminant, observer, and viewing conditions together.
  • Updated AGENTS.md, README.md, and ROADMAP.md.

Closes #176.

Implemented in `enh/176-colprof-fwa` (stacked on `feat/184-configurable-delta-e`): - Wrapped every Stage 4 `colprof` control in `.has-tooltip` and added contextual `.tooltip-text` help for OBA/FWA compensation, custom spectrum, illuminant, observer, and input/output viewing conditions. - Added a combined `build_colprof_args` test exercising FWA, illuminant, observer, and viewing conditions together. - Updated `AGENTS.md`, `README.md`, and `ROADMAP.md`. Closes #176.
Sign in to join this conversation.