TM-30 MIX v1.6.1 is a browser-based tool for analyzing and blending spectral power distributions (SPDs) of light sources according to ANSI/IES TM-30-20. It requires no server, no installation — all computation runs locally in JavaScript.
TM-30 MIX v1.6.1 — браузерный инструмент для анализа и смешения спектральных плотностей мощности (СПМ) источников света в соответствии с ANSI/IES TM-30-20. Не требует сервера и установки — все вычисления выполняются локально в JavaScript.
Two light sources (A and B) are loaded as spectral data files. A slider blends them in any proportion. For every slider position, the full TM-30-20 metric set is computed instantly from a pre-calculated cache. The PDF REPORT button exports a multi-page printable report with all charts, metrics, and the Rg/Rf blend trajectory.
Два источника света (A и B) загружаются как файлы спектральных данных. Ползунок смешивает их в любой пропорции. Для каждого положения ползунка полный набор метрик TM-30-20 вычисляется мгновенно из предварительно рассчитанного кеша. Кнопка PDF REPORT экспортирует многостраничный печатный отчёт со всеми графиками, метриками и траекторией смешения Rg/Rf.
The parser accepts text files with two columns: wavelength (nm) and relative power. It auto-detects delimiters (, ; TAB SPACE) and decimal separators.
Парсер принимает текстовые файлы с двумя столбцами: длина волны (нм) и относительная мощность. Автоматически определяет разделители (, ; TAB ПРОБЕЛ) и десятичные разделители.
| FormatФормат | NotesПримечания |
|---|---|
.csv / .txt | Any delimiter, wavelength in first column (200–2500 nm), power in any subsequent columnЛюбой разделитель, длина волны в первом столбце (200–2500 нм), мощность в любом последующем столбце |
.spd / .dat | Same text structureТа же текстовая структура |
| Multiple columnsНесколько столбцов | The column with the largest sum (highest total power) is selected automaticallyВыбирается столбец с наибольшей суммой значений |
| Header linesЗаголовки | Lines starting with # ! ; % are skippedСтроки, начинающиеся с # ! ; %, пропускаются |
After loading, the slot shows: CCT (K), Duv, Rf, Rg, Ra — computed for the pure spectrum, independently of any mixing.
После загрузки в слоте отображается: ЦКТ (К), Duv, Rf, Rg, Ra — вычисленные для чистого спектра, независимо от смешения.
Raw SPD files may use arbitrary power scales (0–1, 0–100, 0–1000 W/nm). Before any mixing, each SPD is normalised so that its photopic luminous weight equals 1:
Исходные SPD-файлы могут использовать произвольные шкалы мощности (0–1, 0–100, 0–1000 Вт/нм). До смешения каждый SPD нормируется так, чтобы его фотопическая световая интенсивность была равна 1:
where ȳ₁₀ is the CIE 1964 10° luminous efficiency function, Δλ = 5 nm.где ȳ₁₀ — фотопическая функция эффективности CIE 1964 10°, Δλ = 5 нм.
After this normalisation, both sources A and B have equal luminous weight. At any blend position t, the mixed spectrum has Y = 1 before the TM-30 engine rescales internally to Y = 100. The 50/50 mix therefore represents exactly equal photometric contributions from both sources — regardless of how the original files were scaled.
После нормировки оба источника A и B имеют равный световой вес. При любом положении ползунка t смешанный спектр имеет Y = 1 до того, как движок TM-30 самостоятельно нормирует его к Y = 100. Смешение 50/50 означает ровно равный фотометрический вклад обоих источников — независимо от исходного масштаба файлов.
Mixing is performed in the spectral domain. At blend position t ∈ [0, 1] the mixed SPD is:
Смешение выполняется в спектральной области. При положении ползунка t ∈ [0, 1] смешанный СПМ:
t = 0: pure source A; t = 1: pure source B; t = 0.5: equal-power mix.t = 0: чистый источник A; t = 1: чистый источник B; t = 0,5: смешение с равной мощностью.
This is physically equivalent to additively mixing two light sources (e.g. two LED channels), where the slider controls the relative radiant power ratio. The model is linear and radiometrically self-consistent when both spectra are normalised as above.
Это физически эквивалентно аддитивному смешению двух источников света (например, двух каналов LED), где ползунок управляет соотношением относительных лучистых мощностей. Модель линейна и радиометрически самосогласована при условии нормировки обоих спектров.
When both files are loaded, all 201 positions (t = 0, 0.005, 0.010, … 1.000) are computed asynchronously in the background via setTimeout. Each slider step reads from the cache instantly — no recalculation delay.
При загрузке обоих файлов все 201 позиция (t = 0; 0,005; 0,010; … 1,000) вычисляются асинхронно в фоне через setTimeout. Каждый шаг ползунка читает из кеша мгновенно — без задержки пересчёта.
CCT is computed using Robertson's 1968 algorithm from the CIE 1931 2° chromaticity coordinates of the mixed SPD. Thirty-one isotherms cover 1667–∞ K (mired 0–600).
ЦКТ вычисляется по алгоритму Робертсона (1968) из координат хроматичности CIE 1931 2° смешанного СПМ. Тридцать одна изотерма покрывает диапазон 1667–∞ К (миреды 0–600).
Duv is the signed distance from the test chromaticity to the nearest point on the Planckian locus in the CIE 1960 (u, v) diagram. Positive values indicate greenness, negative values pinkness.
Duv — знаковое расстояние от хроматичности теста до ближайшей точки планковского локуса на диаграмме CIE 1960 (u, v). Положительные значения — зеленоватость, отрицательные — розоватость.
The TM-30-20 engine follows ANSI/IES TM-30-20 and its predecessor CIE 224:2017. Four components:
Движок TM-30-20 следует стандарту ANSI/IES TM-30-20 и его предшественнику CIE 224:2017. Четыре компонента:
| ComponentКомпонент | Value usedИспользуемое значение |
|---|---|
| Color matching functionsФункции цветового согласования | CIE 1964 10° (CES colorimetry)(колориметрия CES); CIE 1931 2° (CCT)(ЦКТ) |
| Color spaceЦветовое пространство | CAM02-UCS (J′, a′, b′) |
| Color samplesЦветовые образцы | 99 CES (spectral reflectances, 5 nm)(спектральные отражательные способности, 5 нм) |
| Reference illuminantЭталонный осветитель | Planckian ≤ 4000 K; blended 4000–5000 K; CIE D-series ≥ 5000 KПланк ≤ 4000 К; смешение 4000–5000 К; серия D ≥ 5000 К |
Each CES sample under both test and reference illuminants is converted to CAM02-UCS coordinates (J′, a′, b′). The color shift ΔE for sample s is:
Каждый образец CES под тестовым и эталонным осветителями конвертируется в координаты CAM02-UCS (J′, a′, b′). Сдвиг цвета ΔE для образца s:
Eliminates discontinuity between Planckian and D-series references.Устраняет разрыв между планковским и D-серийным эталонами.
The 99 CES samples are grouped into 16 bins of 22.5° each in the a′b′ plane, based on their hue angle under the reference illuminant. Bin 1 starts at the positive a′ axis (reds). Each bin contributes to Local Chroma Shift, Local Hue Shift, and Local Color Fidelity.
99 образцов CES группируются в 16 бинов по 22,5° каждый в плоскости a′b′ по углу оттенка под эталонным осветителем. Бин 1 начинается с положительной оси a′ (красные). Каждый бин вносит вклад в локальный сдвиг хроматичности, сдвиг оттенка и локальный индекс верности.
Ra is computed in parallel with TM-30 for each slot's pure spectrum, using the classic CIE 13.3 method with 8 Munsell test color samples (TCS01–TCS08). The Von Kries chromatic adaptation is performed in the CIE 1960 (c, d) space.
Ra вычисляется параллельно с TM-30 для чистого спектра каждого слота по классическому методу CIE 13.3 с 8 образцами Манселла (TCS01–TCS08). Хроматическая адаптация Фон Криса выполняется в пространстве CIE 1960 (c, d).
Logarithmic transform ensures values stay ≥ 0 and penalise large shifts more strongly.Логарифмическое преобразование гарантирует значения ≥ 0 и сильнее штрафует за крупные сдвиги.
TM-30-20 Annex E defines nine specification criteria across three design intents (P, V, F) and three priority levels (1–3). The tool highlights the highest achieved level in each column.
Приложение E TM-30-20 определяет девять критериев спецификации по трём проектным намерениям (P, V, F) и трём уровням приоритета (1–3). Инструмент подсвечивает наивысший достигнутый уровень в каждом столбце.
Click the CVG panel header (or the canvas itself) to cycle through three views:
Кликните по заголовку панели CVG (или по самому графику) для переключения между тремя режимами:
Normalised polar plot. The reference circle (black) represents equal-chroma reference. The red polygon shows test-source deviations: outside = chroma increase, inside = decrease. Arrows indicate the vector shift per bin.
Нормированный полярный график. Чёрная окружность — эталон равной хроматичности. Красный многоугольник — отклонения тестового источника: снаружи = увеличение насыщенности, внутри = уменьшение. Стрелки — вектор сдвига по бину.
Scatter plot of all 99 CES samples. Black circles = reference coordinates; colored diamonds = test coordinates. The background is the actual CAM02-UCS a′b′ color gamut rendered via Lab→XYZ→sRGB. Pairs are connected by thin lines for each sample.
Диаграмма рассеяния 99 образцов CES. Чёрные круги — координаты эталона; цветные ромбы — координаты теста. Фон — реальный цветовой охват CAM02-UCS a′b′, отрендеренный через Lab→XYZ→sRGB. Каждая пара соединена линией.
2D quality map. When both sources are loaded, the full blend trajectory is pre-computed across all 201 positions (0–100 % B) and drawn as a Catmull-Rom spline passing exactly through every computed point. The current position is marked with a white circle. The trajectory can reveal non-monotonic behaviour: some intermediate blends may achieve higher Rg than either pure source. Use AUTO ZOOM to enlarge the data region.
Двумерная карта качества. При загрузке обоих источников полная траектория смешения предварительно вычисляется для 201 позиции (0–100 % B) и отображается сплайном Catmull-Rom, проходящим точно через все вычисленные точки. Текущая позиция отмечена белым кружком. Траектория может иметь немонотонный характер: некоторые промежуточные смеси могут давать Rg выше, чем у обоих чистых источников. Режим AUTO ZOOM увеличивает область данных.
| Hover sourceИсточник | CVG | a′b′ Shift | Rg/Rf |
|---|---|---|---|
| Bar chart column (bin)Столбец bin | Highlight sector + vectorПодсвет сектора + вектора | Dim non-bin points, enlarge bin pointsТускнят чужие точки, укрупняются свои | — (disabled)— (отключено) |
| CVG sector (angle)Сектор CVG (угол) | Highlight sectorПодсвет сектора | — | — |
| a′b′ point (CES sample)Точка a′b′ (образец CES) | — | Enlarge + labelУкрупнение + метка | — |
| CES bar (sample)Столбец CES (образец) | — | Highlight matching pointПодсветить соответствующую точку | — |
All updates use requestAnimationFrame for smooth rendering without layout blocking.
Все обновления используют requestAnimationFrame для плавного рендеринга без блокировки компоновки.
Press PDF REPORT in the header to generate a printable multi-page report. At least one spectrum must be loaded. The report language follows the current interface language (EN/RU toggle).
Нажмите PDF REPORT в заголовке для формирования печатного многостраничного отчёта. Необходимо загрузить хотя бы один спектр. Язык отчёта соответствует текущему языку интерфейса (переключатель EN/RU).
| PageСтраница | ContentСодержание | ConditionУсловие |
|---|---|---|
| Source AИсточник A | Full TM-30 metrics, CVG, SPD, bar charts, 99 CESПолные метрики TM-30, CVG, СПМ, столбчатые графики, 99 CES | A loadedA загружен |
| Source BИсточник B | Same as Source AАналогично Источнику A | B loadedB загружен |
| Mix X% / Y%Смесь X% / Y% | Metrics for current slider positionМетрики для текущего положения ползунка | Both loadedОба загружены |
| TrajectoryТраектория | Rg/Rf blend path: full range + auto-zoom side by sideТраектория Rg/Rf: полный диапазон + авто-масштаб рядом | Both loadedОба загружены |
Page numbers are shown at the bottom of each page in the format N / Total.
Номер страницы отображается внизу каждой страницы в формате N / Всего.