frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)

https://github.com/ChartGPU/ChartGPU
174•huntergemmer•2h ago•66 comments

SmartOS

https://docs.smartos.org/
56•ofrzeta•1h ago•18 comments

PicoPCMCIA – a PCMCIA development board for retro-computing enthusiasts

https://www.yyzkevin.com/picopcmcia/
17•rbanffy•24m ago•5 comments

JPEG XL Demo Page

https://tildeweb.nl/~michiel/jxl/
13•roywashere•29m ago•3 comments

Nested Code Fences in Markdown

https://susam.net/nested-code-fences.html
111•todsacerdoti•3h ago•27 comments

Autonomous (YC F25, AI-native financial advisor at 0% advisory fees) is hiring

https://atg.science/
1•dkobran•7m ago

Anthropic's original take home assignment open sourced

https://github.com/anthropics/original_performance_takehome
539•myahio•14h ago•256 comments

EU–INC – A new pan-European legal entity

https://www.eu-inc.org/
544•tilt•6h ago•524 comments

RTS for Agents

https://www.getagentcraft.com/
63•summoned•4d ago•25 comments

Show HN: yolo-cage – AI coding agents that can't exfiltrate secrets

https://github.com/borenstein/yolo-cage
22•borenstein•1h ago•34 comments

European lawmakers suspend U.S. trade deal

https://www.cnbc.com/2026/01/21/european-lawmakers-suspend-us-trade-deal-amid-greenland-tariff-te...
22•belter•28m ago•8 comments

What Is a PC Compatible?

https://codon.org.uk/~mjg59/blog/p/what-is-a-pc-compatible/
65•edward•5d ago•21 comments

Batmobile: 10-20x Faster CUDA Kernels for Equivariant Graph Neural Networks

https://elliotarledge.com/blog/batmobile
65•ipnon•3d ago•10 comments

EmuDevz: A game about developing emulators

https://afska.github.io/emudevz/
138•ingve•3d ago•32 comments

TPM on Embedded Systems: Pitfalls and Caveats to Watch Out For

https://sigma-star.at/blog/2026/01/tpm-on-embedded-systems-pitfalls-and-caveats/
15•Deeg9rie9usi•2d ago•8 comments

Ireland wants to give its cops spyware, ability to crack encrypted messages

https://www.theregister.com/2026/01/21/ireland_wants_to_give_police/
105•jjgreen•3h ago•46 comments

Vibecoding #2

https://matklad.github.io/2026/01/20/vibecoding-2.html
102•ibobev•4h ago•71 comments

I Made Zig Compute 33M Satellite Positions in 3 Seconds. No GPU Required

https://atempleton.bearblog.dev/i-made-zig-compute-33-million-satellite-positions-in-3-seconds-no...
59•signa11•7h ago•6 comments

RSS.Social – the latest and best from small sites across the web

https://rss.social/
184•Curiositry•14h ago•40 comments

Skip Is Now Free and Open Source

https://skip.dev/blog/skip-is-free/
15•dayanruben•1h ago•2 comments

SETI@home is in hiberation

https://setiathome.berkeley.edu/
194•keepamovin•7h ago•103 comments

A 26,000-year astronomical monument hidden in plain sight (2019)

https://longnow.org/ideas/the-26000-year-astronomical-monument-hidden-in-plain-sight/
538•mkmk•22h ago•106 comments

Bending Spoons laid off almost everybody at Vimeo yesterday

58•Daemon404•53m ago•22 comments

Stories removed from the Hacker News Front Page, updated in real time (2024)

https://github.com/vitoplantamura/HackerNewsRemovals
203•akyuu•4h ago•122 comments

The super-slow conversion of the U.S. to metric (2025)

https://www.thefabricator.com/thefabricator/blog/testingmeasuring/the-super-slow-conversion-of-th...
96•itvision•5h ago•204 comments

The first 100 days as a Renovate maintainer

https://www.jvt.me/posts/2026/01/21/renovate-100-days/
14•speckx•3h ago•1 comments

Nukeproof: Manifesto for European Data Sovereignty

https://nukeproof.org/
87•jamesblonde•5h ago•37 comments

cURL removes bug bounties

https://etn.se/index.php/nyheter/72808-curl-removes-bug-bounties.html
369•jnord•11h ago•205 comments

The challenges of soft delete

