qualpal
Qualpal is a free C++ library for creating qualitative color palettes with an emphasis on perceptual distinction, particularly for data visualization.
What qualpal is
Qualpal is a free C++ library for creating qualitative color palettes with an emphasis on perceptual distinction, particularly for data visualization. It can use RGB colors, HSL or LCHab color spaces, or predefined palettes as inputs. You can set a background color to help keep generated colors distinct from it, or extend a palette while preserving specified colors. Its palette-selection heuristic uses farthest-point sampling and describes the results as approximately maximally distinct. Qualpal can also simulate deuteranomaly, protanomaly, and tritanomaly using the Machado et al. model. It includes a command-line interface for palette generation and analysis, along with a browser-based palette generator; the web version has more limited functionality than the library and R package. The project also provides the qualpalr R package and lists a Python package. Building from source requires CMake 3.15 or later and a C++17-compatible compiler; OpenMP is optional for parallelization. Qualpal does not choose colors based on aesthetic factors such as harmony or complementary relationships, and the source repository lists the MIT License.
Good
- Accepts RGB, HSL, LCHab, and predefined palette inputs.
- Can preserve chosen colors while extending a palette.
- Simulates three color vision deficiencies.
- Includes CLI, web app, and R package.
Watch out
- Does not account for color harmony or complementary colors.
- Web app has less functionality than the library and R package.
- Source builds require CMake 3.15 and a C++17 compiler.
Who it suits
Qualpal suits developers and data visualization practitioners who need programmatic palette generation and want to account for color vision deficiencies. It also offers a browser app for people who prefer not to build from source.
Verdict
Qualpal focuses on perceptual distinction and offers several ways to generate or extend palettes across coding and browser workflows. Choose it when that focus matters more than aesthetic palette rules such as harmony.
The facts
Each one read from qualpal's own pages, with the date it was checked.
What it does
- Algorithm
- The algorithm uses deterministic farthest-point sampling to improve the minimum pairwise color distance.checked 14 Oct 2026
- Background color
- You can specify a background color so generated colors are selected to remain distinct from it.checked 4 Oct 2026
- Background optimization
- Palette generation can include a background color so selected colors remain distinct from it.checked 14 Oct 2026
- Builder API
- The C++ interface uses a builder-style API for configuring palette generation.checked 14 Oct 2026
- CLI
- Qualpal includes a command-line interface for generating and analyzing palettes.checked 14 Oct 2026
- C++ library
- The core product is a C++ library for palette generation.checked 14 Oct 2026
- Color accessibility
- Palettes can be adapted using color vision deficiency simulation.checked 14 Oct 2026
- Color space
- The official site describes perceptually uniform color selection in DIN99d color space.checked 14 Oct 2026
- Dependencies
- The JOSS paper describes the C++ library as lightweight and having no external dependencies.checked 14 Oct 2026
- Distance metrics
- The project supports CIEDE2000, DIN99d and CIE76 color-difference metrics.checked 14 Oct 2026
- Input formats
- The C++ project accepts RGB values, hexadecimal colors, HSL ranges and built-in palettes.checked 14 Oct 2026
- Large color spaces
- The project advertises fast algorithms for large color spaces.checked 14 Oct 2026
- License
- The source repository states that Qualpal is available under the MIT License.checked 4 Oct 2026
- Limit
- Qualpal does not consider aesthetic factors such as color harmony or complementary colors when choosing colors.checked 4 Oct 2026
- Limit: build setup
- The PyPI description says installing the Python package from source requires a C++ compiler.checked 14 Oct 2026
- Limit: maturity
- PyPI classifies the Python distribution as development status 4, Beta.checked 14 Oct 2026
- Limit: R parity
- The repository warns that qualpalr can lag behind the latest C++ library features.checked 14 Oct 2026
- Limit: web functionality
- The official repository says the web app has slightly less functionality than the library and R package.checked 14 Oct 2026
- Palette extension
- The library can extend an existing palette while keeping specified colors fixed.checked 4 Oct 2026
- Palette inputs
- It accepts RGB colors, HSL or LCHab color spaces, and predefined palettes as inputs.checked 4 Oct 2026
- Praise: accessibility
- The independent JOSS paper highlights support for the full dichromacy spectrum and multiple color-vision-deficiency types.checked 14 Oct 2026
The company
- Maker
- Johan Larsson is listed as the author and maintainer of Qualpal.checked 14 Oct 2026
- Maker role
- Larsson's CV lists him as a Thiele Postdoctoral Researcher in the Department of Mathematical Sciences at Copenhagen University since 2024.checked 14 Oct 2026
Where it runs
- Platforms
- Prebuilt binaries are available for Linux, macOS, and Windows.checked 4 Oct 2026
Alternatives to qualpal
- 1

Pantone Connect Palette Generator
Free planAndroidiOSWebExtension8.0Free plan - 2
PaletteWB
Free planWindows7.1$14.99 one-time - 3

Colorfool
Free planWeb6.6Free plan - 4

ColorDesigner
Free planWebExtension6.5From $37.20 a year - 5

ColorPalette Pro
Free planWeb6.5Free plan - 6

ColorKit
Free planWeb6.4Free plan
