concaveman
A very fast JavaScript algorithm that draws a concave outline around a set of 2D points. It is useful when a convex hull would cover too much empty space.
Share on XLicense: ISC
Overview
concaveman is a JavaScript implementation of a 2D concave hull algorithm. Given a set of points, it returns a polygon that outlines the general shape of the set, which is useful when a convex hull would cover too much empty space. You call one function with your points and optionally tune how detailed the outline is. The algorithm follows a published paper and uses a fast nearest-point search to speed it up. A C++ port also exists for use from other languages.
Key features
- One function call returns an outline polygon from [x, y] points
- Concavity setting controls detail, with Infinity giving a convex hull
- Length threshold simplifies the resulting shape
- Built on rbush, tinyqueue and robust-predicates
Best for
Anyone who needs a tight outline around scattered 2D points, for example on a map. Very low concavity values below 1 can give odd shapes.
- Upstream
- mapbox/concaveman
- Fork on GitHub
- Guo-astro/concaveman
- Upstream stars
- 724
- Category
- Maps and geospatial
- Language
- JavaScript
- License
- ISC
- Forked
- 2020-11-01
- Sync status
- In syncLast synced 2026-09-29
More in Maps and geospatial
An open source command line toolkit that turns drone, balloon or kite photos into maps, point clouds, 3D models and elevation models. Used for aerial mapping and surveying.
Forked 2026-06-09Last synced 2026-09-29License: AGPL-3.0Maps and geospatialGitHub
A mobile web prototype for map lighting challenges. An organizer picks a real area and shares a link, and participants light up map cells by walking around it.
Forked 2026-06-09Last synced 2026-09-29No license declaredMaps and geospatialGitHub
A web app that generates a 3D map of real cities with building and road data, built with React Three Fiber. Maps can be exported as GLB files.
Forked 2026-05-09Last synced 2026-09-29License: MITMaps and geospatialGitHub
An open-source library for showing interactive vector tile maps in iOS, Android and desktop apps. It uses the GPU for fast rendering and is used to add maps to native applications.
Forked 2025-12-31Last synced 2026-09-29License: BSD-2-ClauseMaps and geospatialGitHub