Rainbow — Dependencies and Attribution

Parent: Rainbow development

C++20, CMake, OpenMP, libpng and OpenEXR are the renderer dependencies; Ninja is the preferred builder. Their compiler/development packages were discovered locally. toml++ 3.4.0 is vendored as third_party/toml.hpp with its MIT license in TOMLPLUSPLUS-LICENSE, avoiding a system package installation. No package installation or Python virtual environment was created. Telemetry uses Python 3 standard library only.

CIE 1931 2-degree colour-matching values at 1 nm from 360 to 830 nm are stored in data/CIE_xyz_1931_2deg.csv. They were extracted from the published Colour Science v0.4.6 dataset; its BSD license is retained as data/COLOUR-LICENSE. Direct download from the CIE file URL returned 404 in this session. Source: https://raw.githubusercontent.com/colour-science/colour/v0.4.6/colour/colorimetry/datasets/cmfs.py; official dataset reference https://doi.org/10.25039/CIE.DS.xvudnb9b.

Water dispersion coefficients: Daimon and Masumura 2007, 20 C Sellmeier fit, DOI 10.1364/AO.46.003811; CC0 coefficient transcription from the refractiveindex.info database H2O/nk/Daimon-20.0C.yml. The source currently neglects water absorption in the visible and approximates surrounding air index as one. Solar spectrum is a configurable blackbody approximation, not a measured daylight spectrum.

Mie reference formulas and test values: https://miepython.readthedocs.io/en/latest/07_algorithm.html. The C++ solver is implemented in this repository using downward logarithmic-derivative and angular recurrences. Scattering reference tests passed in the recovered Release and sanitizer builds; see rainbow/dev/testing.

Build and executable interface

Optional distribution-collage tool tools/distribution_gallery.py uses Python 3.11+ (stdlib tomllib) and Pillow 12.2.0, pinned in requirements-gallery.txt. Pillow 12.2.0 was already installed and exercised; no installation performed. Pillow supplies its own scalable default font, so the tool needs no system font paths. Installation, rendering and collage commands: rainbow/dev/usage. The C++ renderer and stdlib-only telemetry do not depend on Pillow.

version 2  ·  created 2026-10-16  ·  updated 2026-10-16