Skip to content

About

My personal watercolor palette for urban sketching, mapped on a color wheel by hue and chroma

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

color-wheel

English · Русский

Plots a real paint palette on a color wheel by hue and chroma. You can see at a glance which colors are complementary, which are close, and where the gaps are.

This is my personal palette, the watercolors I've put together for my own urban sketching. It's not a recommendation or a universal "best palette": the choices follow my taste and subjects. The tool itself works for any palette and medium. Swap in your own paints in data.js.

Live: https://colors.galangal.ru · works offline too: just open index.html, no server needed.

color-wheel screenshot

Wheels

  • Everything I have and Travel palette: my paints by hue and chroma.
  • Theoretical: a reference wheel of all hues in 12 sectors, with my paints on top. It shows which hues are covered and which aren't. Click a paint to highlight the complementary sector.
  • Artists: palettes of Daniel Smith brand ambassadors, taken from their dot cards. They use the same coordinates as my wheel, so palettes compare directly. Turn on "my palette as background" to overlay my paints, and paints we share get a dashed ring.
  • A mixing cheat sheet with complementary pairs and recipes.

Where the numbers come from

Hue and chroma are measured, not eyeballed. The source is Daniel Smith's official CIELab color map: its markup holds measured L*, a*, b* for every paint.

scripts/ds_build.py converts Lab → OKLab directly. Skipping sRGB avoids clipping the chroma of saturated paints at the gamut edge. It then maps hue onto an artist's wheel.

  • Chroma is normalized to frozen references: the maximum chroma across the whole DS catalog in each zone of the wheel. Adding paints or sets never shifts existing ones.
  • The map is measured from a normal wash, not masstone. One global MASSTONE factor deepens the colors so the wheel doesn't look washed out.

Files

Path What
index.html the page
data.js hand-written part: my paints, travel palette, pairs, recipes, purchase candidates
catalog.js generated: DS paint geometry, colors and properties, plus artist sets
authors/<slug>/ per artist: dot card, example painting, palette.json
scripts/ geometry calculation, catalog build, data checks, palette CLI
STYLE.md, journal/ taste notes and consultation log for the AI assistant (in Russian)
deploy.sh publish to the server

Editing the palette

Paints live in data.js: MY holds what I own, ACTIVE is the travel palette, and CANDIDATES holds paints worth buying. A new paint needs only its DS SKU and a name. Geometry and color come from the catalog. After editing:

python3 scripts/build_catalog.py && python3 scripts/check_data.py

Typos in names don't fail silently. The page shows a red warning listing them.

AI palette assistant

.claude/agents/palette.md is a Claude Code agent that consults on this palette. It suggests mixes for a described color, checks a proposed mix and breaks down a photo's color scheme. It computes instead of guessing:

python3 scripts/palette.py mix "#6F5A4B"          which paints make this color
python3 scripts/palette.py check A B -w 3:1       analyse a mix
python3 scripts/palette.py gaps                   gaps on the wheel

The mixing model averages colors in OKLab and accounts for layer density. It catches hue shifts and chroma loss but knows nothing about pigment particles or layering order, so treat a recipe as a starting point for a swatch.

Credits

Dot cards and paintings belong to their authors, see Daniel Smith Brand Ambassadors. Each one is shown with attribution and a link.

License

See LICENSE.

About

My personal watercolor palette for urban sketching, mapped on a color wheel by hue and chroma

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages