Tools
Indoor Lighting Calculator
Find how much light you need. Adjust the inputs. See the difference.
This calculation could not be restored.
The link contains missing or invalid inputs.
Your estimate
Average illuminanceComplete your inputs
Check the highlighted fields to see an updated estimate.
13 fixtures
at 1,000 lm each
Room & quantity
13 symbolsSymbols show quantity, not installation positions. No photometric layout is calculated.
Compare light outputs
Same room and target; different outputs per fixture.
| Lumens / fixture | Quantity | Average |
|---|
Generic output values, not recommended products. Select a row to use it.
How the estimate works
Average illuminance does not tell us the minimum at any point, uniformity or glare. Room height and beam angle affect utilization; neither can be inferred from lumens alone.
Planning estimate only. Verify placement, uniformity and glare with actual photometric data. Natural light is excluded.
Good to know
A few details that make the estimate more useful.
Why can the suggested quantity seem high?
Check the area, target and the actual lumens per fixture. A task target applied across an entire room can require more light than a local desk or counter. The estimate also allows for light that does not reach the calculation plane and for maintenance losses.
Compare outputs to see the quantity change. A brighter fixture may reduce the count, but distribution and glare still need a design check.
What if I have not selected a light?
Choose “Not chosen yet?” to see the total output requirement. You can then compare generic outputs without knowing a product model. Use the final fixture specification when you have one.
Can I use LED strips or linear lights?
For identical complete linear fixtures, use the output of one complete fixture: output per metre or foot × its length. Include the effect of any diffuser or lens in that lumen value.
Bare strip output and cove lighting need installation-specific utilization data. This calculator does not estimate the light at a point directly below a strip, nor the illumination produced by a reflective cove.
Do the symbols show where to install the lights?
No. The room outline follows your dimensions; symbols only make the calculated quantity easier to understand. They are arranged for display, without a photometric spacing or uniformity check.
If you only enter an area, no room shape is invented. More than 120 symbols are withheld so the diagram remains usable; the numerical estimate is complete.
Method and assumptions
Required total lumens = target lux × area in m² ÷ (utilization × maintenance). Fixture quantity is rounded up. Maintained average = installed fixture lumens × utilization × maintenance ÷ area.
The utilization factor here is referenced to complete-luminaire output (utilance). Do not apply a lamp-based CU or deduct the fixture's optical losses twice. The example uses 0.60 utilization and 0.80 maintenance; these are assumptions, not measured room properties.
Purpose references are editable starting values, not local compliance requirements. They refer to the appropriate working plane. The main calculation remains a room-average estimate.
1 ft = 0.3048 m; 1 fc = 1 lm/ft² ≈ 10.76391 lx. Input conversion and whole-fixture rounding use exact decimal arithmetic.
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.
Indoor Lighting Calculator
POST /api/tools/v1/indoor-lighting
Content-Type: application/jsonEarly sizing with the lumen method, using complete-luminaire output. The result is an average on the calculation plane, not a point-by-point photometric design. Natural light, uniformity, glare, fixture positions and compliance are excluded.
fixtures · lumens · check
Estimate fixture quantity
Supply areaM2, targetLux, lumensPerFixture, utilization and maintenance. All are required SI numbers. The example needs 12,500 lm and 13 fixtures, giving 312 lx maintained average. The supplied factors are engineering inputs, not verified room properties.
{
"operation": "fixtures",
"areaM2": 20,
"targetLux": 300,
"lumensPerFixture": 1000,
"utilization": 0.6,
"maintenance": 0.8
}Open links.share to restore SI inputs as area-only geometry. The browser deliberately does not invent a room shape. Browser shares can also preserve supplied room dimensions and display units. Save CSV, print/PDF or download an offline HTML calculator. Use complete-fixture lumens after lenses/diffusers and utilization on that same basis; do not subtract optical losses twice. Request suitable photometric data and verify mounting, task plane, uniformity and glare separately. The offline endpoint is a browser download, not a calculation API.
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.