Skip to content

Commit

Permalink
motivation, tweaks to color-models
Browse files Browse the repository at this point in the history
  • Loading branch information
mcstone committed Oct 14, 2024
1 parent 01f2036 commit ad53714
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion apps/docs/docs/color-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Models for color can be found in art, science, design and engineering. The color
## RGB color
Colors on a display are created by modulating the amount of red, green and blue light produced by each pixel. RGB pixel values are digital inputs to the display drivers.The precise color and intensity of the light produced depends on the display hardware, its settings, and its driver. Simple RGB color specifications are device dependent. What you see depends on your display. HSV and HSL are transformations of RGB to provide hue, saturation and lightness/value dimensions, but these map only loosely to the perceptual metrics of the same name. HWB is yet another transformation, modeling hue plus add black, add white (tones and tints).
## Device independent color
Device independent color requires a specification that defines how to transform from RGB pixels to a metric based on color vision, typically the CIE tristimulus values (XYZ, xyY). This specification includes the precise color for each of R, and B as XYZ values, or the chromaticity coordinates (x,y) for each of R, G, B and white, plus Y (luminance) for white. In addition, it specifies the transformation from pixel values (0..255) to luminance for each gray value. sRGB is such a specification, created to define a standard default computer display in 1996. There are similar specifications for use in different media (rec709, photo RGB). Of more interest to us are the newer display specs (Adobe RGB, Apple RGB), especially those that match the newer Apple displays.
Device independent color requires a specification that defines how to transform from RGB pixels to a metric based on color vision, typically the CIE tristimulus values (XYZ, xyY). This specification includes the precise color for each of R, and B as XYZ values, or the chromaticity coordinates (x,y) for each of R, G, B and white, plus Y (luminance) for white. In addition, it specifies the transformation from pixel values (0..255) to luminance for each gray value. sRGB is such a specification, created to define a standard default computer display in 1996. There are similar specifications for use in different media (rec709, photo RGB). There are also display specs (Adobe RGB, Apple RGB).

Device independent color specification allows a principled way to map colors across different devices, including displays, projectors and printers. Color management systems, such as those provided in the Adobe design tools, implement both the specifications (profiles) and the transformations. While CSS and color space packages treat sRGB as a color space, it only functions differently for design than device specific RGB under a color management system.
## Perceptually uniform color
Expand Down
11 changes: 10 additions & 1 deletion apps/docs/docs/motivation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,13 @@ layout: doc

# Motivation

Most color editing tools are designed for individual colors. Palette colors need to be designed together, as the relationships between the colors are very important.
Most color editing tools are designed for individual colors. Palette colors, however, need to be designed together, as the relationships between the colors are critical to their application. These relationships can be evaluated both visually and algorithmically. The Color Buddy provides fluid, graphical editing of palette colors plus both visual and algorithmic evaluation tools. Bringing these functions together in an integrated system is the primary motivation for the Color Buddy.

The Color Buddy is the result of a collaboration between Andrew McNutt and Maureen Stone, which started at the University of Washington in the fall of 2023. Andrew is the primary architect and implementor, Maureen contributes ideas, debugging and documentation. In addition, we have received UX design help from Jeff Pettiross, as well as feedback and advice from Jeff Heer.
## Background
The design of the Color Buddy has its roots in a color palette design tool created by Maureen at Tableau for her work designing the Tableau Palettes, which allowed the simulataneous editing of all the colors in the palette, visualized in the device-independent CIELAB colorspace. In addition, it displayed the colors on a set of swatches, chosen to mimic typical Tableau marks. It provided interpolation tools for generating sequential palettes plus a very basic form of palette management, along with some additional convenience features.

Color Buddy offers the same basic editing and palette visualization model, much enhanced in a web-based implementation to include direct manipulation and other graphical editing tools operations like rotate and align. It supports a selection of different color models for editing, plus a library of visual examples that can be customized by the user. It also offers the ability to compare two independent palette visualizations, either the same palette in different spaces or two different color palettes.

The suite of evaluation algorithms grew out of Andrew's work in visualization linting. The Color Buddy advances this work by focusing specifically on palette design, then integrating the rules with the palette editor. The current set of rules are designed to match those commonly used by professional designers. The Color Buddy not only indicates problems, but offers algorithmic solutions. Integrating such a checker with a GUI for palette design is an interesting research problem that has been partially addressed in the current implementation. We hope to evolve this further in the future.

0 comments on commit ad53714

Please sign in to comment.