HN Debrief

Show HN: Simple algorithm and color space to generate diverse skin tones

  • Design
  • Developer Tools
  • Graphics
  • Open Source
  • AI

The post presents a custom color space, plus a browser demo, for generating plausible and diverse skin tones. The author built it for digital art and game development, where most tools still offer a few hard-coded swatches or crude sliders. The approach is deliberately practical rather than fully scientific. It fits a shape around observed skin colors and exposes controls that make the space easy to sample, tweak, and use procedurally.

If you build avatar or art tools, the obvious product win is replacing a handful of preset swatches with a task-specific picker like this. But do not treat a skin-tone palette as a complete solution. You still need lighting-aware rendering, regional variation, and some external reference set if you want believable or inclusive results.

Discussion mood

Strongly positive. People thought the project was elegant, useful, and unusually well presented. The recurring critiques were not dismissive. They were about practical gaps like lighting, rendering realism, reference standards, and bias in the hand-labeled source data.

Key insights

  1. 01

    Skin color is roughly two-dimensional

    A skin researcher said the core idea is more grounded than it first appears. Human skin can be approximated from melanin and haemoglobin concentrations, which explains why a lower-dimensional picker can work at all. They also noted where that simplification runs out. Collagen scattering, bilirubin, and other chromophores can shift appearance in edge cases, so a neat 2D or 3D interface is useful without being complete.

    Treat this kind of model as a solid base layer for consumer tools, not a full physical model. If your use case touches health, imaging, or high-end rendering, plan for extra parameters beyond a simple skin-tone slider.

      Attribution:
    • dr_scully #1 #2 #3
  2. 02

    Existing skin-tone standards already exist

    Several people connected the demo to practical reference systems that teams can use right now. Pantone SkinTone offers a commercial light-dark and red-yellow organization. The Monk Skin Tone Scale gives ten tones in openly usable formats. Makeup shade datasets and Pinterest's skin tone work show that large real-world collections already produce the same crescent-like structure the post discovered. That makes the project feel less like a one-off curiosity and more like a reusable interface on top of patterns others have measured too.

    If you want to ship something quickly, do not start from scratch. Benchmark your picker against Monk, Pantone, or makeup shade datasets so you can validate coverage and explain your choices to users or partners.

      Attribution:
    • s1mon #1
    • ptmkenny #1
    • ecesena #1
    • mbo #1
  3. 03

    Believable skin needs more than base color

    Artists and rendering-focused commenters pushed the conversation from palette selection to material appearance. Skin looks alive because light enters it, scatters under the surface, and returns with subtle regional shifts. Cheeks, forehead, chin, neck, palms, and freckles all vary. A single swatch or even a good color picker will still look fake unless it feeds into gradients, masks, and shading models that capture those differences.

    Use the generated color as an input to a shader or layered texture workflow, not as the final answer. Add region maps and subsurface settings if you care about character quality.

      Attribution:
    • stu2b50 #1
    • manoDev #1
    • barbecue_sauce #1
    • Joel_Mckay #1
  4. 04

    Coverage at the extremes is still hard

    People testing the model found that lower settings prune obviously wrong greens and blues, but they can also squeeze out real deep skin tones. One commenter specifically called out Indigenous Australian, Maasai, and Somali examples that looked better represented only when the model allowed wider outliers. The author confirmed the equations were tuned around a looser setting and that compressing the fair-to-deep axis without breaking RGB output is still unresolved.

    Test any inclusive palette against edge populations, not just the middle of the distribution. Tightening a model to remove weird artifacts can quietly erase real users.

      Attribution:
    • dofm #1
    • automatoney #1
    • richiebful1 #1
  5. 05

    Manual labeling bias is a real weak point

    The nicest-looking plots in the demo still rest on hand-labeled judgments about what counts as plausible skin. Commenters flagged that immediately, and the author agreed. The current labels come from personal artistic judgment and reference images, with a note that future work should use multiple or expert labelers. That concession matters because the tool is trying to operationalize inclusion, and the subjective step is exactly where hidden assumptions can slip in.

    If you adopt or extend this work, audit the labeling process before you trust the output. Multiple raters and a published reference set would improve credibility more than another round of curve fitting.

      Attribution:
    • automatoney #1
    • vermarish #1

Against the grain

  1. 01

    The subject itself can feel intrusive

    One commenter liked the modeling work but said the broader fixation on skin-tone classification can feel disturbing or offensive regardless of whether the intent is inclusive. That does not undercut the tool's utility for artists, but it does challenge the assumption that more granular categorization is automatically experienced as respectful by the people being represented.

    If you productize this, be careful with framing and UX language. Present it as better creative control and representation, not as a system for defining or sorting people.

      Attribution:
    • E-Reverance #1
  2. 02

    Not every representation problem needs expansion

    A hostile comment argued that growing the number of skin-tone options reflects political obsession more than user need. The framing was inflammatory, but it points at a real product question underneath: when does finer-grained representation improve usability, and when does it just add complexity? In this case, the stronger answer came from the demo itself. A continuous picker is easier to defend than multiplying presets forever.

    Avoid solving this with a giant menu of named categories. A flexible continuous control will age better and trigger less backlash than endless discrete variants.

      Attribution:
    • xdennis #1

In plain english

Monk Skin Tone Scale
A ten-tone skin color scale developed to improve how images and machine learning systems handle diverse skin tones.
Pantone SkinTone
A Pantone product line that organizes and standardizes skin-tone color samples for design and cosmetics work.
RGB
Red, Green, Blue, the common digital color model used by screens and graphics software.
subsurface scattering
The effect where light enters a material like skin, scatters beneath the surface, and exits elsewhere, creating a soft realistic look.

Reference links

Skin tone standards and datasets

Color science and research

Rendering and art tools

History and cultural context

  • Color Goes Electric
    Reference on the social and media history of color reproduction, including racial bias in photographic standards.