Splash Is a Colour Format

(todepond.com)

75 points | by tobr 5 days ago

21 comments

  • montroser 1 day ago
    > In Cellpond, I handpicked hexadecimal values for each channel so that the resultant colours would better fit my app's theme and needs.

    Well, this is an admission that trying to balance "wiggle room" without too much "fussing" with 1000 colors didn't really work.

    Evenly sampled in rgb space, a 1000 color palette yields neither enough flexibility (especially in the blacks, greys, whites), nor enough constraint to really make it dead simple.

    For app development at least -- choose 20 gradations of blackish to whiteish; 8 gradations of an accent color and so too for a couple of secondary colors...and you're good. That's like 48 colors instead of 1000.

    • humbugtheman 1 day ago
      author here. i got all my fussing out the way so that i could enjoy it after that
  • amelius 1 day ago
    We already have 3-digit hex colors, e.g. #fff is white.

    I don't see the point of using decimals here. You only lose resolution.

    • sph 21 hours ago
      If one works with shaders, you get the best of both worlds just by dividing by 10:

        vec3 color = vec3(1.0, 0.3, 0.9);
      
      One decimal digit ought to be enough for anyone.
      • lpghatguy 14 hours ago
        Take care here though, because shaders are almost always working in linear sRGB colors, while color codes are almost always defined in gamma-encoded sRGB.

        This property makes it mildly annoying to copy color constants between different contexts.

        • amelius 10 hours ago
          Also if you divide by 10 your maximum is 0.9, not 1.0.

          So you still need a calculator to map between the two.

    • humbugtheman 1 day ago
      author here. i find it hard to count with letters
      • thot_experiment 1 day ago
        Dang, given all the cool visual work on your website I absolutely would not have expected that. Always good to be reminded how disparate we all are from one another.

        Makes me grateful I got my mom to sign that waiver to let me get on Neopets, I don't even see the hex code anymore, I just see marigold, umber, vermilion.

      • amelius 1 day ago
        Well, I find it hard to reason with RGB values. It is much easier to use HSV, to be honest, after looking up the Hue with a tool.
        • humbugtheman 1 day ago
          author here. that's okay this tool is for me
          • amelius 1 day ago
            That's certain okay with me, but I assumed you came here to get feedback.
  • dist-epoch 2 days ago
    Whenever I needed a color for something digital (website, ...) I would use the Pantone color picker in Photoshop. It had multiple lists of colors (some more vivid, some muted, some thematic - only reds) and I would browse the color I wanted to pick a suitable shade.

    I didn't need the Pantone aspect specifically (real world printing), these were strictly digital uses, but I found browsing shade lists much better than trying to use a regular analog color picker (RGB, HSV, ...). Maybe because you see a large color swatch, maybe because seeing 10 different shades at once is and choosing is faster then randomly moving the mouse through the analog picker.

    Screenshot: https://www.pinterest.com/pin/how-to-find-and-add-pantone-co...

    • sunrunner 2 days ago
      This is why I like the web colours list - there's usually something close enough to what I want that helps avoid the combination cognitive trap of a colour picker and choice paralysis.
  • graypegg 2 days ago
    I get the concept, but I have a feeling this might not be any more comprehensible when picking a colour than other additive colour codes with a fixed range and components.

    It would be neat if you could express colours as a mix of arbitrary base colours, kind of like you’re mixing it on a paint palette. (ROYGBIVWK maybe? K being Key/blacK)

    r2b1 gets you a deep reddish purple, but if you want it to be lighter you just keep adding white, r2b1w1, r2b1w2 etc. You can just focus on chroma, and mix in white/black to futz with the saturation/lightness. I feel like that’s a bit more like the way people talk about colours. (Pale yellowish-green = y1g2w2, dark blueish-grey = b1w2k4)

    The way paint colours blend gets a bit complex compared to mathematically perfect RGB light sources, and there’s obviously MANY ways to represent the exact same colour, so not a silver bullet by any means.

    • sgentle 1 day ago
      I think that's a really fun idea and I'd love to see it if you do it :)

      One thought is maybe you don't need the numbers? Like for n<=2 they're redundant anyway, and maybe it's good to discourage ratios that are more complex by making them longer lexically.

      eg reddish purple is just rrb, and dark blueish-grey is bwwkkkk – I kinda like how that reads

      • graypegg 8 hours ago
        Ohhh I really like that for the visual side of it. If the letter takes up more space in the code, it's more like that colour. That makes a lot of sense.

        I might ask around some digital-artist friends to see what they think about this generally! I know a lot of digital-painters think of hex codes as more of an ID to a colour than a colour description, so it needs to be brought into some UI before it's understandable.

      • cbbb 1 day ago
        Fun enough to throw at v0, definitely.

        https://pigment.ribbits.org/?c=bwwkkkk

    • humbugtheman 1 day ago
      author here. there are other ways to pick colours, yes
      • graypegg 1 day ago
        Sorry if that came off as a knock on what you're doing! Just thinking outloud
      • jiggawatts 1 day ago
        Almost all of the other ways are dramatically superior, for humans

        Oklab and the Munsell colour system are very obviously far more intuitive at low numbers of quantised steps: https://commons.wikimedia.org/wiki/File:MunsellColorWheel.sv...

        To be blunt: your system blithely ignores the color space, gamma curves, and human perception.

        There’s like… entire textbooks written on the topic of optimal encoding of hues given a fixed number of bits! That’s most of the secret sauce of Dolby Vision, for example.

        Sorry to burst your bubble like this, but the assumption that “RGB” means anything at all is hilariously naive.

        It’s like specifying a text format and neglecting to mention the encoding or the escaping rules! It will get mangled by the receiver.

        • AnthonBerg 23 hours ago
          This is quite the unhinged and accusatory attempt at uncalled-for dismissal. What's with the attack?
          • jiggawatts 22 hours ago
            How exactly is it unhinged and uncalled for?

            It’s factual and references the state of the art — which the OP couldn’t even be bothered to Google.

            How is it uncalled for? It’s here! In the public sphere! The OP published it and is showing it off!

            Their grand contribution to color theory: divide a nonlinear, unspecified encoding by ten.

                channel / 10
            
            I’m sorry, but unless the OP is still in (junior!) school this doesn’t warrant a website like he’s cracked the secret code that has been holding back color theory for decades.

            Something worthy of HN front page would be a tiny NN that optimally allocates perceptually uniform color divisions such that +1 or -1 was always consistently what an artist would expect. That would be cool and worthy of a website and a discussion on a tech forum.

            Sometimes we need to encourage something hopelessly naive, but I put my limit somewhere around… this.

            Anyway, why do you care if I dismiss the OP's "contribution" out of hand? The OP doesn't care about his "work" in the slightest! To quote: "Or something like that roughly... It doesn't matter if it's not perfect."

        • itishappy 1 day ago
          Getting mangled by the receiver appears to be part of the spec. They've implemented their a custom LUT and suggest others should do the same.

          It feels like there's a fundamental disconnect between your comment the intent of the tool.

          • jiggawatts 21 hours ago
            "Custom LUT" is doing a lot of heavy lifting here. He's literally just diving by ten.
            • itishappy 4 hours ago
              That is literally not true.

              The feeling of disconnect between your comment(s) and the intent of the tool remains.

            • tobr 20 hours ago
              If you want to discuss the content of the page, it would be nice if you read the content of the page first.
        • humbugtheman 1 day ago
          okay
  • smilekzs 2 days ago
    https://en.wikipedia.org/wiki/Web_colors#Web-safe_colors

    Macromedia Flash taught me this in the early 2000s...

  • zokier 2 days ago
    or you could use 3-digit octal (so 000-777) for a 512 color palette, which arguably would be even more simple. as a bonus you can use it to color file permissions :)
    • humbugtheman 1 day ago
      author here. counting to 7 is unintuitive for me
  • mock-possum 2 days ago
    I feel like I kind of get the spirit that this is done in, but it’s just not for me. Abstracting away from the existing 6 digit hex color codes just seems like extra work, even though it’s presented as ‘simplifying.’ It may just be too late for me - I’ve already learned how to express color sufficiently by mixing 256 levels of R, G, and B - it’s not useful to relearn how to abstract that to mixing 10 levels of the same, in a less exact less prescriptive manner.

    I AM genuinely glad this person is having fun with the little world they’re creating, and that they’re bothering to share it.

    • AnthonBerg 23 hours ago
      "I AM genuinely glad this person is having fun with the little world they’re creating, and that they’re bothering to share it."

      What's with the ridiculous condescension?

      I'm also glad that little person you typed your little comments with your fingers! That you created such a fun little comment! And that you shared it with us. Wowie! Good job.

      • mock-possum 12 hours ago
        I’m am not genuinely glad to see that you wasted everybody’s time with your inappropriately snarky response, if that makes you feel better - you’re reading negativity where none was intended. As I said, I am genuinely glad. Everyone ought to have fun worn their own little worlds, and feel comfortable sharing it. Maybe one day you too will get to experience that feeling.
        • AnthonBerg 9 hours ago
          My sincere apologies!

          I was misreading due to — I think noticeable — negativity in other comments.

    • humbugtheman 1 day ago
      author here. it's not about learning to express colour sufficiently
      • AnthonBerg 23 hours ago
        I just have to say… The comments in this HN thread are The Worst. Judgy and weird and missing the point. Splash is fun and cool.
  • itishappy 1 day ago
    More art than spec. I can dig it.

    I have always appreciated the concept of thinking of colors as a cube (even though I now view them as triangles or weird pyramid things). Thinking of cubes as a 10x10x10 cube composed of 1000 smaller cubes is another mental model I've returned to often. I actually kinda like this for hacking on stuff like terminal colors.

  • dudeinjapan 2 days ago
    The site doesn't explain--what's the actual point of this? If we are seriously concerned about characters (which is generally silly in a gzipped CSS) why not just use 3-char hex like #a5c?
    • Sharlin 2 days ago
      Avoiding analysis paralysis, making it more intuitive to manually write colors. But yeah, there doesn't seem to be any advantage over the well-established #ABC format than decimal digits being easier to non-techies.
    • mock-possum 2 days ago
      No, TFA does very deliberately and openly explain what the goal/justification is:

      > Splash colours can help you avoid decision paralysis when picking colours. It's an emotional tool that stops you fussing around— trying to pick the "perfect" colour … It also means the user can deal with discrete / individual colour values in the drag-and-drop user interface. They don't have to deal with large numbers at all. Only one to nine

      • qubex 2 days ago
        Ah so let’s avoid analysis paralysis by having only black, as Ford famously ruled for the Model T.

        Of course that’s a reductio ad absurdum, but it’s also completely arbitrary to maintain that fewer options is better. The opposite is also equally arbitrary.

        • humbugtheman 1 day ago
          author here. you can do more and you can do less yes
    • humbugtheman 1 day ago
      author here. the site does explain that
      • dudeinjapan 1 day ago
        > Splash colours can help you avoid decision paralysis when picking colours. It's an emotional tool that stops you fussing around— trying to pick the "perfect" colour.

        OK I missed this. The intro paragraph explains "what" not "why". As this "why" is not immediately obvious (nor is something I've ever considered a "problem"), would suggest to put something short in the intro.

    • justinator 2 days ago
      The point is to prove that one xkcd comic
      • qubex 2 days ago
        927
        • sunrunner 2 days ago
          Which is, in Splash, just five colours away from HN orange. So close.
  • qubex 2 days ago
    As somebody who works in the coatings industry and is aware of the extremely complex field of colorimetry this horrifies me.
    • dang 1 day ago
      Although it's not such a mean comment, this post would be much better if you gave some details and explained what you think the work here doesn't address, and why it's important and so on.

      hThis is in the site guidelines: "Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."

      https://news.ycombinator.com/newsguidelines.html.

    • zulux 2 days ago
      I cherish the month I spent helping a printing press company. RGB is just the start. Heck, CYMK isn't enough for all the weird inks like neon pink, silver or UV.
      • qubex 2 days ago
        I present you the Interior Designer’s weapon of mass disruption: NCS.

        Worse still: European urban development projects have adopted it. I never knew there could be so many varieties of ‘ochre’.

    • humbugtheman 1 day ago
      author here. splash is for screens, not coatings
      • qubex 1 day ago
        That’s all fine and well until somebody says “okay that’s great for the letterhead, but give me a half tone for the business card divider”.
        • humbugtheman 1 day ago
          luckily this only happens once a week
  • Vvector 2 days ago
    Isn't this just RGB, with 246 of the 256 values removed from each channel?
    • Sharlin 2 days ago
      The point is that quantizing the range makes it easier for humans to choose colors. But there's already the #ABC hex format, which while less intuitive to non-techies has the huge advantage of being well-established.
      • tptacek 2 days ago
        But it doesn't make it easier for humans to choose colors. For a specific list of detent colors, it reduces the amount you have to memorize relative to full RGB. But to actually reason about colors, you want a non-arbitrary scale; HSV (for instance) gives you hue direction and then you can slide saturation and brightness around.
        • Sharlin 2 days ago
          I don’t know, but I use #ABC a lot, it’s much more convenient than #ABCDEF, never mind [0, 256) or [0, 1]. There are of course more intuitive coordinate schemes and color models, but I find RGB easy enough when you’re not actually doing serious graphic design. This is not about having a GUI color picker either, this is about hand-typing colors.

          Maybe it’s just because I’m old and wrote CSS way before it got HSL or other fancy color functions, but personally, RGB colors are really deeply entrenched in my brain.

          • tptacek 2 days ago
            I think my thing here is, you can do any notation for colors you want. "Splash" is custom. So you might as well do a better custom. "rrb85" for "red, red, blue, 80% sat, 50% value" for a dark purple --- one step towards red from the midpoint between red and blue. I don't know, something! RGB is kind of bad!
      • humbugtheman 1 day ago
        author here. i use #abc a lot but i find it harder to count with letters
    • tptacek 2 days ago
      My other question here is, are "R", "G", and "B" channels the best way to reason about color? Isn't HSV more intuitive?
      • itishappy 4 hours ago
        Despite my background in color science, I find RGB more intuitive. With HSV I have to remember the chirality of hue and it's zero point, and when changing hue I find it difficult to reason about saturation. In practice this means I must "nudge and judge" with both systems. With RGB I can always make progress. With HSV I guess hue wrong about half the time. I could probably improve this.

        To be fair, I'm also colorblind. That's probably relevant.

        Anyway, I'd say the answer to both your questions is: "sometimes"

      • humbugtheman 1 day ago
        author here. for some people and use cases, hsv is better. i encourage you to try to make an equivalent format for that
      • cardamomo 2 days ago
        Or HCL? Or LAB? Any of these are more intuitive than RGB.
        • drfloyd51 2 days ago
          What is hue zero? That’s green right? Because green is such a common color? Or maybe it’s blue.
          • tptacek 2 days ago
            All you're arguing is that it's easier to memorize primary and simple secondary colors in RGB. No question, it is. Once you've got one of those detent colors locked in, how do you vary it? What does it mean to bring up i% of the first channel, j% of the second, and k% of the third? That's the problem HSV solves.
          • spartanatreyu 1 day ago
            It's the first color of the rainbow: Red
    • Scaevolus 2 days ago
      It's rgb with 3.3 bits per channel, basically 10 bit per pixel color (256 colors is 8bpp).
    • sunrunner 2 days ago
      One could argue that it's RGB with 10 of the 256 values selected from each channel.
    • humbugtheman 1 day ago
      author here. yes
  • remix2000 18 hours ago
    3⅓ bpc linear RGB sales pitch oughtta be as close as we get to selling time to a clock before the markets collapse
    • humbugtheman 14 hours ago
      author here. i'm not selling anything
  • throawayonthe 2 days ago
    todepond can't stop winning
  • warumdarum 2 days ago
    Mega Splash is the same format but with a unique curve annotation in the 4th digit. And i just made that up and its nelievsble because all encoding schemes are wonky and are extended on a per usecase basis.
  • techguy916 1 day ago
    This is amazing work, but I am unsure how it helps, hex-codes were doing the trick right?
    • humbugtheman 1 day ago
      author here. hex codes weren't doing the trick, no
  • boltzmann64 18 hours ago
    then, why does 222 look blue/green and not dark gray?
    • Twey 18 hours ago
      > I like my colours to have a bit more blue and green in them, so I skewed everything that direction. Colours like 222 look a tiny bit bluer / greener than you'd expect. It might be hard to see but trust me, it's true babe
      • wvbdmp 14 hours ago
        Using a LUT to harmonize raw “working” colors is actually kind of genius. Interesting.
  • trumpdong 1 day ago
    So it's just hex colors but... not hex
  • humbugtheman 2 days ago
    oh berd
  • hackernulls 23 hours ago
    [flagged]