TOOLS

Illuminance & Uniformity Analyzer

Record your lux readings. Find the dark spots. Keep a report you can check.

EXAMPLE DATATry the example, or start with an empty grid.
View readings & results

Your measurements

MEASURED POINTS24 / 24 recorded

≈ 522.2 lx

Average

255 lx

Minimum

582 lx

Maximum

≈ 0.488

Uniformity U₀

Min / average
Min / max: ≈ 0.438

Measured point map

Minimum point

Schematic, 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.

SELECTED POINT

A1

Enter saves the value and moves along the row.

Point note — obstruction or measurement detail
All point readings
Point coordinates and recorded readings. Coordinates start at the top-left of the measured rectangle.
Pointx / y mReading lxRecord / 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?
Average = sum of recorded readings ÷ recorded point count
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.

Discuss Your Project

Set up a new survey

Start with a rectangular area and equal-sized cells.

Changing the grid clears readings because the physical positions change. You can undo the change.

Paste point readings

Top row first, left to right. Tabs or commas separate columns; new lines separate rows. Blank cells stay unmeasured.

Replaces the whole grid. Notes at the same point are retained. Undo is available.

Keep your survey

Take the values, the layout and the measurement record with you.

Replace this survey?

Copy your results

Automatic copying is unavailable here. Select and copy the text.

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

POST /api/tools/v1/illuminance
Content-Type: application/json

Analyze 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.