frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Expanding Racks [video]

https://www.youtube.com/watch?v=iWknov3Xpts
20•doctoboggan•52m ago•1 comments

Chatterbox TTS

https://github.com/resemble-ai/chatterbox
333•pinter69•9h ago•114 comments

Microsoft Office migration from Source Depot to Git

https://danielsada.tech/blog/carreer-part-7-how-office-moved-to-git-and-i-loved-devex/
93•dshacker•5h ago•71 comments

Show HN: Eyesite - experimental website combining computer vision and web design

https://blog.andykhau.com/blog/eyesite
45•akchro•5h ago•4 comments

Research suggests Big Bang may have taken place inside a black hole

https://www.port.ac.uk/news-events-and-blogs/blogs/space-cosmology-and-the-universe/what-if-the-big-bang-wasnt-the-beginning-our-research-suggests-it-may-have-taken-place-inside-a-black-hole
432•zaik•10h ago•394 comments

Show HN: Spark, An advanced 3D Gaussian Splatting renderer for Three.js

https://sparkjs.dev/
255•dmarcos•12h ago•55 comments

Plants hear their pollinators, and produce sweet nectar in response

https://www.cbc.ca/listen/live-radio/1-51-quirks-and-quarks/clip/16150976-plants-hear-pollinators-produce-sweet-nectar-response
230•marojejian•4d ago•40 comments

V-JEPA 2 world model and new benchmarks for physical reasoning

https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/
232•mfiguiere•15h ago•75 comments

The hunt for Marie Curie's radioactive fingerprints in Paris

https://www.bbc.com/future/article/20250605-the-hunt-for-marie-curies-radioactive-fingerprints-in-paris
6•rmason•2d ago•0 comments

How I Program with Agents

https://crawshaw.io/blog/programming-with-agents
416•bumbledraven•3d ago•233 comments

My Cord-Cutting Adventure

http://brander.ca/cordcut/
53•wizardforhire•3d ago•31 comments

How long it takes to know if a job is right for you or not

https://charity.wtf/2025/06/08/on-how-long-it-takes-to-know-if-a-job-is-right-for-you-or-not/
136•zdw•2d ago•84 comments

TV Fool: See OTA channels you can receive

https://www.tvfool.com/index.php?option=com_wrapper&Itemid=29
13•nvahalik•2h ago•3 comments

Unveiling the EndBOX – A microcomputer prototype for EndBASIC

https://www.endbasic.dev/2025/06/unveiling-the-endbox.html
21•jmmv•6h ago•5 comments

Show HN: Ikuyo a Travel Planning Web Application

https://ikuyo.kenrick95.org/
246•kenrick95•17h ago•84 comments

Congratulations on creating the one billionth repository on GitHub

https://github.com/AasishPokhrel/shit/issues/1
447•petercooper•8h ago•103 comments

Bypassing GitHub Actions policies in the dumbest way possible

https://blog.yossarian.net/2025/06/11/github-actions-policies-dumb-bypass
178•woodruffw•15h ago•90 comments

Show HN: RomM – An open-source, self-hosted ROM manager and player

https://github.com/rommapp/romm
187•gassi•15h ago•75 comments

OpenAI o3-pro

https://help.openai.com/en/articles/9624314-model-release-notes
207•mfiguiere•1d ago•116 comments

The curious case of shell commands, or how "this bug is required by POSIX" (2021)

https://notes.volution.ro/v1/2021/01/notes/502e747f/
114•wonger_•1d ago•69 comments

EchoLeak – 0-Click AI Vulnerability Enabling Data Exfiltration from 365 Copilot

https://www.aim.security/lp/aim-labs-echoleak-blogpost
190•pvg•10h ago•66 comments

Show HN: S3mini – Tiny and fast S3-compatible client, no-deps, edge-ready

https://github.com/good-lly/s3mini
229•neon_me•20h ago•92 comments

Shaped (YC W22) Is Hiring

https://www.ycombinator.com/companies/shaped/jobs/qtQwxJO-head-of-engineering
1•tullie•8h ago

AOSP project is coming to an end

https://old.reddit.com/r/StallmanWasRight/comments/1l8rhon/aosp_project_is_coming_to_an_end/
7•kaladin-jasnah•27m ago•1 comments

The Canadian C++ Conference

https://cppnorth.ca/index.html
15•BiraIgnacio•6h ago•2 comments

Firefox OS's story from a Mozilla insider not working on the project (2024)

https://ludovic.hirlimann.net/2024/01/firefox-oss-story-from-mozila-insider.html
141•todsacerdoti•18h ago•92 comments

Fine-tuning LLMs is a waste of time

https://codinginterviewsmadesimple.substack.com/p/fine-tuning-llms-is-a-huge-waste
105•j-wang•1d ago•54 comments

DeskHog, an open-source developer toy

