Skip to main content

IES · EULUMDAT · PHOTOMETRY

Preview measured light
from its photometry.

ies-tools reads the photometric files lighting manufacturers publish. It validates them, reports what they measure, converts between formats, and renders the light falling on a floor and wall from the measured intensity table.

MIT · Node and browsers · Files never leave your machine

Live: a track light from its IES file. Drag to orbit, gear for settings, tabs for charts.

ONE PARSER, FOUR SURFACES

Use it wherever you work with light.

CLI

In your terminal

Validate, inspect and convert files, serve a local preview, and export PNG renders and SVG charts.

npm install -g @ies-tools/cli
ies inspect luminaire.ies
ies view luminaire.ldt --open
Read the guide →
React

In your React app

Drop in the 3D light viewer, polar and Cartesian intensity curves, isolux plots and an inspection panel.

import { LightViewer } from '@ies-tools/viewer/react';

<LightViewer src="/lights/luminaire.ies" />
Read the guide →
Web component

On any page

One self-contained <light-viewer> element for plain HTML, Vue, Svelte or a CMS. No framework required.

<script type="module" src="https://cdn.jsdelivr.net/npm/@ies-tools/viewer/dist/light-viewer.js"></script>
<light-viewer src="/lights/luminaire.ies"></light-viewer>
Read the guide →
VS Code

In your editor

Open an .ies or .ldt file to see it lit, with validation and photometric statistics beside the preview.

code luminaire.ies
Read the guide →

VS CODE EXTENSION

Open a file, see it lit.

Open an .ies or .ldt file to get the same live preview beside validation results and photometric statistics. The preview refreshes as you edit the source.

Set up the extension →
The light viewer's 3D view of a track light 3 m above the floor beside a wall, switching to Measurement mode with isolux contours and a legend, then stepping through the polar, Cartesian, topology, isolux, cone, luminance and intensity table tabs

MEASURED, NOT GUESSED

The preview follows the data.

The viewer samples the Type C candela table in every direction, then applies inverse-square falloff and the receiving surface's cosine. A narrow spot, a wall washer and an asymmetric street light each look like what their files describe.

It renders on your GPU with WebGL2. The CLI's PNG export confirms the browser reports a hardware renderer and rejects software rasterizers. The preview shows direct diffuse light; it does not simulate room interreflection or luminaire-body shadows.

Explore the photometric graphs →
IES LM-63
1986, 1991, 1995, 2002 and 2019 editions, with embedded tilt data
EULUMDAT
.ldt files, including alternative lamp configurations
Validation
Stable diagnostic codes, a strict mode and JSON output for CI
Conversion
IES ↔ LDT ↔ JSON, with stable codes for each conversion loss
Statistics
Integrated flux, efficacy, peak intensity and beam and field angles
Charts
Polar, Cartesian, 3D intensity topology and isolux ground plots

INTERACTIVE 3D VIEW

Move the light, watch it land.

Drag the light to change its height and distance from the wall. The light on the floor and wall updates as you move it, and you can orbit and zoom to inspect the result.

Try the live viewer →
The light viewer selecting a track light and dragging it up and sideways while its height label and the light on the floor and wall follow, then orbiting lower and zooming in

A TYPED LIBRARY UNDERNEATH

Build your own lighting tools.

@ies-tools/core has no dependencies and runs in Node and the browser. Parse a file, sample intensity in any direction, and serialize to either format.

Browse the API reference →
import { parsePhotometry, sampleIntensity, serializeLDT } from '@ies-tools/core';

// IES or LDT, detected from the content
const document = parsePhotometry(text);

// Candela at γ = 30°, C = 90°
sampleIntensity(document.profile, 30, 90);

const { value, warnings } = serializeLDT(document);