Volodymyr Agafonkin's projects
A list of open source projects I created, maintain or actively contribute to. 
| Project | Role | Description | 
|---|---|---|
| Leaflet | author | The number one JavaScript library for interactive maps. | 
| mapbox-gl-js | core contributor | JavaScript/WebGL vector maps library. | 
| mapbox-gl-native | core contributor | OpenGL-based vector maps library. | 
| Algorithms | ||
| earcut | author | The fastest and smallest JS polygon triangulation library. | 
| earcut.hpp | core contributor | C++11 port of Earcut. | 
| rbush | author | Very fast JS R-tree-based 2D spatial index. | 
| rbush-knn | author | K-nearest neighbors search plugin for RBush. | 
| flatbush | author | Fast static spatial index for 2D rectangles and points. | 
| geoflatbush | author | Geographic kNN queries for Flatbush. | 
| kdbush | author | The fastest 2D static spatial index in JavaScript. | 
| kdbush.hpp | author | C++11 port of KDBush. | 
| geokdbush | author | Geographic extension to kdbush for fast kNN queries of locations on Earth. | 
| delaunator | author | The fastest JS Delaunay triangulation library for 2D points. | 
| delaunator-rs | author | A port of Delaunator to Rust. | 
| d3-delaunay | core contributor | Fast Voronoi diagram library for 2D points (based on Delaunator). | 
| robust-predicates | author | Fast robust geometric predicates for computational geometry (modern JS port of J. Shewchuk's predicates). | 
| supercluster | author | Fast geospatial point clustering library. | 
| supercluster.hpp | author | C++14 port of Supercluster. | 
| pixelmatch | author | The fastest and smallest pixel-level image comparison library. | 
| cheap-ruler | author | Collection of fast approximations for common geographic measurements. | 
| polylabel | author | JavaScript library for finding pole of inaccessibility of a polygon (for labeling). | 
| potpack | author | A tiny and fast JavaScript rectangle packing library (for sprite layouts). | 
| concaveman | author | The fastest concave hull algorithm in JS. | 
| dobbyscan | author | Fast density-based clustering of geographic points. | 
| delatin | author | A fast JavaScript 3D terrain mesh generation tool. | 
| MARTINI | author | A JavaScript library for real-time 3D terrain mesh generation. | 
| icomesh | author | Fast JavaScript icosphere mesh generation library for WebGL visualizations. | 
| linematch | author | An ultra-fast algorithm for comparing sets of polylines (e.g. road networks). | 
| lineclip | author | Fast library for clipping polylines and polygons by a bbox. | 
| simplify-js | author | Fast JS polyline simplification library. | 
| tinyqueue | author | Small and simple JS priority queue. | 
| flatqueue | author | A faster variation of a JS priority queue. | 
| tile-cover | core contributor | Generates the minimum set of tiles that cover a geometry. | 
| which-polygon | author | Fast index for matching points against a set of polygons (e.g. point in country queries). | 
| quickselect | author | Fast selection algorithm in JavaScript (Floyd-Rivest). | 
| simple-statistics | core contributor | JavaScript implementation of descriptive, regression, and inference statistics. | 
| tiny-sdf | author | JS library for browser-side signed distance field generation from text. | 
| Data | ||
| geojson-vt | author | Very fast tile-based geospatial index for GeoJSON data. | 
| geojson-vt-cpp | core contributor | C++11 port of GeoJSON-VT. | 
| pbf | maintainer | Low-level, lightweight protocol buffers encoder/decoder for JS. | 
| geobuf | maintainer | Compact binary encoding for geospatial data. | 
| tile-reduce | Core contributor | scalable vector tile geospatial analysis library for Node. | 
| geojson.hpp | author | C++14 library for converting GeoJSON into geometry.hpp representation. | 
| tile-decorator | author | JS tool for optimizing vector tiles. | 
| mbtiles-extracts | author | Tool for extracting regional subsets of MBTiles files. | 
| Misc | ||
| webgl-wind | author | Fully GPU-powered wind simulation using WebGL. | 
| suncalc | author | Tiny JavaScript library for calculating sun/moon positions and phases. | 
| tinyjam | author | A radically simple, zero-configuration static site generator. | 
| yeahjs | author | A tiny, fast, modern EJS templating library. | 
| flamebearer | author | Blazing fast flame graphs for Node & V8. | 
| simpleheat | author | Tiny JavaScript library for drawing heatmaps with Canvas. | 
| dead-simple-grid | author | 250-byte CSS grid framework. | 
| bullshit.js | author | Bookmarklet to expose bullshit on web pages. | 
| Leaflet.heat | author | Simple, fast heatmap plugin for Leaflet. | 
| Leaflet.TouchHover | author | Leaflet plugin for Leaflet hover interactions on mobile. | 
| github-org-browser | author | Simple tool for browsing public repos of a GitHub organization. | 
| binary-split | maintainer | Fast splitting Node stream. | 
| cumulative-timer | author | Simple cumulative timer for benchmarking JavaScript. | 
| magic-string | core contributor | Tool for generating source maps. | 
| road-orientation-map | author | A visualization of road orientations on an interactive map. | 
| rollup-plugin-unassert | maintainer | A Rollup plugin to remove assertion calls via Unassert. | 
| Experiments | ||
| polysnap | author | Snap rounding a polygon with self-intersections (a work in progress). | 
| bbtrees | author | Self-balancing binary search tree implementations in JS (unfinished). | 
| polyclip | author | Martin polygon boolean operations in jS (unfinished). | 
| hain | author | port of Hain's polygon trapezoidation in JS (unfinished). | 
| seidel | author | Seidel's polygon triangulation in JS (deprecated). | 
| pbf-split | author | Splits a Node stream of length-prefixed protocol buffer messages (deprecated). | 
| fanny | author | Experiments with feedforward neural networks in JS. | 
| suncalc-go | author | Go port of SunCalc (unfinished). |