Open the ray files LED manufacturers publish and look at them: every ray from its real start point, the far field they add up to, the irradiance a plane millimetres above the source receives, the spectrum.
Nothing to install. Your files are read in your browser and never uploaded; this site keeps no logs of what you open. Needs WebGPU: Chrome, Edge, Safari 26, or Firefox with WebGPU enabled.
An LDT or IES photometric file describes a luminaire as a point: intensity in every direction, measured far enough away that the size of the source no longer matters. That is all a lighting designer needs for a room.
It is not enough for someone designing the optic itself. Put a lens two millimetres above a die and the point-source assumption collapses, because different parts of the lens see different parts of the emitter. So LED makers publish ray files instead: every ray with a start point in millimetres, a direction, a flux, and optionally a wavelength, polarisation state or colour coordinates. Packages run from 100 000 to 20 million rays.
IES TM-25 is the vendor-neutral format for that data, consumed by Zemax OpticStudio, LightTools, SPEOS and similar tools. ams OSRAM, Lumileds, Nichia and Cree all ship it. Until now, looking at one meant a Windows desktop application or a licence for one of those optics packages. This viewer runs in the browser.
Drawn from their real start points, so the die, the lens exit and the package geometry are visible.
Every ray binned into a C/γ grid with solid-angle normalisation, the same distribution an LDT would carry, with x and y cross sections.
A target plane from 0.1 mm to 500 mm above the source, in W/m², where the point-source model breaks down.
PPFD for horticultural sources, and ICNIRP actinic dose for UV emitters, from the header spectrum.
The viewer exports what it computes as EULUMDAT, IES, ATLA XML with the
spectrum attached, or a relative .spd. Files of any size
stream through the browser in slices; a 560 MB, 20-million-ray package
opens without being loaded into memory.
Vendor licences permit use but not redistribution, so no manufacturer's file can be offered here. Instead there is a generated one, free to copy, ray-traced from an analytic model: a 1 mm square chip emitting Lambertian under a 1.4 mm silicone dome, refracted at the dome surface by Snell's law, with a small fraction escaping past the rim. Each ray starts where it leaves the package, on the dome or in the rim gap, as in a vendor file. It carries a phosphor-white spectrum and a per-ray wavelength.
To keep a copy, download 25k rays (0.8 MB) or 100k rays (3.2 MB) and drop it on the viewer. Both describe the same source: 1.05 W radiant, half intensity at 61°. It is a simulation and its header says so.
For checking luminance code there is also a ground truth: a flat 1 × 1 mm Lambertian square, 1 W, 1M equal-flux rays with a flat 360–830 nm spectrum, whose radiance is exactly 318 310 W/(sr·m²) at every point and in every direction. Open it or download it (32 MB), and see the luminance notes for the method and the noise to expect.
For real measured data, ams OSRAM, Lumileds, Nichia and Cree publish ray files on their product pages, usually beside the datasheet and in several ray counts. Those are the files the reader was verified against.
The reader behind the viewer is tm25ray, a Rust crate with no dependencies that parses, writes and streams TM-25 files and bins them into a far field. The format is documented in its format notes, reverse-engineered from vendor files and checked against the standard and Julius Muschaweck's C++ TM25RaySetTools. The 3D viewer is part of eulumdat-rs, whose editor runs here too, at tm25.eu/app/ (and at iesna.eu): from the viewer, one click hands the ray set to its virtual goniophotometer, which replays the rays through covers and reflectors placed millimetres above the source.
[dependencies]
tm25ray = "0.2"