https://posthog.com/deskhog
189•constantinum•16h ago•75 comments

Story of Sosumi and the Mac Startup Sound

https://reekes.net/sosumi-story-mac-startup-sound/
7•michaefe•3d ago•1 comments

Researchers discover evidence in the mystery of America's 'Lost Colony'

https://www.foxnews.com/travel/mystery-americas-lost-colony-may-finally-solved-after-440-years-archaeologists-say
38•ryan_j_naughton•3d ago•52 comments
Open in hackernews

Show HN: High End Color Quantizer

https://github.com/big-nacho/patolette
119•big-nacho•1d ago
This is a personal project I've been working on for a long time now.

I stumbled upon the color quantization problem while doing something related for work. I then found an interesting paper for which I could find no implementations online, and the thing went from "let's implement this paper" to getting pretty obsessed with the whole thing.

It's at an early, eaaaarly stage. There's a lot of work to be done, and it's a memory hog, but generally speaking works quite well, and the output is for the most part very high quality, so I'm happy to share it as beta.

Comments

leeoniya•1d ago
Wu v2 is really good. i said it in 2015 :)

https://news.ycombinator.com/item?id=9213955

see that whole thread, too

big-nacho•1d ago
Will take a look, thanks for sharing! This does not implement Wu v2 but a different method he published a year later though.
ansgri•1d ago
What's the primary use case you had in mind here? In the example I see it generating a palette of 256 colors and then using them, but it doesn't seem to correspond to any modern use case. AFAIU one currently needs dithering either as part of print/display process (but then you have a fixed palette), or for compression, but I think this makes sense nowadays only with very low color count, like 16 max?
pk-protect-ai•1d ago
Oh, there are still several use cases to consider. It is still related to compression pretty much and there some niche non-obvious use cases for this quantization.
CamperBob2•1d ago
Also, dithering and color quantization are two vastly different operations on two different data types in two different domains that don't belong in the same topic at all.

Still, color quantization is a really interesting rabbit hole to go down if you're new to graphics programming, or at least it was for me. It's a mixed blessing that almost nobody has to confront the problem anymore.

hatthew•1d ago
Really? Dithering is generally only useful with quantized colors, you can't dither something that's already quantized without knowledge of the original, and many/most people who want to do quantization also want to do dithering. The algorithms themselves might not be conceptually similar, but for practical purposes they seems very related.
qingcharles•1d ago
I'm always interested in ways to increase the quality of GIF rendering. There are absolutely tons of places that still need GIF support, either because they don't allow video uploads, or because the videos don't auto-play.

Gifski uses the png-quant library, and I wonder how this compares?

porphyra•1d ago
working with GIF is valid but it is incredibly sad how it's still the only widely supported silent autoplaying video...

(I guess APNG is supported in many browsers, but uploading one often results in deleterious resizing/recompressing operations that ruins the animation. Discord uses APNG and webp for stickers afaik)

qingcharles•1d ago
APNG and animated WEBP are blocked and/or unsupported practically everywhere I try. And I try a lot of places to test it. Reddit supports neither, yet allows GIFs. It's sad.
porphyra•12h ago
Agreed, very sad... Most tools/websites will cause APNG to silently degrade into a static image of only the first frame.
big-nacho•5h ago
GIF rendering is a big use case.

