cdt2d - 2D constrained Delaunay triangulation

  •        84

A robust 2D constrained Delaunay triangulation library written in JavaScript.


binary-search-bounds : ^2.0.3
robust-in-sphere : ^1.1.3
robust-orientation : ^1.1.3



Related Projects

delaunator - A really fast JavaScript library for Delaunay triangulation of 2D points

  •    Javascript

A really fast JavaScript library for Delaunay triangulation of 2D points.Constructs a delaunay triangulation object given an array of points ([x, y] by default). getX and getY are optional functions of the form (point) => value for custom point formats. Duplicate points are skipped.

triangle - Convert images to computer generated art using delaunay triangulation.

  •    Go

Triangle is a tool to create image arts using the delaunay triangulation technique. It takes an image as input and it converts to abstract image composed of tiles of triangles. The library can be installed via Homebrew too or by downloading the binary file from the releases folder.



Triangle.NET generates 2D (constrained) Delaunay triangulations and high-quality meshes of point sets or planar straight line graphs. It is a C# port of Jonatha

delaunay - Fast Delaunay Triangulation in JavaScript.

  •    Javascript

This is just a quick little implementation of Delaunay Triangulation in JavaScript. It was mostly ported from Paul Bourke's C implementation, but I referenced some bits from another JavaScript implementation and rewrote a bunch of things in ways more amenable to fast JavaScript execution. To the extent possible by law, I have waived all copyright and related or neighboring rights to this library.

polypartition - Tiny Polygon Partitioning and Triangulation Library

  •    C++

PolyPartition is a lightweight C++ library for polygon partition and triangulation. PolyPartition implements multiple algorithms for both convex partitioning and triangulation. Different algorithms produce different quality of results (and their complexity varies accordingly). The implemented methods/algorithms with their advantages and disadvantages are outlined below. For input parameters and return values see method declarations in polypartition.h. All methods require that the input polygons are not self-intersecting, and are defined in the correct vertex order (conter-clockwise for non-holes, clockwise for holes). Polygon vertices can easily be ordered correctly by calling TPPLPoly::SetOrientation method.

earcut - The fastest and smallest JavaScript polygon triangulation library for your WebGL apps

  •    Javascript

The fastest and smallest JavaScript polygon triangulation library. 2.5KB gzipped.The library implements a modified ear slicing algorithm, optimized by z-order curve hashing and extended to handle holes, twisted polygons, degeneracies and self-intersections in a way that doesn't guarantee correctness of triangulation, but attempts to always produce acceptable results for practical data.

TriGrid - FE Triangular Grid Builder

  •    C

Two dimensional (2D) fine mesh finite element (FE) grid editing system. Includes constrained Delaunay triangulation, and automated grid resolution changes based on local attributes. Win32 and Motif GUIs. Mature application, now going open source.

graph - A mathematical graph/network library written in PHP

  •    PHP

This library is built around the concept of mathematical graph theory (i.e. it is not a charting library for drawing a graph of a function). In essence, a graph is a set of nodes with any number of connections in between. In graph theory, vertices (plural of vertex) are an abstract representation of these nodes, while connections are represented as edges. Edges may be either undirected ("two-way") or directed ("one-way", aka di-edges, arcs). Depending on how the edges are constructed, the whole graph can either be undirected, can be a directed graph (aka digraph) or be a mixed graph. Edges are also allowed to form loops (i.e. an edge from vertex A pointing to vertex A again). Also, multiple edges from vertex A to vertex B are supported as well (aka parallel edges), effectively forming a multigraph (aka pseudograph). And of course, any combination thereof is supported as well. While many authors try to differentiate between these core concepts, this library tries hard to not impose any artificial limitations or assumptions on your graphs.

STINGER - In-memory graph store and dynamic graph analysis platform

  •    C

STINGER is a package designed to support streaming graph analytics by using in-memory parallel computation to accelerate the computation. STINGER is composed of the core data structure and the STINGER server, algorithms, and an RPC server that can be used to run queries and serve visualizations.

geo - S2 geometry library in Go

  •    Go

This is a library for manipulating geometric shapes. Unlike many geometry libraries, S2 is primarily designed to work with spherical geometry, i.e., shapes drawn on a sphere rather than on a planar 2D map. (In fact, the name S2 is derived from the mathematical notation for the unit sphere.) This makes it especially suitable for working with geographic data.Basic representations of angles, intervals, latitude-longitude points, unit 3D vectors, and conversions among them.

Visualization Toolkit

  •    C++

The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing and visualization. VTK supports a wide variety of visualization algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.

svg-mesh-3d - :rocket: converts a SVG path to a 3D mesh

  •    Javascript

A high-level module to convert a SVG <path> string into a 3D triangulated mesh. Best suited for silhouettes, like font icon SVGs.Built on top of cdt2d by @mikolalysenko, and various other modules.

gunrock - High-Performance Graph Primitives on GPUs

  •    Cuda

Gunrock is a CUDA library for graph-processing designed specifically for the GPU. It uses a high-level, bulk-synchronous, data-centric abstraction focused on operations on a vertex or edge frontier. Gunrock achieves a balance between performance and expressiveness by coupling high performance GPU computing primitives and optimization strategies with a high-level programming model that allows programmers to quickly develop new graph primitives with small code size and minimal GPU programming knowledge. For more details, please visit our website, read Why Gunrock, our TOPC 2017 paper Gunrock: GPU Graph Analytics, look at our results, and find more details in our publications. See Release Notes to keep up with the our latest changes.


  •    Javascript

Cytoscape.js is a fully featured graph theory library. Do you need to model and/or visualise relational data, like biological data or social networks? If so, Cytoscape.js is just what you need. Cytoscape.js contains a graph theory model and an optional renderer to display interactive graphs. This library was designed to make it as easy as possible for programmers and scientists to use graph theory in their apps, whether it's for server-side analysis in a Node.js app or for a rich user interface.

The GNU Triangulated Surface Library

  •    C

GTS provides a set of useful functions to deal with 3D surfaces meshed with interconnected triangles including collision detection, multiresolution models, constrained Delaunay triangulations and robust set operations (union, intersection, differences).


  •    C++

ReMESH is an editor for scanned polygon meshes supporting selections, interactive operations (edge-flip, vertex-insert, ...) and advanced algorithms (mesh repairing, simplification, subdivision, ...).

turf - A modular geospatial engine written in JavaScript

  •    Javascript

Turf is a JavaScript library for spatial analysis. It includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools. Turf can be added to your website as a client-side plugin, or you can run Turf server-side with Node.js (see below).Download the minified file, and include it in a script tag. This will expose a global variable named turf.


  •    C++

ANGEL-Automatic differentiation Nested Graph Elimination Library is a template library using the Boost Graph Library and the Standard C++ Library; it provides sparse representations of c-graphs their dual line graphs and vertex, edge and face elimina

s2graph - This code base is retained for historical interest only, please visit Apache Incubator Repo for latest one

  •    Scala

Apache S2Graph is a graph database designed to handle transactional graph processing at scale. Its REST API allows you to store, manage and query relational information using edge and vertex representations in a fully asynchronous and non-blocking manner. Initial contributed by Kakao Inc.