https://atlas9.dev/blog/soft-delete.html
227•buchanae•19h ago•134 comments

Finding Matrices that you can multiply wrong, right

https://www.hgreer.com/BadMatrixMultiply/
17•aebtebeten•5d ago•2 comments
Open in hackernews

Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)

https://github.com/ChartGPU/ChartGPU
165•huntergemmer•2h ago
Creator here. I built ChartGPU because I kept hitting the same wall: charting libraries that claim to be "fast" but choke past 100K data points.

The core insight: Canvas2D is fundamentally CPU-bound. Even WebGL chart libraries still do most computation on the CPU. So I moved everything to the GPU via WebGPU:

- LTTB downsampling runs as a compute shader - Hit-testing for tooltips/hover is GPU-accelerated - Rendering uses instanced draws (one draw call per series)

The result: 1M points at 60fps with smooth zoom/pan.

Live demo: https://chartgpu.github.io/ChartGPU/examples/million-points/

Currently supports line, area, bar, scatter, pie, and candlestick charts. MIT licensed, available on npm: `npm install chartgpu`

Happy to answer questions about WebGPU internals or architecture decisions.

Comments

keepamovin•2h ago
Wa, this is smooth, man. This is so cool. This is really sexy and cool, the examples page (https://chartgpu.github.io/ChartGPU/examples/index.html) has many good.

I hope you have a way to monetize/productize this, because this has three.js potential. I love this. Keep goin! And make it safe (a way to fund, don't overextend via OSS). Good luck, bud.

Also, you are a master of naming. ChartGPU is a great name, lol!

huntergemmer•1h ago
Thanks! The name was honestly just "what does this do" + "how does it do it" haha.

Interesting you mention three.js - there's definitely overlap in the WebGPU graphics space. My focus is specifically on 2D data visualization (time series, financial charts, dashboards), but I could see the rendering patterns being useful elsewhere.

On sustainability - still figuring that out. For now it's a passion project, but I've thought about a "pro" tier for enterprise features (real-time collaboration, premium chart types) while keeping the core MIT forever. Open to ideas if you have thoughts.

Appreciate the kind words! :)

PxldLtd•1h ago
Have you thought about leaning into some of the fintech space? They'd happily pay for the sorts of features they need to stream financial data (which is usually bazillions of data points) and graph it efficiently.

Off the top of my head, look into Order Book Heatmaps, 3D Volatility Surfaces, Footprint Charts/Volatility deltas. Integrating drawing tools like Fibonacci Retracements, Gann Fans etc. It would make it very attractive to people willing to pay.

d--b•1h ago
This looks great. Quick feedback, scrollbars don't work well on my mac mini M1. The bar seems to move twice as fast as the mouse.
huntergemmer•1h ago
Thanks for the bug report! That's the data zoom slider - sounds like a momentum/inertia scrolling issue on macOS.

Which demo were you on? (million-points, live-streaming, or sampling?) I'll test on M1 today and get a fix out.

Really appreciate you taking the time to try it :)

abuldauskas•1h ago
I also noticed it. On million-points. MacBook Pro M2 on Firefox Nightly 148.0a1 (2026-01-09) (aarch64)
qayxc•1h ago
Same issue on Windows - doesn't seem to be OS-related, but a general problem. The sliders and the zoom are basically unusable.
monegator•1h ago
On windows 10, too. Firefox 147.0.1 (You may want to update your "supported" chart! Firefox has WebGPU now)
mikepurvis•1h ago
I see the same on Windows 11, both FF and Chrome.
ranger_danger•1h ago
No Firefox support? It has had WebGPU support since version 141.

Even when I turn on dom.webgpu.enabled, I still get "WebGPU is disabled by blocklist" even though your domain is not in the blocklist, and even if I turn on gfx.webgpu.ignore-blocklist.

embedding-shape•1h ago
Works for me with 146.0.1 (Linux) and having dom.webgpu.enabled set to true.
tonyplee•1h ago
Works for me too 145/Windows - default settings.

Very cool project. Thanks!!!

jsheard•1h ago
Which platform? I think FF has only shipped WebGPU on Windows so far.
pier25•54m ago
FF has partial support for WebGPU

https://caniuse.com/webgpu

