{"id":9,"date":"2020-07-08T22:17:00","date_gmt":"2020-07-08T22:17:00","guid":{"rendered":"https:\/\/jacksonwalters.com\/blog\/?p=9"},"modified":"2025-12-17T20:54:13","modified_gmt":"2025-12-17T20:54:13","slug":"color-theory","status":"publish","type":"post","link":"https:\/\/jacksonwalters.com\/blog\/?p=9","title":{"rendered":"color theory"},"content":{"rendered":"\n<p><strong>Note:<\/strong> this is from a physics.stackexchange answer I wrote.<\/p>\n\n\n\n<p>Question:\n<a href=\"https:\/\/physics.stackexchange.com\/questions\/564362\/can-you-create-white-light-by-combining-cyan-wavelengths-490-520nm-with-red-wa\">\nCan you create white light by combining cyan wavelengths (490\u2013520nm) with red wavelengths (630\u2013700nm)?\n<\/a>\n<\/p>\n\n\n\n<p><strong>Yes, but not with equal amounts of each.<\/strong><\/p>\n\n\n\n<p>\nIn order to answer this, we need to understand the\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/CIE_1931_color_space\">CIE 1931 color space<\/a>,\nand think about its algebraic properties.\n<\/p>\n\n\n\n<p>\nEssentially what the CIE specification says is that, while light comes to us as a spectrum filled with varying amounts of photons in the wavelength range 380\u2013700nm, our <em>eyes<\/em> are engineered in such a way that they only have 3 receptors.\n<\/p>\n\n\n\n<p>\nThese rod and cone receptors act linearly on the frequency\/wavelength distribution, and can be represented as 3 integrals of \u201ccolor matching functions\u201d against the distribution (linear functionals). One is sensitive <em>mostly<\/em> in the \u201cred\u201d region (\u2248 500\u2013700nm), one in the \u201cgreen\u201d (\u2248 440\u2013660nm, more spread, smaller peak), and one in the \u201cblue\u201d (\u2248 380\u2013500nm).\n<\/p>\n\n\n\n<p>\nThe <strong>color matching functions<\/strong> are determined <em>empirically<\/em>, meaning by experiment. They got a bunch of people in a room and gave them 3 light sources at approximately <em>pure<\/em> wavelengths. Participants adjusted the knobs until they perceived a match. Averaging these results yields smooth RGB curves.\n<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\">\n<img decoding=\"async\" src=\"https:\/\/jacksonwalters.com\/blog\/wp-content\/uploads\/2025\/12\/color_matching_functions.png\" alt=\"three RGB color matching functions\"\/>\n<\/figure>\n\n\n\n<p>\nSome knobs might need to be \u201cnegative\u201d. Since \u201camount of light\u201d should be positive, we represent this using differences of positive quantities \u2014 adding some light to the target until matching becomes possible.\n<\/p>\n\n\n\n<p>\nThe three color matching functions form a line segment in 3D RGB space parameterized by wavelength. A linear transformation maps this into positive XYZ space. One axis corresponds to <em>luminosity<\/em>, while the remaining two encode <em>chromaticity<\/em>.\n<\/p>\n\n\n\n<p>\nProjecting onto the plane R+G+B=1 yields the chromaticity diagram. Convex combinations of spectral colors fill a 2D shape called the <em>gamut<\/em>.\n<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\">\n<img decoding=\"async\" src=\"https:\/\/jacksonwalters.com\/blog\/wp-content\/uploads\/2025\/12\/color_palette.png\" alt=\"2d slice of colors in triangle\"\/>\n<\/figure>\n\n\n\n<p>\nYour question asks whether white light (the centroid of the gamut) lies on a line connecting cyan (\u2248 490\u2013520nm) and red (\u2248 630\u2013700nm).\n<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\">\n<img decoding=\"async\" src=\"https:\/\/jacksonwalters.com\/blog\/wp-content\/uploads\/2025\/12\/color_palette_with_line.png\" alt=\"2d color palette with line connecting cyan and red\"\/>\n<\/figure>\n\n\n\n<p>\nIt turns out you <em>can<\/em> get white from cyan and red \u2014 but only if you use more cyan than red.\n<\/p>\n\n\n\n<p>\nOne should be careful with notation. There are\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Additive_color\">additive<\/a>\nand\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Subtractive_color\">subtractive<\/a>\nmodels of color mixing.\n<\/p>\n\n\n\n<p>\nOn chromaticity diagrams, color mixing is an averaging operation: commutative and idempotent, but not associative. Associativity is restored only when luminosity is included in full 3D RGB addition.\n<\/p>\n\n\n\n<p>\nIf you demand idempotency, commutativity, and associativity simultaneously, the resulting algebra on $\\langle R,G,B \\rangle$ has 7 elements \u2014 a Boolean algebra without identity \u2014 corresponding to unions of primaries.\n<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\">\n<img decoding=\"async\" src=\"https:\/\/jacksonwalters.com\/blog\/wp-content\/uploads\/2025\/12\/primary_color_triple_intersection.png\" alt=\"primary color intersection diagram\"\/>\n<\/figure>\n\n\n\n<p>\nYou can <a href=\"https:\/\/trycolors.com\/\">try mixing colors<\/a> yourself. The closest grey I found by mixing cyan and red was a Payne\u2019s grey: <code>#7b7b84<\/code>.\n<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Note: this is from a physics.stackexchange answer I wrote. Question: Can you create white light by combining cyan wavelengths (490\u2013520nm) with red wavelengths (630\u2013700nm)? Yes, but not with equal amounts of each. In order to answer this, we need to understand the CIE 1931 color space, and think about its algebraic properties. Essentially what the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-physics"],"_links":{"self":[{"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9"}],"version-history":[{"count":7,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9\/revisions\/223"}],"wp:attachment":[{"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jacksonwalters.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}