Displaying 1 to 20 from 21 results

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.

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.


  •    DotNet

GeometricIntersection is an XNA library for testing for intersection between geometric shapes. It supports 2D intersection tests between circles, oriented rectangles, and polygons and 3D intersection tests between spheres, oriented boxes, cylinders, and capsules.

three-path-geometry - thick 2D lines for ThreeJS

  •    Javascript

Above: a BufferGeometry combines several variations of an SVG file.This is best suited for a drawing app that needs to render thousands of commands, i.e. using a static geometry.

polygon.js - maniplate polygons in 2d space

  •    Javascript

utility for working with polygons (arrays of vec2s)

ray-quadtree - ray - quadtree intersection + traversal for 2d "voxels"

  •    Javascript

A 2d implementation of the octree traversal algorithm described in An Efficient Parametric Algorithm for Octree Traversal.

vec2.js - manipulate 2d vectors

  •    Javascript

A generic library useful when you need to work with points/vectors in 2d space.Stuff to Note: most of the Vec2's methods take a returnNew as the last parameter. If passed a truthy value, a new vector will be returned to you. Otherwise the operation will be applied to this and this will be returned.

line2 - operate on infinite lines in 2d space

  •    Javascript

add an observer that will be notified of any change.Removes a listener, if no fn is passed remove them all.

box-collide - return whether two boxes or points are colliding in 2d

  •    Javascript

Return a boolean colliding indicating whether a and b overlap.x and y indicate the top left corner of the box or point.

monotone-convex-hull-2d - Robust and fast 2D convex hull

  •    Javascript

Computes the convex hull of a set of points in the plane in O(n log(n)) time using the Monotone chain algorithm. Construct the convex hull of a set of points.

transformist - simple transformations in the plane

  •    Javascript

Simple transformations in the plane. A transform in two dimensions is defined here as a translation, a rotation, and a scaling. This module lets you specify this kind of transform and apply it, or its inverse, to one or more points. Methods are also provided for composing transforms and exporting as a matrix. This is essentially wrapping mat3 transforms, but with an API that might seem friendlier. Useful for 2D games and graphics. Apply transformation to one or more points of the form [[x, y], [x, y]...] or [x, y]. Applies in order: scale, rotation, translation.

extrude - turn a 2d shape into 3d with extrusion

  •    Javascript

Use extrusion to turn a 2d shape into a 3d mesh. Extrusion is the process of "pulling" a 2d shape through space to make it 3d. This module contains a single function that accepts a collection of 2d points, and returns a 3d mesh in the form of a simplicial complex, a data structure that works well with the stack.gl ecosystem. The implementation uses seidel's algorithm to triangulate the top and bottom faces, and simple triangulated rectangles for the sides. View a demo.

fold - FOLD file format for origami models, crease patterns, etc.

  •    CoffeeScript

FOLD (Flexible Origami List Datastructure) is a file format (with extension .fold) for describing origami models: crease patterns, mountain-valley patterns, folded states, etc. Mainly, a FOLD file can store a mesh with vertices, edges, faces, and links between them, with optional 2D or 3D geometry, plus the topological stacking order of faces that overlap geometrically. A mesh can also easily store additional user-defined data. One FOLD file can even store multiple such meshes in "frames" (but this feature is not yet supported in any code). This repository both documents the FOLD format (which is still in early stages so its definition is evolving) and provides web software tools and JavaScript libraries to aid in manipulation of FOLD files. FOLD is built upon JSON (JavaScript Object Notation) so parsers are available in essentially all programming languages. Once parsed, the format also serves as the typical data structure you'll want to represent foldings in your software. Our libraries also help build useful redundant data structures for navigating the mesh.

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

  •    CSharp

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.