justplay•1h ago
Amazing. I can't express how thankful I am for you building this.
embedding-shape•1h ago
Fun benchmark :) I'm getting 165 fps (screen refresh rate), 4.5-5.0 in GPU time and 1.0 - 1.2 in CPU time on a 9970x + RTX Pro 6000. Definitely the smoothest graph viewer I've used in a browser with that amount of data, nicely done!

Would be great if you had a button there one can press, and it does a 10-15 second benchmark then print a min/max report, maybe could even include loading/unloading the data in there too, so we get some ranges that are easier to share, and can compare easier between machines :)

huntergemmer•44m ago
165 fps on that setup - that's awesome to hear! Thanks for testing on high-end hardware.

Love the benchmark button idea. A "Run Benchmark" mode that captures: - Load time - GPU time - CPU time - Min/max/avg FPS over 10-15 seconds - Hardware info

Then export a shareable summary or even a URL with encoded results. Would make for great comparison threads.

Adding this to the roadmap - would make a great v0.2 feature. Thanks for the suggestion!

zamadatix•29m ago
Just to emphasize how good the performance is, I get 34.7 FPS on the Million Points demo... with sampling disabled and fully zoomed out!!!
dvh•1h ago
Doesn't work on my Android phone because no GPU (but I have webgl is that not enough?)
embedding-shape•1h ago
You have a GPU, and you have WebGL but what's missing is WebGPU support, the latest way of doing GPU-stuff in browsers.
PxldLtd•1h ago
https://caniuse.com/webgpu latest Android Chrome should have WebGPU support. You might need to update.
ivanjermakov•1h ago
You have as much GPU as you have Web.
bhouston•51m ago
Here is the breakdown of WebGPU support across various devices: https://web3dsurvey.com/webgpu
facontidavide•1h ago
Cool to see that this project started 5 days ago! Unfortunately, I can not make it work on my system (Ubuntu, chrome, WebGPU enabled as described in the documentation). On the other hand, It works on my Android phone...

Funny enough, I am doing something very similar: a C++ portable (Windows, Linux MacOS) charting library, that also compile to WASM and runs in the browser...

I am still at day 2, so see you in 3 days, I guess!

ivanjermakov•1h ago
I was able to make WebGPU work (and work well!) in Chrome Linux by enabling Vulkan renderer in Chrome flags.
dapperdrake•1h ago
When did WebGPU become good enough at compute shaders? When I tried and failed at digging through the spec about a year ago it was very touch and go.

Maybe am just bad at reading specifications or finding the right web browser.

embedding-shape•1h ago
In Chromium it's been good for a good while, judges still out on when it'll be good in Firefox. Safari I have no clue about, nor whatever Microsoft calls their browser today.
acedTrex•1h ago
Both a .cursor AND a .claude folder, what a yikes. Slop post galore
embedding-shape•1h ago
Why don't you judge the results, if the slop is so easy to detect, instead of using the mere indication of a particular tool to mean it's slop? Lazy.
acedTrex•1h ago
Because it is not reasonable to expend high effort to verify something that took no effort to create. That is not a workable long term solution. Instead you have to rely on low effort signals to signify if something is WORTH expending energy on.
embedding-shape•53m ago
I didnt read your comment, because it would take me longer than just writing: your comment looks like LLM slop.
acedTrex•31m ago
If thats your signal then you lock yourself out of all parts of this website, not the best heuristic
embedding-shape•17m ago
Yeah, that'd be stupid right? I have the same mindset with projects and code. If it's a good project, it's a good project, I don't care what IDE they used. If the code is shit it's shit regardless of how it was produced.
keepamovin•48m ago
Agree, but, ah, can you illuminate. <totally-offtopic data-but="i am intesnely curious"> Quite amazing 6000 points in under 3 months. Yuge. OK a few almost 1K posts, but they drop off. You must have some mega-point comments. Can you, eh, "point me" to a comment of yours that has a super amount of upvotes?

Sorry if this is weird, it's just I've never personally experienced a comment with anything more than 100 - 200 points. And that was RARE. I totally get if you don't want to...but like, what were your "kilopoint" comments, or thereabouts? </offtopic>

embedding-shape•22m ago
Yeah, thanks for giving me a reality-check on my HN addiction, really need to put back my original /etc/hosts file it seems :|

So, apparently these are my five most upvoted comments (based on going through the first 100 pages of my own comments...):

