TOOLS
Illuminance & Uniformity Analyzer
Record your lux readings. Find the dark spots. Keep a report you can check.
Your measurements
≈ 522.2 lx
Average
255 lx
Minimum
582 lx
Maximum
≈ 0.488
Uniformity U₀
Min / averageSchematic, not to scale. Each cell shows its centre reading. Colour is relative, not a compliance result. Labels may be rounded; exact readings are in the editor and table. No interpolation.
All point readings
| Point | x / y m | Reading lx | Record / note |
|---|
Good to know
Where should I take the readings?
Measure at the centre of each equal-sized cell, on the same horizontal plane. Coordinates run right and down from the top-left of the measured rectangle. Follow your project’s measurement method for the grid spacing, wall offsets and measurement height.
Use the rectangle for the area you actually want to assess. This version does not combine different heights or irregular sampling patterns into one average.
Why can the average be enough, but uniformity too low?
A bright centre can raise the average while a corner stays dark. Compare the two requirements separately. Select “Minimum” to locate the lowest recorded point and recheck the area.
This tool compares recorded values with the targets you enter. A numerical match does not account for instrument uncertainty or prove acceptance near a limit. It does not assess glare, colour rendering, flicker or full compliance with a lighting standard.
What do the two uniformity ratios mean?
U₀ = minimum ÷ average
Min / max = minimum ÷ maximum
These are different ratios. A higher value means a more even set of readings. CIE defines illuminance uniformity using minimum / average. Compare against unrounded values; rounded values are for display.
What if a point is missing or reads zero?
A blank point is unmeasured. Add a note if it is blocked. Incomplete surveys show provisional statistics for recorded points, and no completed target judgement. Zero is a real reading and is included.
When every recorded reading is zero, division by zero makes both ratios undefined. A single reading can be recorded, but cannot describe the spatial uniformity of a room.
Can this page measure light with my phone?
This page records readings from a meter; it does not access your camera or phone sensor. Record the meter and calibration reference in “Measurement record”. Let the reading settle and keep the sensor clear of your own shadow.
The reported minimum is the lowest measured point. There may be darker locations between points.
How do I keep a record or work without internet?
Changes are saved in this browser when storage is available. One tab can edit the draft at a time. “Save / report” downloads a project file you can reopen, a working offline HTML copy, or opens a printable report. CSV contains every planned point, including blanks.
The report includes the grid, height, targets, raw readings and entered measurement details. Example data stays labelled. Browser storage can be cleared; keep a downloaded backup.
Working on a lighting project?
Keep the measurements with your project details when discussing the installation.
For AI agents: instructions and calculation APIs
Read the tool instructions in Markdown and the request/response schemas in OpenAPI. These public calculation APIs run the same models as the web and offline calculators. No account, API key or Turnstile is required.
- Illuminance & Uniformity Analyzer — Full tool instructions (Markdown)
- OpenAPI contract
- Agent site index
Illuminance & Uniformity Analyzer
POST /api/tools/v1/illuminance
Content-Type: application/jsonAnalyze recorded illuminance on one horizontal rectangular area, sampled at equal-area cell centres. This is measurement analysis, not a lighting simulation. Supply every physical input explicitly in metres and lux. It does not use a phone sensor, invent readings or assess compliance, calibration or measurement uncertainty.
illuminance
Measured illuminance and uniformity
The example is illustrative: an 8 m by 6 m rectangle, a horizontal plane 0.75 m above the floor, 6 columns by 4 rows and 24 readings. illuminanceLux is row-major, top row first, left to right; its length must equal rows × columns. A1 is the top-left cell centre, x increases right and y increases down. Null is unmeasured; zero is a recorded value. Set either target to null when it is not supplied; do not infer defaults from a room name.
{
"widthM": 8,
"depthM": 6,
"measurementHeightM": 0.75,
"columns": 6,
"rows": 4,
"illuminanceLux": [
520,
548,
564,
582,
560,
534,
486,
522,
550,
574,
566,
540,
472,
508,
539,
562,
553,
524,
255,
482,
520,
542,
530,
500
],
"targets": {
"averageLux": 500,
"uniformityMinAvg": 0.6
}
}To review in the page, save result.project as JSON and use Open project. It contains the same engineering facts and empty site/operator/calibration fields; fill those locally. links.share is null: project metadata is not encoded in a public URL. The browser can print/save PDF, export all points as CSV, download a project, and produce an offline HTML copy. API input does not accept personal or site records; the API does not persist readings. Project files are separate from API requests and have their own format/version. CSV values use metres and lux. The lowest measured point does not establish the continuous-area minimum.
Request limits and errors
Send uncompressed application/json with strict types and no query parameters. Indoor lighting bodies are limited to 16 KiB; driver-match bodies to 16 KiB; battery bodies to 16 KiB; voltage bodies to 16 KiB; resistor bodies to 16 KiB; DMX bodies to 1024 KiB and 1000 fixtures; pixel bodies to 64 KiB, 64 run rows, 128 outputs and 2000000 channels. DALI bodies are limited to 64 KiB, 24 rows and 512 devices. Illuminance bodies are limited to 16 KiB and 400 planned points. Photometry bodies are limited to 1024 KiB with up to 4 files and 16 by 721 query directions per file. Lighting-cost bodies are limited to 64 KiB with up to 20 groups in each scenario. Body reading expires after 5 seconds. Complete success JSON is bounded to 4 MiB. GET/HEAD return 405; OPTIONS returns 204. Source responses are no-store. Anonymous browser CORS permits POST/OPTIONS and Content-Type with credentials omitted.
Tool POST requests and ordinary page requests share 120 requests per 60 seconds per IP/Cloudflare location; mitigation lasts 60 seconds. Heavy tool use can temporarily block pages from the same source. This is not an independent or globally exact API quota. Inquiry/search use their existing separate rule. Tool POST requests do not inherit the company-page or verified-bot exemption.
Cloudflare can return 403/429/5xx before the application, sometimes as HTML without CORS or Retry-After. Check HTTP status and Content-Type before parsing JSON. A browser may see only a network error. Do not present an error or an older result as a successful new calculation.