
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
concaveman
Advanced tools
Fast 2D concave hull algorithm in JavaScript (generates an outline of a point set)
A very fast 2D concave hull algorithm in JavaScript (generates a general outline of a point set).
import concaveman from 'concaveman';
const points = [[10, 20], [30, 12.5], ...];
const polygon = concaveman(points);
Signature: concaveman(points[, concavity = 2, lengthThreshold = 0])
points is an array of [x, y] points.concavity is a relative measure of concavity. 1 results in a relatively detailed shape, Infinity results in a convex hull.
You can use values lower than 1, but they can produce pretty crazy shapes.lengthThreshold: when a segment length is under this threshold, it stops being considered for further detalization.
Higher values result in simpler shapes.The algorithm is based on ideas from the paper A New Concave Hull Algorithm and Concaveness Measure for n-dimensional Datasets, 2012 by Jin-Seo Park and Se-Jong Oh.
This implementation dramatically improves performance over the one stated in the paper
(O(rn), where r is a number of output points, to O(n log n))
by introducing a fast k nearest points to a segment algorithm,
a modification of a depth-first kNN R-tree search using a priority queue.
TypeScript type definitions
are available through npm install --save @types/concaveman.
In 2019, a C++ port has been created, allowing for efficient usage from C/C++, Python (via cffi) and other languages featuring an FFI and/or plug-in mechanism for C (e.g. a MATLAB MEX file should be easy to prepare).
Hull.js is a JavaScript library for computing the convex hull of a set of 2D points. Unlike concaveman, which computes a concave hull, hull.js focuses on convex hulls, which are the smallest convex shape that can enclose all the points.
Alpha-shape is a library for computing the alpha shape (a generalization of the convex hull) of a set of points. It provides more flexibility in defining the shape of the hull compared to concaveman, which strictly computes concave hulls.
D3-polygon is part of the D3.js library and provides utilities for polygon geometry, including computing the convex hull of a set of points. While it is more general-purpose and part of a larger visualization library, it does not specifically focus on concave hulls like concaveman.
FAQs
Fast 2D concave hull algorithm in JavaScript (generates an outline of a point set)
The npm package concaveman receives a total of 352,096 weekly downloads. As such, concaveman popularity was classified as popular.
We found that concaveman demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 28 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.