Monitor Calibration Test

Run full-screen gamma, black level, grayscale, contrast and color patterns to calibrate any monitor by eye.

Eight full-screen patterns for brightness, contrast, gamma, grayscale and color. Open one, adjust your display, then record what you saw in the checklist below.

Current pattern: Black level

Test patterns

Gamma check

On the gamma pattern, four gray patches sit on a field of alternating 1-pixel black and white lines. That line field averages 50% light, so the patch that blends into it tells you your display gamma: patch value = 255 × 0.51/γ. Step back a metre or squint — the pattern only works when the lines blur together.

Pick a patch to estimate your display gamma. The sRGB standard target is 2.2.

Checklist

0 of 8 patterns checked

The download is a plain PNG of the selected pattern at your screen resolution — useful for testing a TV or a console from a USB stick, where a browser is not available.

No uploads. Your files stay on your device.

Free forever, no sign-up, no cookies. Buy me a coffee

How it works

This monitor calibration test draws the classic display-check patterns with the Canvas API and shows them full screen. Start with black level: turn brightness down until the darkest squares merge into the background, then back up until every square from level 4 upwards is just visible. Do the same at the top with white level — if the 249 and 251 squares vanish into white, your contrast or highlight setting is clipping. The grayscale ramp and contrast steps reveal banding and crushed ends, the gamma pattern estimates your tone response curve against the sRGB target of 2.2, the color bars use the 75% (level 191) primaries, and sharpness and uniformity expose scaling artefacts, backlight bleed and tint shifts across the panel. Inside the test, / move between patterns and Esc brings you back to the checklist.

A visual test like this gets you close, but it cannot replace a hardware colorimeter: it can only tell you what your eyes and your current viewing conditions report. Work in dim, even lighting, let the display warm up for 15–30 minutes, set your OS color profile to sRGB first, and never judge black level in a bright room. Everything here runs entirely in your browser — the patterns are generated locally, nothing is uploaded, and there are no ads or overlays on top of the test area.

Frequently asked questions

How do I calibrate my monitor without a colorimeter?

Let the display warm up for 15 to 30 minutes, set your OS colour profile to sRGB, and work in dim, even lighting. Open the black level pattern and lower brightness until the darkest squares disappear, then raise it until every square from level 4 upwards is just visible. Switch to white level and lower contrast until the 249 and 251 squares stop merging into the white background. Finish with the grayscale ramp, contrast steps and colour bars to catch banding, crushed ends and tints. This gets you close, but only a hardware colorimeter can measure actual luminance and white point.

What should my monitor gamma be?

2.2 is the sRGB standard and the right target for general desktop use, web work and most photo editing; 2.4 is the video/Rec. 709 dark-room target and 1.8 is a legacy Mac value you rarely want today. On the gamma pattern four grey patches sit on a field of alternating one-pixel black and white lines that averages 50% light, so the patch that blends in reveals your curve. The patch levels come straight from 255 x 0.5^(1/gamma), which gives 174 for 1.8, 180 for 2.0, 186 for 2.2 and 191 for 2.4.

Why does the fine checkerboard pattern shimmer on my screen?

A one-pixel checkerboard should average out to flat grey when each pattern pixel lands on exactly one physical pixel. Shimmer, moire or a coloured sheen usually means the image is being scaled — the monitor is not running at its native resolution, the browser is zoomed, or the panel is applying a sharpening filter. Reset browser zoom to 100%, set the display to its native resolution, and turn any sharpness or overdrive enhancement to its neutral setting, then look again.

Report a bug