- 238 - https://news.ycombinator.com/item?id=46574664 - Story: Don't fall into the anti-AI hype

- 127 - https://news.ycombinator.com/item?id=46114263 - Story: Mozilla's latest quagmire

- 92 - https://news.ycombinator.com/item?id=45900337 - Story: Yt-dlp: External JavaScript runtime now required f...

- 78 - https://news.ycombinator.com/item?id=46056395 - Story: I don't care how well your "AI" works

- 73 - https://news.ycombinator.com/item?id=46635212 - Story: The Palantir app helping ICE raids in Minneapolis

I think if you too retire, have nothing specific to do for some months, and have too much free time to discuss with strangers on the internet about a wide range of topics you ideally have strong opinions about, you too can get more HN karma than you know what to do with :)

logicallee•1h ago
.c? what a yikes. I took a quick look at the code and this application doesn't even have any machine code in it, it's just words like "while", "for", "if", "else" and other English words - someone back in 1970s, I'm sure.
facontidavide•33m ago
Soon there will be only 3 factors that we will care about: API (easy to use and integrate), behavior (does it do what I want it to do?) and testability (do I have sufficient guaranty that the code doesn't have errors).

The fact that the code was generated by a human or a machine is less and less important.

acedTrex•30m ago
And how do you verify those three things in a rapid low effort fashion?
mcintyre1994•1h ago
Very cool, I like the variety of demos! On the candle sticks streaming demo (https://chartgpu.github.io/ChartGPU/examples/candlestick-str...), the 1s/5m/15m etc buttons don't seem to do anything
huntergemmer•1h ago
Good catch! Thanks for actually clicking around and finding this - added to my issue tracker.
samradelie•1h ago
Fantasic Hunter, congrats!

I've been looking for a followup to uPlot - Lee who made uPlot is a genius and that tool is so powerful, however I need OffscreenCanvas running charts 100% in worker threads. Can ChartGPU support this?

I started Opus 4.5 rewrite of uPlot to decouple it from DOM reliance, but your project is another level of genius.

I hope there is consideration for running your library 100% in a worker thread ( the data munging pre-chart is very heavy in our case )

Again, congrats!

huntergemmer•57m ago
Thanks! Leon's uPlot is fantastic - definitely an inspiration.

Worker thread support via OffscreenCanvas is a great idea and WebGPU does support it. I haven't tested ChartGPU in a worker context yet, but the architecture should be compatible - we don't rely on DOM for rendering, only for the HTML overlay elements (tooltips, axis labels, legend).

The main work would be: 1. Passing the OffscreenCanvas to the worker 2. Moving the tooltip/label rendering to message-passing or a separate DOM layer

For your use case with heavy data munging, you could also run just the data processing in a worker and pass the processed arrays to ChartGPU on the main thread - that might be a quicker win.

Would you open an issue on GitHub? I'd love to understand your specific workload better. This feels like a v0.2 feature worth prioritizing.

pf1gura•29m ago
I am on the same boat. Current user and a fan of uPlot starting to hit performance limits. Thank you for this library, I will start testing it soon.

On the topic of support for worker threads, in my current project I have multiple data sources, each handled by its own worker. Copying data between worker and main thread - even processed - can be an expensive operation. Avoiding it can further help with performance.

deburo•1h ago
Nicely done. Will you be able to render 3D donuts? And even animations, say pick a slice & see it tear apart from the donut.
huntergemmer•42m ago
Thanks! Currently focused on 2D charts. That's where the "big data" performance problem is most painful.

3D is coming (it's the same rendering pipeline), but I'd want to get the 2D story solid first before expanding scope.

The slice animation is doable though - we already have animation infrastructure for transitions. An "explode slice on click" effect would be a fun addition to the pie/donut charts.

What's your use case? Dashboard visuals or something else?

mikepurvis•1h ago
I've always been a bit skeptical of JS charting libs that want to bring the entire data to the client and do the rendering there, vs at least having the option to render image tiles on the server and then stream back tooltips and other interactive elements interactively.

However, this is pretty great; there really aren't that many use cases that require more than a million points. You might finally unseat dygraphs as the gold standard in this space.

zozbot234•1h ago
> render image tiles on the server and then stream back tooltips and other interactive elements interactively.

I guess the real draw here is smooth scrolling and zooming, which is hard to do with server-rendered tiles. There's also the case of fully local use, where server rendering doesn't make much sense.

internetter•24m ago
> I've always been a bit skeptical of JS charting libs that want to bring the entire data to the client and do the rendering there, vs at least having the option to render image tiles on the server and then stream back tooltips and other interactive elements interactively.

I agree, unfortunately no library I've found supports this. I currently SSR plots to SVG using observable plot and JSDom [0]. This means there is no javascript bundle, but also no interactivity, and observable doesn't have a method to generate a small JS sidecar to add interactivity. I suppose you could progressive enhance, but plot is dozens of kilobytes that I'd frankly rather not send.

[0] https://github.com/boehs/site/blob/master/conf/templating/ma...

jeffbee•1h ago
The number of points actually being rendered doesn't seem to warrant the webgpu implementation. It's similar to the number of points that cubism.js could throw on the screen 15 years ago.
barrell•57m ago
I just rewrote all the graphs on phrasing [1] to webgl. Mostly because I wanted custom graphs that didn’t look like graphs, but also because I wanted to be able to animate several tens of thousands of metrics at a time.

After the initial setup and learning curve, it was actually very easy. All in all, way less complicated than all the performance hacks I had to do to get 0.01% of the data to render half as smooth using d3.

Although this looks next level. I make sure all the computation happens in a single o(n) loop but the main loop still takes place on the cpu. Very well done

To anyone on the fence, GPU charting seemed crazy to me beforehand (classic overengineering) but it ends up being much simpler (and much much much smoother) than traditional charts!

[1] https://phrasing.app

pier25•53m ago
Very cool. Shame there's not a webgl fallback though. It will be a couple of years until webgpu adoption is good enough.

https://caniuse.com/webgpu

bhouston•52m ago
You can also see extension support for webgpu via https://web3dsurvey.com/webgpu
sroussey•9m ago
It’s available everywhere if you are on newest OS and newest browser.

Biggest issue is MacOS users with newer Safari on older MacOS.

azangru•41m ago
Bug report: there is something wrong with the slider below the chart in the million-points example:

https://chartgpu.github.io/ChartGPU/examples/million-points/...

While dragging, the slider does not stay under the cursor, but instead moves by unexpected distances.

huntergemmer•22m ago
Thanks - you're the second person to report this! Same issue as the Mac M1 scrollbar bug reported earlier.

Looks like the data zoom slider has a momentum/coordinate mapping issue. Bumping this up the priority list since multiple people are hitting it.

buckle8017•36m ago
WebGPU is a security nightmare.

The idea that GPU vendors are going to care about memory access violations over raw performance is absurd.

the__alchemist•34m ago
Security is one aspect to consider. It's not a veto button!
amirhirsch•36m ago
Very Nice. There is an issue with panning on the million point demo -- it currently does not redraw until the dragging velocity is below some threshold, but it should seem like the points are just panned into frame. It is probably enough to just get rid of the dragging velocity threshold, but sometimes helps to cache an entire frame around the visible range
hienyimba•23m ago
Right on time.

We’ve been working on a browser-based Link Graph (osint) analysis tool for months now (https://webvetted.com/workbench). The graph charting tools on the market are pretty basic for the kind of charting we are looking to do (think 1000s of connected/disconnected nodes/edges. Being able to handle 1M points is a dream.

This will come in very handy.

huntergemmer•6m ago
That's a cool project! Just checked out the workbench. I should be upfront though: ChartGPU is currently focused on traditional 2D charts (line, bar, scatter, candlestick, etc.), not graph/network visualization with nodes and edges. That said, the WebGPU rendering patterns would translate well to force-directed graphs. The scatter renderer already handles thousands of instanced points - extending that to edges wouldn't be a huge leap architecturally.

Is graph visualization something you'd want as part of ChartGPU, or would a separate "GraphGPU" type library make more sense? Curious how you're thinking about it.

rgreen•12m ago
this is so well done, thanks for sharing it. i've been trying to communicate with people how we are living in the golden age of dev where things that previously couldn't have been created, now can be. this is an amazing example of that.
lacoolj•8m ago
Doesn't work for me? Latest chrome, RTX 4080, what am I missing?
33a•7m ago
plot.ly has been able to do WebGL scatter plots with > 10 million points for years. There's a lot of libraries that can do this I think?

https://plotly.com/python/performance/