Geometry2D - Unity3D: A set of helper classes for 2D geometric calculations.

  •        11

A set of 2D Geometric helper components and structs for Unity3D. All structs are immutable. Useful for many things including calculating intersections, projections, distances and lerping.



Related Projects

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.

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.

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.

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.

Geometry Helper

  •    Basic

Geometry Helper is simple program (no longer being developed) designed to help find the area and perimeter of a rectangle, triangle, or circle! A Turkish translation of the project is also included in the download file. NOTE: RELEASE TEMPORARILY BROKEN!


  •    C

Geometry is handy program to aid the solving of Geometry, Trigonometry, and related Algebra problems, released under the terms of the GNU General Public License.

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.

flatbush - A very fast static spatial index for 2D points and rectangles in JavaScript

  •    Javascript

A really fast static spatial index for 2D points and rectangles in JavaScript. An efficient implementation of the packed Hilbert R-tree algorithm. Enables fast spatial queries on a very large number of objects (e.g. millions), which is very useful in maps, data visualizations and computational geometry algorithms.

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.

Live Geometry

  •    Silverlight

Live Geometry lets you create interactive ruler and compass constructions and experiment with them. It is CAD-like educational software for teachers and students. It helps visualize and solve geometry problems.

newton-api - A really micro micro-service for advanced math

  •    Javascript

Newton does anything from numerical calculation to symbolic math parsing. Send a GET request to newton with a url-encoded math expression and your preferred operation. Get back a JSON response with your problem solved.

Simple Polygon Triangulation


A concise implementation of the 'ear clipping' (aka 'subtracting ears') algorithm to convert simple (convex or concave, no holes) polygons to a collection of triangles. These triangles can then easily be used in 3D mesh geometries. The implementation favors simplicity over per...

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.

Simple2D CAD/CAM

  •    C++

A Simple 2D CAD/CAM application (currently Windows-only) Cuts simple shapes (pockets, mostly) and simplified gears. It has a geometry mode that allows geometry defined by lines and arcs. It also generates geometry from any OpenType-style font!

geom - 2D/3D geometry toolkit for Clojure/Clojurescript

  •    Shell

Comprehensive and modular geometry toolkit for Clojure/ClojureScript developed in a literate programming style. Currently BETA quality, largely stable, but pre-release software. The libraries have been used in production for several projects, but further breaking API changes are still forthcoming...



The Clipper library primarily performs boolean clipping (intersection, union, difference and xor) on polygons in 2D space. There are no restrictions on either the number nor the type of polygon that can be clipped. They can have holes, be self-intersecting and even have coincident edges. The library also performs polygon offsetting.

Sophus - C++ implementation of Lie Groups using Eigen.

  •    C++

This is a c++ implementation of Lie groups commonly used for 2d and 3d geometric problems (i.e. for Computer Vision or Robotics applications). Among others, this package includes the special orthogonal groups SO(2) and SO(3) to present rotations in 2d and 3d as well as the special Euclidean group SE(2) and SE(3) to represent rigid body transformations (i.e. rotations and translations) in 2d and 3d. Sophus compiles with clang and gcc on Linux and OS X as well as msvc on Windows. The specific compiler and operating system versions which are supported are the ones which are used in the Continuous Integration (CI): See TravisCI and AppVeyor for details.