Description
While #880 implemented support for drawing gamut hull sections (cross-section equal-lightness slices of a gamut hull), it did not actually implement drawing gamut ring diagrams as described in 2D Representation of Display Color Gamut1 as requested in #647.
Specifically, the gamut ring diagrams require integrating the volumes of successive equal-thickness slices of the colour gamut volume along the lightness axis, then displaying these as a radial stacked area chart. The purpose of this is to provide a relatively easy to interpret 2D representation of the entire 3D volume of the gamut - in particular, it allows you to see how the available range of chroma values changes as lightness increases.

(Note that the single "sRGB" outline displayed in this image is actually the outline of the outer ring of a gamut ring diagram, and is still calculated using the sums of volumes of multiple rings)
Measuring the color capability of modern display systems2 describes some methods for generating the gamut space hull from samples, and methods for calculating the C* values of 2D gamut slices, which can be summed to determine the C*RSS values used as the width of a given ring at a given hue angle. A reference MATLAB implementation (MIT license) is available at CIELab-gamut-tools/gamut-volume-m.
Description
While #880 implemented support for drawing gamut hull sections (cross-section equal-lightness slices of a gamut hull), it did not actually implement drawing gamut ring diagrams as described in 2D Representation of Display Color Gamut1 as requested in #647.
Specifically, the gamut ring diagrams require integrating the volumes of successive equal-thickness slices of the colour gamut volume along the lightness axis, then displaying these as a radial stacked area chart. The purpose of this is to provide a relatively easy to interpret 2D representation of the entire 3D volume of the gamut - in particular, it allows you to see how the available range of chroma values changes as lightness increases.
(Note that the single "sRGB" outline displayed in this image is actually the outline of the outer ring of a gamut ring diagram, and is still calculated using the sums of volumes of multiple rings)
Measuring the color capability of modern display systems2 describes some methods for generating the gamut space hull from samples, and methods for calculating the C* values of 2D gamut slices, which can be summed to determine the C*RSS values used as the width of a given ring at a given hue angle. A reference MATLAB implementation (MIT license) is available at CIELab-gamut-tools/gamut-volume-m.
Footnotes
Masaoka, K., Jiang, F., Fairchild, M.D. and Heckaman, R.L. (2018), 78-3: 2D Representation of Display Color Gamut. SID Symposium Digest of Technical Papers, 49: 1048-1051. https://doi.org/10.1002/sdtp.12187
Available from M.D. Fairchild at http://markfairchild.org/PDFs/PRO48.pdf ↩
Smith E, Heckaman RL, Lang K, Penczek J, Bergquist J. Measuring the color capability of modern display systems. J Soc Inf Display. 2020;28:548–556. https://doi.org/10.1002/jsid.918
Available from Euan Smith at https://www.researchgate.net/publication/341947066_Measuring_the_color_capability_of_modern_display_systems ↩