pngquant was a big comparison subject during development (it's a brilliant piece of work, and a mature tool that does a few things more than just quantizing). Take it with a grain of salt of course, but in terms of raw quantization performance, patolette had the edge, particularly when dealing with images with tricky color distributions. With that said, pngquant's dithering algorithm is way more sophisticated (and animation aware, I think). In fact, one thing where it really shines is that it spots with pretty good precision where adding noise would actually hurt instead of helping.

Another thing is that patolette can quantize to both high and lower color counts (the latter particularly with CIELuv), whereas pngquant is more well suited for high color counts.

Lerc•1d ago
For just about any obsolete desktop computing solution there's almost always an embedded application somewhere doing the same thing today.

Colour quantisation is still one of the best lossy image compression formats for when you have almost no memory or CPU.

dinfinity•1d ago
The example image only shows the differences between parts of the image that are deemed as salient, but does not show the effects of the tradeoff on the non-salient parts nor does it show an entire quantized image.

I'd say that showing full example results are the most important part of showcasing a "high end" color quantizer.

big-nacho•1d ago
Yeah, good point. I'll definitely add an image showing the saliency map tradeoff.

Regarding full examples, because some other projects seem to have cherry picked cases where they perform very well, I wanted to go for a "try it out yourself" approach, at least for now. Maybe in the future I'll add a proper showcase. Thanks for the feedback :)

leeoniya•1d ago
take a look at my demo [1]. i'd love to see the same set of images quantized with your thing.

the quant frog [2] is interesting since it has an artificial single pixel line at the top with a ton of colors to trip quantizers up.

[1] https://github.com/leeoniya/RgbQuant.js/

[2] https://github.com/leeoniya/RgbQuant.js/blob/master/demo/img...

pk-protect-ai•1d ago
I looked for pytorch native implementation for Xiaolin Wu's quantizer like 3 month ago, and found none. Would not it be much easier and more productive to integrate with pytorch? Some of the functionality which you have there is already provided by kornia, torch_kmeans. You'll end up with much less code to worry about.
sebastianmestre•1d ago
Very cool!

Something that always bugged me about palette generators I've used is how they end up not picking any colors intense enough for the deepest highlights/shadows, because they use colors close to the average of various sets of pixels.

The result is that the most eye-catching parts of an image end up washed out, reducing the appeal.

My hack to address this has always been making a larger image with big white/black bars around the original image to push the palette generator to include a few really bright or dark colors.

From the look of your examples, your project addresses this too, right?

Btw, I opened an issue about the graphs in your readme because, as a programmer, they don't tell me if your program is fast or not. From a user's perspective that thinks in terms of the side length of an image, the numbers presented are very useful, but they might be even more useful in table format.

ValdikSS•1d ago
Please consider adding this and possibly other algorithms to CUPS printing system. Easiest is to add it into ghostscript.

https://github.com/OpenPrinting/libcupsfilters/pull/92

esafak•1d ago
What is color quantization used for in this lossy compression age?
vanderZwan•1d ago
I don't get the question. Lossy compression uses color quantization all the time, doesn't it?
esafak•1d ago
Not typically. JPEG zeros out high frequency DCT coefficients, which is not the same thing. Hence my question: why go through this memory-intensive procedure?
qingcharles•1d ago
GIFs
w-m•1d ago
What specifically about this paper caught your eye that you wanted to implement that, what does it do better than other methods? Can you give a quick primer on what it does, and what the optional kmeans refinement does?
big-nacho•1d ago
Something that caught my eye is that it seemed to be a kind of "controlled" K-Means. One problem with K-means is that it's too sensitive to the initial state. You can run it multiple times with different initial states or use fancy initialization techniques (or both) but even then nothing really guarantees you won't be stuck with a bad local optimum. Another thing was that the guy that wrote the paper also authored an insanely high quality method the year before and claimed this one was better. Not seeing any available implementations I wondered how good it actually was.

The optional K-Means step just grabs whatever palette the original method yielded and uses it as initial state for a final refinement step. This gives you (or gets you closer) to a local optimum. In a lot of cases it makes little difference, but it can bump up quality sometimes.

vanderZwan•1d ago
There so many interesting papers out there without a publicly accessible implementation, very cool that you made this. Question out of curiousity: what made you pick Riemersma dithering?
big-nacho•5h ago
Two things: 1. I like the natural feel it gives to images. 2. Easy to control. As much as it's super easy to cook up a matrix based error diffusion dither (like Floyd), there are a lot of things to take care of to reduce artifacts and bad side effects.

I also generally want to take a bit more time with the dithering topic and explore other methods too, which hopefully I'll add in the future.

JKCalhoun•1d ago
Would this be a good candidate for use in image posterization? That was what I assumed it was for.
Aurornis•1d ago
Fantastic project and documentation. Thanks for putting it up there.
pixelpoet•1d ago
This doesn't seem to be gamma correct, I just see / 255 and * 255.

sRGB is a nonlinear colour space and so you can't do linear operations in that space (because a^2 + b^2 isn't (a+b)^2 in general).

big-nacho•1d ago
Gamma aware operations happen in the C code. The python code you're referencing is just changing the scale of color intensities. What you shouldn't do is liberally add up sRGB colors, take averages and generally do any math on them unless you're aware of the non-linearity of the space.
SillyUsername•1d ago
Can this also do quantizations like median cut?

Does it also support colour spaces other than RGB, CIEDE (I think I saw that in the source), i.e CMYK for paint mixing, and similar ilk?

I have a few personal projects that would benefit from a library that is wide ranging in the colour space, dither algorithms (I only saw riezsma) and quantizations.

Typically these are all usually implemented in different libraries :(

Thanks!

bmn__•1d ago
> eaaaarly stage […] beta

If your goal is for users to adopt the use of the software, then you can easily increase acceptance by going the proverbial extra mile:

1. Make it installable via `uv tool install patolette` with the optimisations taken care of automatically. 2. Compare its results in the documentation/on the project Web site against the incumbents. https://news.ycombinator.com/item?id=26646035 Find standard test images https://ddg.gg/?q=color+quantization+test+corpus , copy the split-image/slider technique from https://uprootlabs.github.io/poly-flif/

The rationale for this is that each interested user should not have to replicate this work on his own.

leeoniya•1d ago
i wonder how something like this would perform if adapted to oklab or oklch. these should give good eucledian color distances.