A new foundation for color.
Rhapsody doesn’t sit on RGB, and it doesn’t borrow a perceptual space as a passing intermediate. It’s built on ART, a new canonical color model where a color’s perceptual identity is the representation. What that unlocks is measured below, against the best color libraries in the field.
Everyone else speaks the machine’s language.
RGB, hex, and HSL encode color the way hardware stores it: voltages and pixels, not the way an eye experiences it. Perceptual models like OKLab and CAM16 describe color the way we see. But the industry treats them as a way-station: convert in, do one operation, convert back out. The color you store, ship, and reason about stays device-relative. No one made the perceptual coordinate the canonical representation. That’s the gap ART fills.
Perception is a passing step. The color you keep is still the machine’s. Device-relative, and blind to how it looks.
Perception is the source of truth. Device encodings are outputs, derived on demand, and reversible to the float.
Three axes, organized around perception.
ART defines every color as three perceptual coordinates, and treats that triple as the authoritative definition. Each axis is deliberately different from the color models most designers work in.
Hue, by perception, not protractor
HSL and HSV space hue by angle: equal degrees that don’t look equally far apart, so resolution piles up where the eye can’t tell hues apart and starves where it can. ART’s hue coordinate is spaced by perceptual distance, so one step is one step, everywhere on the wheel.
Chroma as a device-independent ratio
Not an absolute magnitude, but a normalized ratio against a fixed virtual chroma limit. A color’s vividness is defined once, independent of any screen’s gamut, so its identity doesn’t shift when the display does.
Tone, decoupled from hue
A clean black-to-white position on a perceptual scale, independent of hue and chroma. Change how light a color is without dragging its hue or vividness along with it.
equal slices
Rhapsody’s ring
The same five hues (yellow, green, cyan, blue, magenta) on two wheels. The naïve wheel (top) spaces them in equal slices. The bottom is Rhapsody’s real gradient engine, run red→red around the wheel. It lands each pure hue where the eye actually puts it. Red-to-yellow spreads wide, while the greens and cyans pull together. Same colors, honestly spaced. That is the perceptual spacing ART uses to index hue.
One identity, rendered faithfully anywhere.
ART holds a color’s intent, and never changes. A separate engine, Orchestra, decides how that intent is realized on a given screen, press, or pipeline, honoring each device’s limits. The intent stays invariant; only the projection adapts.
The projection is configurable, not hard-coded: weight it toward hue stability for display, tonal accuracy for print, or continuity across frames for rendering. All from one source of truth. It runs on hue metadata precomputed offline: hue-direction vectors, per-gamut chroma boundaries, hue-specific lightness anchors. So the runtime is deterministic and exact, never approximate.
The difference is a measurement.
Rhapsody benchmarks ART against the field’s best color libraries and engines, on identical samples, across every major gamut and ICC print profile, with no per-profile tuning.
Measured across sRGB, Display P3, Adobe RGB, Rec. 2020, and ACEScg, plus FOGRA 51, GRACoL, and Japan Color ICC print profiles. Deterministic, with no AI and no randomness.
| Engine | ΔE (lower is better) |
|---|---|
| Rhapsody (ART) | 2 × 10⁻¹⁵ |
| color.js | 2 × 10⁻¹⁵ |
| Color (Python) | 2 × 10⁻¹⁵ |
| Culori | 2 × 10⁻¹⁵ |
| Material HCT | 1 × 10⁻³ |
ART sits in the float-exact tier with the field’s best libraries, and unlike them it carries that fidelity through gamut projection, print, and gradient generation, where the others drift.
That fidelity shows up in the output, too: fed the same color, a Rhapsody design-system ramp holds hue at exactly 0° where the rest of the field drifts 33°–72°. See the head-to-head →
A foundation, not a feature.
ART isn’t tuned for one app. It’s a general color representation with a reversible transform and a device-independent identity. Those are the properties a format needs, not just a tool. The way Unicode gave every character one stable identity, ART gives every color one: perceptual, portable, and intact wherever it travels.
Protected by a provisional patent: seven independent claims covering the coordinate model, the reversible perceptual adapter, device-independent chroma normalization, the configurable projection engine, and perceptually-smooth gradient generation.
See it for yourself.
The first product built on ART is Palette. One brand color in, a complete accessible system out.