GLOAM
SDR-in-HDR Gamma Override

Fix the gray that Windows HDR casts over everything.

Gloam is a free, open-source Windows app that restores proper gamma to SDR content in HDR, with a color-science-aware night mode.

A local tray app, designed by a colorist, that corrects the SDR-in-HDR decode mismatch per display and keeps the result stable through games, driver resets, and display changes.

MIT licensed. Windows 10 and 11. Works on HDR and SDR displays. Full calibration capable with most colorimeters.

01 / The problem

Windows lifts shadows and it's ugly.

When you enable HDR, Windows 11 decodes standard SDR window frames using a piecewise sRGB curve. Because almost all games, movies, and desktop assets are mastered for traditional gamma 2.2 screens, this curve mismatch dumps extra light directly into shadow regions.

In dark scenes (night gameplay, a dim film, anything lit by a single source), blacks turn into a flat gray haze, ruining ambient contrast in the areas where human vision is most sensitive:

2.87× Extra light at 5% signal (deep shadows)
1.59× Extra light at 10% signal (low shadows)
1.14× Extra light at 20% signal (mid-tones)
1.00× Extra light at 40% signal and above (white is correct)

Both frames are the same public-domain painting, pushed through the real signal path at a 200-nit SDR white level: the SDR frame is encoded to PQ, quantized to the 10-bit wire, and on the right run through Gloam's gamma 2.2 GPU LUT. Nothing is stylized. The only difference is the decode curve, and the candle flames are identical in both. Detail from Georges de La Tour, The Penitent Magdalen, ca. 1640, Metropolitan Museum of Art Open Access (public domain, CC0).

01
02
03
04
05
02 / How it works

Pure math inside the HDR signal path.

01
Decode PQ
Read the ST.2084 PQ signal Windows sends to the display. This captures raw HDR luminance coordinates.
0.0 (Black) 1.0 (White) 10,000 Nits 100 Nits 0 Nits Shadow Lift Mismatch 10,000 Nits 100 Nits 0 Nits 0.0 (Black) 1.0 (White) Target Power Gamma (γ = 2.2) 10,000 Nits 100 Nits 0 Nits 0.0 (Black) 1.0 (White) SDR White (100 Nits) HDR Highlight Knee 10,000 Nits 100 Nits 0 Nits 0.0 (Black) 1.0 (White) GPU 1D LUT Ramp Injection 10,000 Nits 100 Nits 0 Nits 0.0 (Black) 1.0 (White)
Fig 1.0 - PQ input signal mapped to target display luminance (nits).
03 / What it does

One app for the whole display path.

Gloam manages everyday gamma and night rendering, per-game display intents, and a measured SDR/HDR calibration workflow when a meter is connected.

HDR gamma fix

Per-monitor gamma 2.2, 2.4, or Windows default. Switchable per monitor with a hotkey. Self-healing ramp guard restores the correction if a game or driver resets it.

Night mode, done right

Temperature shifts are computed from the Planckian locus and blended in linear light, where light physically mixes. The default profile models incomplete chromatic adaptation in CAT16 cone space; a fully colorimetric CIE 1931 path is also available. Use Off, Auto, or Manual mode, with smooth fades and a per-application auto-disable list that drops the warm shift for chosen apps.

Colorimeter calibration

Add a meter and Gloam builds a native Windows MHC2 profile, installs it for the measured display mode, and re-measures through the applied correction. HDR runs cover neutral PQ tracking and colored R/G/B/C/M/Y patches in absolute luminance.

Game Lab

Save a profile for each game, then choose Reference, Competitive Clarity, Cinematic HDR, or spectral Night Ops. Gloam follows the foreground game, targets the displays its window covers, and can lock schedule-derived color for the session.

Reports that stay current

Detailed reports include distributions, worst patches, raw CSV data, tone and gamut charts, and HDR PQ tracking. Joint HDR refinement keeps the best measured result, re-verifies it, and refreshes the saved report data and every derived view.

Per-monitor dashboard

Real monitor names, HDR/SDR status, brightness readout, temp/tint and RGB adjustment, and live gamma mode readout for every connected display. Settings and window sizes persist per monitor and restore on startup.

Native apply

Live LUTs normally write through the Windows gamma-ramp API, with an Argyll dispwin fallback for drivers that need it. A coalesced output path skips redundant hardware writes.

No telemetry, fully local

Settings, game profiles, measurements, reports, and logs stay on your PC. Network access is limited to GitHub update checks and explicit downloads such as a missing Argyll package or a DisplayCAL correction. No telemetry, no account, no cloud processing.

04 / Built in the open MIT licensed

Free software, made to help.

Gloam exists because a lot of people bought beautiful HDR displays and then watched Windows wash them out. As a Windows user this bothers me but as a colorist this dismays me. The fix is straightforward enough to give away, and open enough that anyone can inspect it, improve it, or fork it.

The source is on GitHub. Builds are published through GitHub Releases. There is no paid tier, subscription, data collection, or upsell. A colorimeter unlocks measured calibration, but the gamma correction, night mode, and Game Lab work without one.

View source on GitHub
  • Core features need no external tools. Gamma correction, night mode, Game Lab, and the dashboard run on Gloam's native pipeline.
  • ArgyllCMS is used only for measurement and compatibility fallback. Official packages include it; source builds can fetch it if missing. Gloam invokes it as a separate process and does not link against it.
  • Built on community research. The gamma fix draws from Dylan Raga's original research. Calibration references MHC2 by dantmnf and the DisplayCAL corrections database.
  • Full local processing. All adjustments are calculated locally on your machine with zero external cloud dependencies.
  • Extensible configuration. Customize gamma targets, temperature curves, monitor brightness, tint and temp trim, and more.
  • Contributions welcome. Bug reports, pull requests, documentation edits, and measured verification data all help.
05 / Get it

Download Packages

Run the installer (recommended) or grab the portable zip, then enable "Start with Windows" from the tray menu if you want to correct your display on every boot.

Installer

GloamApp-win-Setup.exe. The recommended way in.

  • Self-contained: no .NET runtime to install
  • Bundles ArgyllCMS, so colorimeter calibration works immediately
  • Per-user install, no administrator prompt
  • Updates itself in the background: download it once
Download installer

Portable

GloamApp-win-Portable.zip. No install, no traces.

  • Also self-contained: no .NET runtime to install
  • Extract it anywhere and run the executable
  • Does not auto-update: replace it with a newer zip to upgrade
Download portable zip

Both buttons always hand you the current release. The link resolves to whatever is newest, so it never goes stale. Version history, release notes and checksums are on GitHub.

Seeing "Windows protected your PC"? That is Microsoft SmartScreen, not a problem with the download. Gloam is code-signed: click More info and you will see the verified publisher David Torcivia. SmartScreen separately weighs download reputation, so new signed apps can show reputation warnings until enough people have installed them. Click More info, then Run anyway.

06 / Questions

Before you ask

Do I need a colorimeter? +

No. The core gamma fix is pure math and needs no hardware. Night mode, per-monitor white point trims, and the dashboard all work without a meter. A colorimeter is only required for measurement-based calibration and verification.

Does it work in SDR, or only HDR? +

Both. HDR is where the gray haze is most obvious, so that is where Gloam started. The gamma fix operates inside the HDR signal path. Measured corrections are installed as native Windows MHC2 profiles for the SDR or HDR display association used during the run. SDR displays also get gamma control, night mode, Game Lab, and full calibration.

How is this different from Windows Night Light? +

Three differences. First, the math: Gloam derives its warm white points from the Planckian locus computed against the CIE 1931 observer, models incomplete chromatic adaptation in CAT16 cone space, and blends in linear light where light physically mixes. Night Light is a simple compositor filter that tints without discernment.

Second, composition: Gloam combines gamma and night rendering into one high-precision live ramp, while an installed MHC2 profile remains the compositor-level measured correction. The output coalescer applies the resolved state as one update.

Third, control: Off disables all warmth, Auto follows your configured time or sun position, and Manual holds your chosen warmth now. You can also set fades, a per-application night-mode auto-disable list that drops the warm shift while a chosen app is in the foreground (gamma and calibration stay active), and per-monitor temperature offsets.

What does Game Lab change? +

Game Lab resolves a saved display intent when a configured game owns the foreground window. It can select gamma, apply a calibrated shadow lift, choose a night policy, hold schedule-derived color steady with Gameplay Lock, and report local signal facts such as HDR state, DXGI color space, bit depth, headroom, and calibration status.

It does not inject into games, hook swap chains, install an overlay, or inspect game memory. The library scanner reads local Steam, Epic, GOG, and Xbox metadata and leaves every discovered title for you to add explicitly.

Which colorimeters work? +

Any meter supported by ArgyllCMS. The X-Rite i1 Display family and its Calibrite successors are the common path. Use a spectral correction matched to your panel; Gloam's in-app browser downloads .ccss and .ccmx files from the DisplayCAL community database. On QD-OLED and wide-gamut panels this is essential.

How is this different from DisplayCAL or Calman? +

For SDR desktop calibration, DisplayCAL is mature and excellent, and Calman is a professional standard for TV and mastering workflows. If those fit your use case, use them.

Gloam's focus is the HDR-native pipeline on Windows 11. Traditional tools apply corrections through the GPU gamma ramp and ICC profiles that the Advanced Color compositor largely ignores when HDR is on. Gloam builds a properly domain-wrapped MHC2 matrix plus PQ-domain tone LUTs, installs them through the association the HDR pipeline reads, and verifies by measuring through the applied profile. It's just a better option for most users using HDR without expensive professional software (though our math is built on the same principles).

How do updates work? +

The installer keeps itself current. Gloam checks GitHub on launch, downloads new versions in the background as deltas, and applies them silently the next time the app exits or restarts. No re-downloading, no reinstalling, no administrator prompt. Every release is code-signed. The portable build does not auto-update; to upgrade it, replace it with a newer zip.

What should I pick for Night Mode? +

For the button: use Off when you need exact daylight color, Auto for normal evening use, and Manual when you want warmth immediately regardless of schedule. Start around 2700K for a strong warm mode, then raise it if the screen feels too amber for your room.

For the rendering algorithm: Perceptual (the default) eases the white point partway toward warm, so colors stay close to normal while blue is cut. Accurate (CIE 1931) applies a full-strength black-body white point, colorimetrically exact but strongly warmed and desaturated. Ultra Night (amber) goes furthest, cutting roughly 90% of blue and most of green for maximum circadian protection in the darkest part of the evening; it is not color-accurate. Classic is a traditional photo-style tint.

If you care about the biological effect rather than the look, set a melanopic dose ceiling on the schedule. Gloam then picks the least visible combination of extra warmth and dimming that keeps the screen's melanopic light at or under your target, scored in CAM16-UCS so the change stays perceptually small.

Windows says it "protected my PC". Is something wrong? +

No. Gloam is code-signed; click More info and you will see the verified publisher. That dialog is Microsoft SmartScreen, which also weighs download reputation. New signed apps can show reputation warnings until enough people have installed them. Click More info, then Run anyway. It stops appearing as Gloam gains installs, and it is unrelated to whether the app is signed or safe.

Is it really free and open source? +

Yes. Gloam is MIT licensed and the source is on GitHub. ArgyllCMS, which Gloam invokes as a separate process for measurement, is AGPL v3. Gloam does not link against it.