[HN Gopher] Show HN: A5
       ___________________________________________________________________
        
       Show HN: A5
        
       Author : pheelicks
       Score  : 78 points
       Date   : 2025-05-13 10:02 UTC (12 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | carderne wrote:
       | Can you give some examples of when this might be better to use
       | than H3?
       | 
       | The ones that seem obvious:
       | 
       | - You need very high resolution. H3 is also 64 bit I think, but
       | it seems like A5 highest resolution is about 4 orders of
       | magnitude higher.
       | 
       | - Equal cell size: are the cells exactly equal in size (in m2)?
       | H3 they vary by up to ~2x.
       | 
       | What are the downsides? The shapes are irregular, distances
       | between centroids are not uniform...
        
         | pheelicks wrote:
         | Yes, those are the obvious ones. This example:
         | https://a5geo.org/examples/airbnb shows why the equal area is
         | valuable in practice, while https://a5geo.org/examples/area
         | shows the area variation vs h3.
         | 
         | The downsides are the characteristics that make h3 or s2
         | useful. For h3, the single neighbor type means it is well
         | suited to flow analysis and S2 having exact cell subdivision
         | means it is great for simplifying geometry.
         | 
         | However, there a number of use cases where choosing a spatial
         | index is a more stylistic choice, like for visualization.
         | 
         | The aim of A5 is not to replace S2/H3 but rather to offer an
         | alternative that has different strengths and weaknesses
         | compared to existing solutions
        
           | spencerflem wrote:
           | Very cool, thanks for the insight
        
           | carderne wrote:
           | Haha that colour scale on the area variance page makes it a
           | bit hard to see whether nearby H3 hexagons are very different
           | in size...? I've never really investigated, but my baseless
           | assumption was that nearby hexagons (at a high zoom level)
           | would be pretty similar size? But maybe that's completely
           | wrong.
           | 
           | But yeah, will definitely reach for A5 at some point just for
           | the aesthetics!
           | 
           | My favourite DGGS (this is a new term to me) is water basins
           | as created by HydroSheds [1]. Different area, unpredictable
           | shape, basically no usefull properties but they conform to
           | topography! Can get a feel for them with this little thing I
           | made several years ago [2] (your Cells example reminded me of
           | this).
           | 
           | [1] https://www.hydrosheds.org/
           | 
           | [2] https://water.rdrn.me/
        
       | jll29 wrote:
       | A5 uses pentagons, Uber's H3 uses hexagons:
       | 
       | H3: Uber's Hexagonal Hierarchical Spatial Index
       | https://www.uber.com/en-DE/blog/h3/
        
         | pheelicks wrote:
         | Also check S2: http://s2geometry.io/, created at Google before
         | H3, which uses squares and underpins the fast indexing in
         | BigQuery amongst many other things
        
       | Tabular-Iceberg wrote:
       | I once made a DGG without knowing that it was called a DGG so I
       | could look up how to actually do it in the literature.
       | 
       | I ended up making it an icosahedron and recursively subdividing
       | each face into four new ones by inscribing a new triangle. The
       | project went nowhere for different reasons, so I never figured
       | out if it would have worked, and given this isn't one of the
       | examples I suspect it wouldn't have.
        
       | yencabulator wrote:
       | So if I've understood correctly:
       | 
       | Google's S2 is all about performance and prefix-matching.
       | 
       | Uber's H3 makes the math a bit more complex to prioritize less
       | variation in centerpoint-to-centerpoint distances (because they
       | care most about driving times).
       | 
       | This makes the math even more complex to prioritize less
       | variation in area covered by far away tiles (most applicable to
       | e.g. analyzing density of something).
        
         | pheelicks wrote:
         | As a user, you generally don't care about the math (and S2 is
         | hardly simple either, as it warps the squares prior to
         | projection). You just call the API and use the indices for
         | spatial joins or computations.
         | 
         | The primary benefit is indeed the ability to treat cells as if
         | they are equal areas. This is something people do currently
         | with H3, but it introduces a bias. Contrary to popular belief,
         | this is not only an issue near the poles or in the ocean.
         | 
         | The other difference is aesthetics, people generally find H3
         | more pleasing to look at than S2, which is why it gets used in
         | visualization more. You can make the same argument for A5,
         | although of course it is a matter of taste!
         | 
         | Finally, you are correct that H3 was originally developed at
         | Uber for their specific use case, however it has since been
         | used in many other contexts and I think it doesn't hurt to have
         | some alternatives as conceptually S2/H3/A5 are similar
        
       | pheelicks wrote:
       | For a visual explanation of how the system works, as well as
       | interactive examples, check out the project website at
       | https://a5geo.org/examples/
        
       | zX41ZdbW wrote:
       | H3 and S2 are supported out of the box in ClickHouse and have
       | reference libraries in C and C++. But it looks like A5 only has a
       | reference implementation in TypeScript. Porting would not be a
       | problem, though...
        
         | pheelicks wrote:
         | Bear in mind that this is a "Show HN", the library was released
         | just a few weeks ago! Whereas the other libraries have been
         | around for a decade+
         | 
         | The plan is certainly to release versions in other languages,
         | if you would like to be involved, please get in touch. I agree
         | the porting shouldn't be too difficult, as by design the
         | library has just one simple dependency and the code should
         | translate nicely to other C-style languages
        
       | xioxox wrote:
       | What's the advantage of this over HEALPix projection?
       | https://en.wikipedia.org/wiki/HEALPix
        
         | pheelicks wrote:
         | The base platonic solid that Healpix is based on is the
         | octahedron (https://en.wikipedia.org/wiki/Octahedron), which A5
         | uses the dodecahedron(https://en.wikipedia.org/wiki/Regular_dod
         | ecahedron).
         | 
         | The octahedron has a much higher angular defect
         | (https://en.wikipedia.org/wiki/Angular_defect) than the
         | dodecahedron, and thus when it is projected onto the sphere the
         | cells are warped a lot. So while their areas may be the same,
         | the shapes vary.
         | 
         | This article explains the geometric construction, and how it
         | leads to the cells being a similar size and shape:
         | https://a5geo.org/docs/technical/platonic-solids
         | 
         | Also from a data visualization point of view, the rectangular
         | cells of Healpix (like S2) are arguably less pleasing to look
         | at than hexagons/pentagons:
         | https://h3geo.org/docs/comparisons/s2#visualization
        
           | pama wrote:
           | Not sure I understand--healpix starts from the rhombic
           | dodecahedron and then bisects the generalizations of the 12
           | squares each time. Where do octahedra come into play?
        
         | michelpp wrote:
         | I'm not sure about A5, but I do know that HEALPix cell
         | boundaries are not geodesics, whereas S2 cells are always
         | bounded by four geodesics.
        
           | pheelicks wrote:
           | A5 cell boundaries are geodesics. One more difference that I
           | thought of is that HEALPix is generally not aligned with the
           | continents (makes sense as it is mostly used for
           | astrophysics), whereas the hilbert curve used to index A5 is
           | aligned with the continental land masses:
           | https://a5geo.org/examples/globe
           | 
           | As a result, when A5 is used as a spatial index, it will
           | generally not have jumps in the cell index values when
           | querying nearby locations on land
        
       | knowitnone wrote:
       | Please please please include a description in your title. Just a
       | couple of words will do.
        
         | divan wrote:
         | It's obviously something about paper size A5.
        
           | panzagl wrote:
           | On reading the comments it's about the healing powers of
           | dodecahedrons.
        
           | riku_iki wrote:
           | github also mentions it has pentagonal shape..
        
       | ralusek wrote:
       | > The benefit of choosing a dodecahedron is that it is the
       | platonic solid with the lowest vertex curvature, and by this
       | measure it is the most spherical of all the platonic solids. This
       | is key for minimizing cell distortion as the process of
       | projecting a platonic solid onto a sphere involves warping the
       | cell geometry to force the vertex curvature to approach zero.
       | Thus, the lower the original vertex curvature, the less
       | distortion will be introduced by the projection.
       | 
       | This feels like an uncommon need to optimize for. Can't think of
       | a reason I would reach for this over S2 or H3
        
         | pheelicks wrote:
         | If you're aggregating and comparing data across different
         | locations for example: https://a5geo.org/examples/airbnb
        
       | Bedon292 wrote:
       | Is it primarily useful just for data visualization? Would there
       | be an potential performance benefits for something like searching
       | a database for nearby data?
        
         | pheelicks wrote:
         | Yes, such indices (S2 & H3) are widely used for providing a
         | index in databases, so geospatial features that are close by in
         | the world and stored in nearby databases rows.
         | https://cloud.google.com/bigquery/docs/grid-systems-spatial-...
        
           | Bedon292 wrote:
           | Thanks. I always enjoy when geospatial topics show up on
           | here. My background it geo, but unfortunately I have slowly
           | drifted away. Geohash is about where I left off in the same
           | general realm of concepts, so S2 / H3 are essentially new to
           | me as well.
        
       ___________________________________________________________________
       (page generated 2025-05-13 23:01 UTC)