User Rating 0.0
Total Usage 0 times
Drop image here or click to browse PNG, JPEG, WebP • Max 16 MP
Is this tool helpful?

Your feedback helps us improve.

About

Night vision devices amplify residual photons through a photocathode and micro-channel plate, then project the result onto a phosphor screen. The characteristic green glow comes from P43 (Gd2O2S:Tb) phosphor, chosen because human scotopic vision peaks near 555nm. This tool replicates that pipeline digitally: it extracts per-pixel luminance using ITU-R BT.709 coefficients (L = 0.2126R + 0.7152G + 0.0722B), injects Gaussian sensor noise via Box-Muller transform, applies a gain curve, then tints through a phosphor color lookup. Scanline artifacts, radial vignette (simulating the round objective lens), and a bloom pass complete the effect. Getting these parameters wrong produces cartoon-ish results. The noise floor, gain, and bloom radius interact non-linearly. This tool exposes those controls individually so you can match specific generation hardware characteristics - Gen I high-noise with heavy vignette, Gen III low-noise with tight bloom.

night vision effect image filter png editor green phosphor military filter image processing night vision overlay

Formulas

The luminance of each pixel is computed using ITU-R BT.709 luma coefficients:

L = 0.2126 R + 0.7152 G + 0.0722 B

Gaussian noise is generated via the Box-Muller transform and added to the luminance channel:

n = 2 ln(u1) cos(2πu2)

where u1 and u2 are uniform random values in (0, 1]. The noisy luminance is then amplified by a gain factor g:

L = clamp(g (L + σ n), 0, 255)

Phosphor tinting maps L into RGB through the phosphor color vector (Pr, Pg, Pb):

Rout = L Pr255

The vignette mask is computed from normalized radial distance d from image center:

V(d) = 1 dp

where p controls falloff steepness (typically 2.0 - 4.0). Bloom is a multi-pass box blur applied to pixels exceeding a brightness threshold, then additively composited.

Reference Data

GenerationEraPhotocathodePhosphorSNRResolution (lp/mm)GainTypical NoiseVignette
Gen 01940sS-1 (AgOCs)P1 Green3 - 515 - 20100 - 1000×Very HighExtreme
Gen I1960sS-20 Multi-alkaliP20 Green5 - 1025 - 351000 - 10000×HighStrong
Gen II1970sS-25 (GaAs)P43 Green12 - 1832 - 4020000 - 30000×MediumModerate
Gen II+1980sSuper-Gen (GaAs)P43 Green18 - 2240 - 5125000 - 35000×Low-MedMild
Gen III1990sGaAs/AlGaAsP43 Green22 - 2851 - 6430000 - 50000×LowMild
Gen III+ (Filmless)2000sFilmless GaAsP43 Green25 - 3364 - 7250000 - 70000×Very LowMinimal
Gen III OMNI2010sAutogated GaAsP43/P45>2864 - 81>70000×MinimalMinimal
White Phosphor2010s+GaAsP45 White>2864 - 81>70000×MinimalMinimal
Digital (CMOS)2015s+CMOS SensorDisplayVariesSensor-dependentDigital AGCPixel noiseNone
Thermal (LWIR)1980s+MicrobolometerDisplayNETD-based320 - 1280pxN/AFPNNone

Frequently Asked Questions

Human photopic vision has peak sensitivity near 555 nm, which falls in the green spectrum. P43 (Gd₂O₂S:Tb) phosphor emits at approximately 545 nm, maximizing perceived contrast and detail in low-light amplified imagery. Modern P45 (Y₂O₂S:Tb) white phosphor tubes are gaining popularity because they reduce eye fatigue during extended use and provide slightly better contrast discrimination, though the green P43 remains the standard reference.
Real SNR is measured as the ratio of signal current to noise current at the photocathode output, typically ranging from 3 (Gen 0) to 33+ (Gen III OMNI). This tool's noise sigma parameter inversely maps to SNR: a sigma of 40-50 approximates Gen I noise floors, while 5-10 simulates Gen III+ cleanliness. The Box-Muller Gaussian distribution used here is a reasonable approximation of real photon shot noise, which follows a Poisson distribution that converges to Gaussian at high photon counts.
Bloom replicates halo artifacts caused by bright point sources (headlights, streetlamps) saturating the micro-channel plate. Excess electrons spread laterally across adjacent channels, creating a characteristic glow around bright objects. In Gen II and earlier tubes, this can obscure significant portions of the field of view. The tool simulates this via a box-blur convolution on pixels exceeding a brightness threshold, then additively composites the blur layer.
Scanlines replicate the raster pattern visible in tube-based image intensifiers where the phosphor screen has discrete horizontal structures. Modern filmless Gen III tubes exhibit minimal scanline artifacts, but Gen I and Gen II devices show pronounced horizontal banding at approximately 25-40 line pairs per millimeter. The tool's scanline density control lets you match the visible frequency for each generation.
The tool processes pixels in chunked batches using requestAnimationFrame to avoid blocking the browser's main thread. A progress bar tracks completion. However, Canvas 2D has browser-specific memory limits (typically 16,384×16,384 pixels maximum on desktop, lower on mobile). Images exceeding approximately 16 megapixels may fail silently on some browsers. For best results, keep source images under 8 megapixels.
The vignette mask multiplies every pixel's final value by a radial falloff function V(d) = 1 − d^p. At high vignette strength (large p exponent with tight radius), pixels beyond 60-70% of the frame radius are attenuated by 50% or more. This is physically accurate: real night vision objective lenses exhibit cos⁴(θ) light falloff, and the round eyepiece aperture clips the rectangular sensor area. Reducing vignette strength flattens this curve.