Live data from Hacker News

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

toneyalexander.github.io

31–40 of 129 posts

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

#31
Interesting though that the 1.5 setting (at least on my older iPhone) doesn’t really ever seem to cover the range of skin tones of indigenous Australians (“aboriginal” and Torres Strait Islanders), who apparently get their skin tones from a somewhat different expression of genes than other peoples with darker skin.

The 2.0 “outliers” cover those skin tones.

Masai and some Somali skin tones, similarly, look better represented by the outliers.

The full range of possible human skin tones is perhaps a bit of a challenge for technical colour representation, partly because diffuse reflectance seems to vary so much and that is hard to approximate on screen (e.g. as any website designer could attest, the difference between representing silver and grey is the use of highlights), though the representation of skin tones is a lot better than the early colour film era.

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

#32

Very neat project. Could I use this code to generate skin tones in my own project? Or more meant to just be educational/inspirational? I guess I'm wondering if you've considered adding a license.

Procedural generators are often free if you look around for a bit.

https://kuhantilope.gumroad.com/l/ultimate-skin

https://extensions.blender.org/add-ons/mpfb/

https://github.com/alessandro-zomparelli/tissue

ymmv, as some paid plugins actually speed up the funky blender workflow (the auto-Bake plugin by the same author is important for procedural generated textures.)

https://sanctus.gumroad.com/l/SLibrary?layout=profile

Have a great day =3

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

#34

This is beautiful work! First, I thought this would involve using PCA to go from 3D to 2D, which would result in an easier selector to use, but at the expense of representing every person. Then, I thought this would stop at using the U-space vectors (the ones that form the basis of the PCA image) and their corresponding ellipse to form our color space, but no, the function fitting is a very slick idea, even if it was…

If you look at my doctoral thesis, in fact skin colour can be parametrised using melanin and haemoglobin concentration; which it means it is indeed (roughly) two dimensional. This allows you to invert the colour of a pixel and identify someone’s chromophore concentration. This is based on previous work of others cited in the thesis. https://discovery.ucl.ac.uk/id/eprint/10093345/

Oh goody, an expert in a question I've always wanted to ask.

Once upon a time, I encountered a sort of interactive museum book called "Earthsearch". One of its "exhibits" was a color wheel, made of two spinnable pieces of tinted acetate, that purported to be able to generate any skin tone. I suppose this is three degrees of freedom, since for any position of the two wheels you could access a range of colors around the edge - but the printed page underneath was simply a grayscale gradient, so one degree of freedom was simply luminance.

The book was released in 1994, and was very confident. It even went as far as to encourage the reader to see a doctor, should their skin tone not be achievable! What color model were they using?

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

#35
post #31

Interesting though that the 1.5 setting (at least on my older iPhone) doesn’t really ever seem to cover the range of skin tones of indigenous Australians (“aboriginal” and Torres Strait Islanders), who apparently get their skin tones from a somewhat different expression of genes than other peoples with darker skin. The 2.0 “outliers” cover those skin tones. Masai and some Somali skin tones, similarly, look better rep…

Yes, 2.0 is the value I tuned the equations around - but I think there's definitely room for improvement in terms of squashing the space along the fair/deep axis in order to get better results at lower R^2.

The issue I ran into was what happens when the space moves beyond RGB, but I think the fix is to just add clamps to the end R, G, B values.

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

#36

Skin is so interesting as a surface to think about how light passes through and bounces off of. There is at least one article published by a technical artist at Pixar who describes modeling a skull within a human scan so that subsurface lighting is more accurately rendered. I suspect you could combine this with dr_scully’s comment and GolDDranks’ to reach the nuance involved in long tail realism details.

There's a lot of really good research papers that touch on this area from what I saw - would definitely be cool to see if that extra nuance could be added without dramatically increasing the math complexity; in its current state, the code could be used in any programming language without a library.

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

#39

Earlier quoted context omitted.

If you look at my doctoral thesis, in fact skin colour can be parametrised using melanin and haemoglobin concentration; which it means it is indeed (roughly) two dimensional. This allows you to invert the colour of a pixel and identify someone’s chromophore concentration. This is based on previous work of others cited in the thesis. https://discovery.ucl.ac.uk/id/eprint/10093345/

I've heard that the so-called "yellowish" skin color that non-tanned East Asians tend to have, is due to relative abundance of subcutaneous fat. If that's true, is that captured by the haemoglobin dimension or is it a yet another degree of freedom?

Not an expert, but when I was learning 3d modeling, there was a good chapter on subsurface scattering which affect the human skin rendering. It’s what give it liveness instead of looking like a doll.

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

#40
Love it!

I was looking at this a little while ago, and used some of The Pudding's data on makeup/foundation shades (https://pudding.cool/2018/06/makeup-shades/) and plotted it into the Oklab colorspace (https://observablehq.com/@55th/foundation-shades). The shades form themselves into that same crescent as seen in the article.

Post reply on HN