Show HN: Simple algorithm and color space to generate diverse skin tones
A new project proposes a simple, math-driven color space for generating a wide range of human skin tones, intended for use in character creators, games, and digital art tools. Commenters praise the clarity and practicality of the approach—built on PCA, fitted functions, and a tunable parameter that trades off between “plausible human” and more fantastical colors—while probing its limitations, such as underrepresentation of some very light and very dark tones, bias from manual labeling, and the impact of lighting and subsurface scattering. The work is compared to existing systems like Pantone and Google’s Monk Skin Tone Scale, and is seen as a promising example of task-specific color modeling, despite implementation quirks like dark-mode interference and missing gamma correction.
Overall Reception & Use Cases
- Many commenters praise the project’s clarity, interactivity, and write-up.
- Suggested applications include VR avatars, character creators, games, animation, makeup tools, and more expressive UI color pickers.
- Several people explicitly want this instead of fixed swatch sets in current character creators.
- The code is now under an MIT license; there’s interest in reusing it directly.
Color Space Design & Controls
- The approach (PCA to a 2D basis, then fitting a function) is seen as clever and accessible.
- The crescent-shaped distribution matches other empirical datasets (e.g., foundation shades).
- The R² parameter is central: higher values admit more extreme/outlier colors; ~1.5–2.0 is cited as a compromise between realism and variety.
- Some find it confusing at first and suggest enabling the “sphere” visualization by default.
- There is technical critique: XYZ→RGB is done without gamma correction, and the PCA’d space being named XYZ is flagged as potentially confusing with the standard CIE XYZ color space.
Realism, Range, and Edge Cases
- Users notice greens, blues, and purples; responses emphasize trade-offs between strict realism and inclusive coverage of rare or stylized tones.
- Some argue that reducing R² filters out implausible colors while keeping rare but real outliers.
- Others note that lighting conditions can make “unusual” skin colors plausible; one person points out that lighting wasn’t emphasized enough in the limitations.
- Edge or corner colors (e.g., very cyan or very pale) are questioned as ever appearing on real humans.
Representation, Bias, and Social Context
- Some feel pale skin variation and features like “redhead translucency” are underrepresented; others counter that translucency is material/lighting, not pure color.
- The manual labeling step is questioned; concern is raised about encoded bias and why not sample directly from photographs. The author (per the thread) acknowledges bias and suggests multi-labeler, more rigorous data as future work.
- There’s mixed reaction to the broader focus on skin-tone representation: some appreciate the inclusivity and media-history context; others find the cultural obsession itself unsettling or unnecessary.
- References are made to commercial scales (Pantone, Monk), historical biases in imaging standards, and prior industrial work (Pinterest skin-tone modeling).