# Hidden Colour

EX02 is a digital lightbox after Iana Kochu’s *Garden Before Noon*. Its front analyzer rotates over ten fixed film cuts traced from [the painting photograph](../../assets/garden-before-noon.jpg). The lightbox, reflection, seam highlights and the matte gallery wall are illustrative. The renderer uses a bounded, neutral high-pass texture from the photograph and calculates the cut colours from spectra. The original file stays intact.

| Output | Use |
| --- | --- |
| [Live study](index.html) | Move the analyzer between 0° and 180°, choose a preset, or remove the front analyzer. The four comparison samples use the same analyzer state. |
| [0° parallel](stills/00-parallel.png) | Amber sweeps, a deep blue stem and a bright bare carrier. |
| [54° oblique](stills/54-oblique.png) | Blue sweeps and a softer sage petal on a dimmer carrier. |
| [90° crossed](stills/90-crossed.png) | A dark bare carrier beside blue sweeps, a pale stem and a mint petal. |
| [Gallery cover](cover.png) | The framed 0° artwork and wall. |
| [Bench pattern](bench-pattern.svg) | Printable guide for four physical comparison swatches. |

Open the study through a local static server. For example, from the repository root run `python3 -m http.server 4387 --bind 127.0.0.1 --directory prototypes/kochu-studio` and open `http://127.0.0.1:4387/light-experiments/hidden-colour/`. Add `?plate=0`, `?plate=54` or `?plate=90` for a labelled plate view.

## Spectral model

The rear polarizer defines 0°. A lossless uniaxial film at normal incidence has an in-plane axis angle θ and retardance Γ = Δn × thickness. For wavelength λ and front analyzer angle α, the transmitted intensity relative to the light after the rear polarizer is

```text
δ(λ) = 2πΓ / λ
T(λ) = cos²α + sin(2θ) sin(2(α − θ)) sin²(δ(λ)/2)
```

This is Eq. 8 in rear-polarizer coordinates. In the film basis, the incident field is `[cos θ, −sin θ]` and the analyzer is `[cos(α−θ), sin(α−θ)]`. Applying phase δ to the second field component and taking the squared projected magnitude gives the expression above. The phase follows the wave numbers defined with Eqs. 3–4. XYZ follows Eqs. 9–11, with a D65 source spectrum. [Dall’Agnol and den Engelsen, *Colors from polarizers and birefringent films* (2012), §2.1–2.2](https://sbfisica.org.br/rbef/pdf/342302.pdf)

The renderer integrates D65 spectral power × T × the CIE 1931 2° colour-matching functions over 380–780 nm at 5 nm intervals with trapezoidal endpoint weights. It normalizes once to the unfiltered D65 luminance, preserving brightness differences across analyzer angles. Conversion to sRGB applies a fixed exposure (0.84), a small neutral display floor (0.016 in linear light), display gamut clipping and the sRGB transfer curve. Substrate reflection, cut seams and neutral texture are presentation layers. The ideal clear carrier extinguishes at 90° even though those layers remain visible on screen.

The four material tiles use Δn = 0.005 with nominal film thicknesses 0, 70, 70 and 140 µm. They compare clear carrier, aligned film, a film tilted to 45°, and double thickness along that same axis. The painting cuts have separately authored retardances from 240 to 805 nm and axes from −48° to +47°. The simulation assumes constant Δn, an ideal D65 backlight, ideal polarizers and one effective retarder per cut. The chosen thicknesses and axes are illustrative. Real film dispersion, stress, scattering and the light source can shift the palette.

The sampled data in `spectral-data.mjs` come from the following CIE publications. The original CSV MD5 sums were checked against their dataset pages before subsetting to 5 nm. The combined subset retains [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).

- CIE 2019, *Colour-matching functions of CIE 1931 standard colorimetric observer*, International Commission on Illumination, Vienna. MD5 `17cca777db64b17170f06f67ce9d3ab7`. [Dataset and metadata](https://doi.org/10.25039/CIE.DS.xvudnb9b)
- CIE 2019, *CIE standard illuminant D65*, International Commission on Illumination, Vienna. MD5 `03d4eb9b837c60671627c946fb534deb`. [Dataset and metadata](https://doi.org/10.25039/CIE.DS.hjfjmt59)

## Physical swatch

Fabrication and photography are pending. Use a colourless carrier, one roll of transparent tape or thin film, two linear polarizers and a broad diffuse white light. The tape and carrier each need a quick check because film birefringence and carrier stress vary. The pattern is a cutting and alignment guide. [Exploratorium, *Polarized-Light Mosaic*](https://www.exploratorium.edu/snacks/polarized-light-mosaic)

1. Mark the rear polarizer’s axis. Rotate the front polarizer to find the darkest bare-carrier position and label it 90°. Check the bare carrier for visible stress colour before assembling the guide.
2. Between the crossed polarizers, rotate a scrap of film. Identify an orientation where the film patch is darkest and mark that axis relative to the rear polarizer. A noticeable change as the scrap turns is the material screening result.
3. Print the pattern at 100% and verify the 20 mm scale. Keep S1 empty. Place one piece at 0° in S2 and one at 45° in S3. Stack two copies at 45° in S4 so their axes coincide. Remove the paper guide before viewing.
4. Sandwich the carrier between the two polarizers with the broad white light behind the rear sheet. Keep the rear sheet, carrier and camera fixed. Photograph the swatch at 0°, 54° and 90° with exposure and white balance held constant. Record the film, layer counts, carrier and light source next to the photographs.
5. Compare each film tile against the bare carrier. A visible colour shift in S3 or S4 supports a larger test using the traced cuts. The photographs determine which two angle states and film recipes are worth carrying into the larger test.

The study takes its practical precedent from Austine Wood-Comarow’s clear-film and polarizer installations. The contours come from Iana Kochu’s painting. [Austine, *About the Medium*](https://www.austine.com/medium)

## Verification

The analytic expression matched an independently calculated complex Jones projection across 205,254 film, wavelength and angle combinations. Maximum absolute difference was 6.66 × 10⁻¹⁶. The checks covered 0–1 transmission bounds, 180° periodicity, clear-carrier extinction, coincident clear and aligned swatches, different single and double thickness spectra, and equal optical colour for every film with the front analyzer removed.

In headless Chrome, the three plates shared the same cut-mask fingerprint and panel bounds, while each produced a different colour frame. The live view reproduced the plate renders at each preset. Keyboard rotation, analyzer removal and restoration, synchronized sample presets, and the 390 px mobile layout were exercised. Physical behaviour remains to be measured with the bench swatch.
