Ambient Light (Remote)
Pair a phone to stream its front-facing ambient light sensor — the tiny photodiode next to the earpiece that drives auto-brightness. Readings travel over a WebRTC data channel and are plotted live below, along with the auto-brightness curve they feed and the flicker spectrum hiding inside them.
Enter the 4-digit code shown on the host laptop to use this phone as its light sensor.
Pair your phone
Generating session…
On your phone, open sensingstudio.org/ambient-light-remote and enter this code.
Join a session
Enter the 4-digit code from the host laptop:
Illuminance (lux)
Source —
Cover the top of the phone with your hand, then point it at a lamp or a window: indoor light is roughly 100–500 lx, an overcast sky 1 000–10 000 lx, direct sun above 50 000 lx. That is a range of five decades, which is why the log axis is the honest way to draw it.
Auto-brightness (illuminance → backlight)
Backlight —
The backlight follows the log of illuminance, not the illuminance itself — perceived brightness is roughly logarithmic, so a linear map would blast the screen the moment you walk past a window. Gamma bends that curve, floor keeps the screen readable in the dark, and smoothing is the first-order lag (τ) that stops a passing shadow from strobing the display. Drop τ to zero and watch the green operating point chase every flicker of the red one.
Flicker spectrum (magnitude, dB, relative to DC)
Mains-powered lamps flicker at twice the line frequency — 100 Hz where the grid is 50 Hz, 120 Hz where it is 60 Hz — because the bulb does not care which way the current flows. PWM-dimmed LEDs and phone screens add their own tones, often in the hundreds of hertz. This sensor samples far too slowly to see any of that directly: everything above fs/2 folds back down to an alias, so a 120 Hz flicker sampled at 50 Hz shows up at |120 − 2×50| = 20 Hz. Wave the phone slowly under a lamp and the low-frequency end fills in with the motion instead.
Display
Light Sensor Mode
This phone streams its ambient light readings to the laptop. Tap Start and keep the screen on.
Status
Tap Start to enable the light sensor and connect.
Only some Android builds expose the real ambient light sensor to the browser (Chrome needs chrome://flags/#enable-generic-sensor-extra-classes). Everywhere else — iOS included — this falls back to measuring the average brightness of the front camera, which tracks the same light with different units. Nothing from the camera leaves the phone except one number per frame.
Try a different code
Enter a 4-digit code from the host laptop:
Live reading
—
—