Spectral tuning#
Spectral tuning means controlling the underlying spectral power distribution of a light source, not only the visual color point.
A common RGB or tunable-white light can produce many appearances, but it does not necessarily expose the measured emitter data needed to reason about the spectrum. Enody devices expose emitters and their spectral measurements through the public SDK, so software can make decisions from measured light output.
Spectral, temporal, spatial#
Light quality can be discussed in three broad categories:
- Spectral composition: which wavelengths are present and how much power each wavelength contributes.
- Temporal behavior: how light changes over time, including dimming and rapid modulation.
- Spatial distribution: where light goes in the environment.
The first public SDKs focus most heavily on spectral composition and device control. The platform is designed to grow without changing the core hierarchy.
Blackbody targets#
Blackbody emitters include sunlight, flame, candlelight, and incandescent filaments. Their spectral power distributions are smooth and temperature dependent. The SDK exposes blackbody display targets through:
fixture
.display(Configuration::Blackbody(2700.0), Flux::Relative(0.8))
.await?;
Chromaticity targets#
Chromaticity targets use CIE 1931 (x, y) coordinates:
Use the SDK's chromaticity configuration type when you need to target a specific
CIE 1931 coordinate such as (0.3127, 0.3290).
Chromaticity is useful for matching a perceived color point. Spectral tuning goes further by considering the shape of the whole spectral distribution.
Manual targets#
Manual mode is the bridge between measured emitters and custom optimization. Set flux on each emitter, then ask the fixture to display the manual state:
for emitter in source.emitters().await? {
emitter.set_flux(Flux::Relative(0.5)).await?;
}
fixture
.display(Configuration::Manual, Flux::Relative(1.0))
.await?;