Home

Awesome

Volodymyr Agafonkin's projects

A list of open source projects I created, maintain or actively contribute to.

ProjectRoleDescription
LeafletauthorThe number one JavaScript library for interactive maps.
mapbox-gl-jscore contributorJavaScript/WebGL vector maps library.
mapbox-gl-nativecore contributorOpenGL-based vector maps library.
Algorithms
earcutauthorThe fastest and smallest JS polygon triangulation library.
earcut.hppcore contributorC++11 port of Earcut.
rbushauthorVery fast JS R-tree-based 2D spatial index.
rbush-knnauthorK-nearest neighbors search plugin for RBush.
flatbushauthorFast static spatial index for 2D rectangles and points.
geoflatbushauthorGeographic kNN queries for Flatbush.
kdbushauthorThe fastest 2D static spatial index in JavaScript.
kdbush.hppauthorC++11 port of KDBush.
geokdbushauthorGeographic extension to kdbush for fast kNN queries of locations on Earth.
delaunatorauthorThe fastest JS Delaunay triangulation library for 2D points.
delaunator-rsauthorA port of Delaunator to Rust.
d3-delaunaycore contributorFast Voronoi diagram library for 2D points (based on Delaunator).
robust-predicatesauthorFast robust geometric predicates for computational geometry (modern JS port of J. Shewchuk's predicates).
superclusterauthorFast geospatial point clustering library.
supercluster.hppauthorC++14 port of Supercluster.
pixelmatchauthorThe fastest and smallest pixel-level image comparison library.
cheap-rulerauthorCollection of fast approximations for common geographic measurements.
polylabelauthorJavaScript library for finding pole of inaccessibility of a polygon (for labeling).
potpackauthorA tiny and fast JavaScript rectangle packing library (for sprite layouts).
concavemanauthorThe fastest concave hull algorithm in JS.
dobbyscanauthorFast density-based clustering of geographic points.
delatinauthorA fast JavaScript 3D terrain mesh generation tool.
MARTINIauthorA JavaScript library for real-time 3D terrain mesh generation.
icomeshauthorFast JavaScript icosphere mesh generation library for WebGL visualizations.
linematchauthorAn ultra-fast algorithm for comparing sets of polylines (e.g. road networks).
lineclipauthorFast library for clipping polylines and polygons by a bbox.
simplify-jsauthorFast JS polyline simplification library.
tinyqueueauthorSmall and simple JS priority queue.
flatqueueauthorA faster variation of a JS priority queue.
tile-covercore contributorGenerates the minimum set of tiles that cover a geometry.
which-polygonauthorFast index for matching points against a set of polygons (e.g. point in country queries).
quickselectauthorFast selection algorithm in JavaScript (Floyd-Rivest).
simple-statisticscore contributorJavaScript implementation of descriptive, regression, and inference statistics.
tiny-sdfauthorJS library for browser-side signed distance field generation from text.
Data
geojson-vtauthorVery fast tile-based geospatial index for GeoJSON data.
geojson-vt-cppcore contributorC++11 port of GeoJSON-VT.
pbfmaintainerLow-level, lightweight protocol buffers encoder/decoder for JS.
geobufmaintainerCompact binary encoding for geospatial data.
tile-reduceCore contributorscalable vector tile geospatial analysis library for Node.
geojson.hppauthorC++14 library for converting GeoJSON into geometry.hpp representation.
tile-decoratorauthorJS tool for optimizing vector tiles.
mbtiles-extractsauthorTool for extracting regional subsets of MBTiles files.
Misc
webgl-windauthorFully GPU-powered wind simulation using WebGL.
suncalcauthorTiny JavaScript library for calculating sun/moon positions and phases.
tinyjamauthorA radically simple, zero-configuration static site generator.
yeahjsauthorA tiny, fast, modern EJS templating library.
flamebearerauthorBlazing fast flame graphs for Node & V8.
simpleheatauthorTiny JavaScript library for drawing heatmaps with Canvas.
dead-simple-gridauthor250-byte CSS grid framework.
bullshit.jsauthorBookmarklet to expose bullshit on web pages.
Leaflet.heatauthorSimple, fast heatmap plugin for Leaflet.
Leaflet.TouchHoverauthorLeaflet plugin for Leaflet hover interactions on mobile.
github-org-browserauthorSimple tool for browsing public repos of a GitHub organization.
binary-splitmaintainerFast splitting Node stream.
cumulative-timerauthorSimple cumulative timer for benchmarking JavaScript.
magic-stringcore contributorTool for generating source maps.
road-orientation-mapauthorA visualization of road orientations on an interactive map.
rollup-plugin-unassertmaintainerA Rollup plugin to remove assertion calls via Unassert.
Experiments
polysnapauthorSnap rounding a polygon with self-intersections (a work in progress).
bbtreesauthorSelf-balancing binary search tree implementations in JS (unfinished).
polyclipauthorMartin polygon boolean operations in jS (unfinished).
hainauthorport of Hain's polygon trapezoidation in JS (unfinished).
seidelauthorSeidel's polygon triangulation in JS (deprecated).
pbf-splitauthorSplits a Node stream of length-prefixed protocol buffer messages (deprecated).
fannyauthorExperiments with feedforward neural networks in JS.
suncalc-goauthorGo port of SunCalc (unfinished).

Contact