Live data from Hacker News

Harder, Better, Faster, Stronger Version of Uber H3 in Rust

grim7reaper.github.io

1–10 of 43 posts

Re: Harder, Better, Faster, Stronger Version of Uber H3 in Rust

#5
Author here!

Funny to see this on the front page xD

That was the blog post for the initial release, and a lot of things have changed since then (definitely deserves a new blog post ^^).

The first big change happened six months after the release, when I rewrote most of the geometrical algorithms (leveraging the excellent geo crate) and got a massive boost in speed and reduction in memory usage which made it applicable at high resolutions and country-scale levels (e.g. some computation went from 15h to 7min, and from 18GB of RAM to 100MB). I also added support for alternative coverage methods (back then H3 only offered centroid containment).

Since then, the reference implementation has caught up in term of coverage predicate and even provides a new experimental coverage algorithm addressing some performance issue. I haven’t implemented yet but, IIRC, my current implementation still outperforms theirs (but less dramatically so).

I’ve also developed a little ecosystem of libraries around h3o: - Tailored compression algorithm with h3o-zip (in optimal cases I’ve observed reductions from ~2GB to 100KB) - Compact data structure for fast lookup with h3o-ice (based on FST) - Map rendering with h3o-mvt

Most of these things run in production at Amo, where one of the main use cases is powering the Scratchmap feature, both client and server side, in the Bump app. I’ve also seen adoption from other projects (bindings for R, Erlang, Polars, ...) and enterprises :)

Re: Harder, Better, Faster, Stronger Version of Uber H3 in Rust

#6

H3o is an awesome piece of work. I created polars bindings for it(another reason I love polars) and last time I benchmarked it, it had 5X better performance than even duckdb’s C++ implementation. https://github.com/Filimoa/polars-h3

I really want to do a DuckDB extension someday, I think it would be pretty cool. I had looked into it 2 years ago but didn't dig further.

Now that H3 provides one, maybe I should take another look at it.

Re: Harder, Better, Faster, Stronger Version of Uber H3 in Rust

#8

who is using uber h3 and what for? (besides uber of course)

As one example, the U.S. Federal Communications Commission uses it in its Broadband Data Collection program. You can see some of how it's been implemented here: https://broadbandmap.fcc.gov/

Edit: It seems some people get a blocked message when visiting the base url. The home path may work better? https://broadbandmap.fcc.gov/home

Re: Harder, Better, Faster, Stronger Version of Uber H3 in Rust

#9

Author here! Funny to see this on the front page xD That was the blog post for the initial release, and a lot of things have changed since then (definitely deserves a new blog post ^^). The first big change happened six months after the release, when I rewrote most of the geometrical algorithms (leveraging the excellent geo crate) and got a massive boost in speed and reduction in memory usage which made it applicable…

Very impressive results, cool to see innovation in this space! I’d definitely be interested in a follow up post going into the details of the geometric algorithms.

I’m working on my own DGGS, A5, the first (and only) to use pentagons. It offers true equal area cells and a much higher cell fidelity (below 1cm compared to 1m for H3).

I’m looking for contributors to get involved and you seem to have the perfect skill set. It would be amazing to have you join the project :) https://a5geo.org/ https://github.com/felixpalmer/a5

Re: Harder, Better, Faster, Stronger Version of Uber H3 in Rust

#10

who is using uber h3 and what for? (besides uber of course)

H3 was integrated into ClickHouse in 2019, and since then, I have heard many interesting stories. There are unusual ones, e.g., when it is used not to map data on Earth, but for astronomy (stars, galaxies).
Post reply on HN