Freedom251 › Color Palette Generators
qualpal

What qualpal is
Qualpal is a free C++ library for generating qualitative color palettes intended to keep colors perceptually distinct, especially in data visualizations. It accepts RGB colors, HSL or LCHab color spaces, and predefined palettes as inputs. You can specify a background color for the generated colors to contrast with, or extend an existing palette while keeping selected colors fixed. The project includes a command-line interface for generating and analyzing palettes, a browser-based palette generator, an R package called qualpalr, and a Python package listed in its README. The browser app has less functionality than the library and R package. Its heuristic is based on farthest-point sampling and produces colors described as approximately maximally distinct. Qualpal can simulate deuteranomaly, protanomaly, and tritanomaly using the Machado et al. model. It does not account for aesthetic considerations such as color harmony or complementary colors. Building from source requires CMake 3.15 or later and a C++17-compatible compiler; OpenMP is optional for parallelization. The source repository lists the MIT License.
Who it suits
Qualpal suits people generating qualitative palettes for data visualization, including those working in C++, R, Python, or the browser app. It is less suited to palette choices driven by harmony or complementary-color aesthetics.
What it does well
- Accepts RGB, HSL, LCHab, and existing palette inputs.
- Can keep specified colors fixed when extending a palette.
- Simulates three color vision deficiencies.
- Includes command-line, R, Python, and web options.
- MIT-licensed.
What to know first
- Web app has fewer capabilities than the library and R package.
- Palette selection does not consider color harmony.
- Building from source requires CMake 3.15 and C++17.
Getting started
- Visit the Qualpal website.
- Choose the browser app, CLI, C++ library, qualpalr R package, or the listed Python package for your workflow.
- For a source build, use CMake 3.15 or later and a C++17-compatible compiler; OpenMP is optional.
- Provide RGB colors, HSL or LCHab values, or a predefined palette as input.
- Generate or analyze a palette, optionally specifying a background color or extending an existing palette.
Verdict
Qualpal focuses on perceptual distinction, with options for background-aware generation, palette extension, and color-vision simulation. Its approach does not evaluate visual harmony, so that consideration must be handled separately.
Questions
How much does Qualpal cost?
Qualpal is free, and a free plan is listed.
Which platforms are listed?
Linux, macOS, web, and Windows.
Can I use Qualpal from R or Python?
The project provides qualpalr for R workflows and lists a Python package called qualpal.
Does Qualpal support color vision deficiency simulation?
Yes. It simulates deuteranomaly, protanomaly, and tritanomaly using the Machado et al. model.
Is Qualpal open source?
The source repository states that Qualpal is available under the MIT License.
Does it choose colors based on harmony?
No. Its selection does not consider aesthetic factors such as color harmony or complementary colors.
Facts from qualpal's own pages
- Algorithm
- The algorithm uses deterministic farthest-point sampling to improve the minimum pairwise color distance. · theoj.org, 14 Oct 2026
- Background color
- You can specify a background color so generated colors are selected to remain distinct from it. · jolars.github.io, 4 Oct 2026
- Background optimization
- Palette generation can include a background color so selected colors remain distinct from it. · theoj.org, 14 Oct 2026
- Builder API
- The C++ interface uses a builder-style API for configuring palette generation. · jolars.github.io, 14 Oct 2026
- CLI
- Qualpal includes a command-line interface for generating and analyzing palettes. · github.com, 14 Oct 2026
- C++ library
- The core product is a C++ library for palette generation. · github.com, 14 Oct 2026
- Color accessibility
- Palettes can be adapted using color vision deficiency simulation. · jolars.github.io, 14 Oct 2026
- Color space
- The official site describes perceptually uniform color selection in DIN99d color space. · jolars.github.io, 14 Oct 2026
- Dependencies
- The JOSS paper describes the C++ library as lightweight and having no external dependencies. · theoj.org, 14 Oct 2026
- Distance metrics
- The project supports CIEDE2000, DIN99d and CIE76 color-difference metrics. · theoj.org, 14 Oct 2026
- Input formats
- The C++ project accepts RGB values, hexadecimal colors, HSL ranges and built-in palettes. · github.com, 14 Oct 2026
- Large color spaces
- The project advertises fast algorithms for large color spaces. · jolars.github.io, 14 Oct 2026
- License
- The source repository states that Qualpal is available under the MIT License. · github.com, 4 Oct 2026
- Limit
- Qualpal does not consider aesthetic factors such as color harmony or complementary colors when choosing colors. · jolars.github.io, 4 Oct 2026
- Limit: build setup
- The PyPI description says installing the Python package from source requires a C++ compiler. · pypi.org, 14 Oct 2026
- Limit: maturity
- PyPI classifies the Python distribution as development status 4, Beta. · pypi.org, 14 Oct 2026
- Limit: R parity
- The repository warns that qualpalr can lag behind the latest C++ library features. · github.com, 14 Oct 2026
- Limit: web functionality
- The official repository says the web app has slightly less functionality than the library and R package. · github.com, 14 Oct 2026
- Maker
- Johan Larsson is listed as the author and maintainer of Qualpal. · jolars.co, 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. · jolars.co, 14 Oct 2026
- Palette extension
- The library can extend an existing palette while keeping specified colors fixed. · jolars.github.io, 4 Oct 2026
- Palette inputs
- It accepts RGB colors, HSL or LCHab color spaces, and predefined palettes as inputs. · jolars.github.io, 4 Oct 2026
- Platforms
- Prebuilt binaries are available for Linux, macOS, and Windows. · github.com, 4 Oct 2026
- Praise: accessibility
- The independent JOSS paper highlights support for the full dichromacy spectrum and multiple color-vision-deficiency types. · theoj.org, 14 Oct 2026
Where qualpal stands on Freedom251
- Color Palette Generators#1 of 34