Computing resources and source code for ry and computer graphics
Previous/next article 19:25:28/personal classification: Virtual Reality
View (9)/comment (0)/score (0/0) This page lists "small" pieces of geometric software available on the Internet. most of the software is available free of charge. unless otherwise specified, C or C
++Source code is available for all programs. software libraries and collections and programs that can be run interactively over the web are listed on separate web pages.
Caveat surfor!I can't make any claims about the usefulness or quality of the programs listed here. I don't have the time or equipment to try them all. if you have experience with any of these programs, either positive or negative, please tell me about it.
The programs on this page are divided into several categories, some of which are divided into further sub-categories. (eventually, each category will get its own separate web page .) each program is listed only once, but I 've provided cross-links between overlapping categories, And I 've tried to arrange similar categories near each other.
- Robust low-level primitives
- Combinatorics and Discrete Math
- Geometric Optimization
- Convex hulls and convex polyhedra
- KNN diagrams and Dirichlet triangulations
- Operations on polygons
- Mesh Generation and manipulation
- Geometric Modeling
- Visibility Computation
- Visualization tools
- Other
Each category also includes links to relevant pages in Nina Amenta's comprehensive directory of computational geometry software, which IStronuglyEncourage you to visit!
Items marked have been recently added or modified.
Robust low-level primitives
Avoid roundoff and precision errors! Use this code instead of Na has ve floating point or integer arithmetic.
- Relevant pages from dcgs:
- Numerical and algebraic computation
- Ken Clarkson's hull contains code to compute signs of determinants. See this paper for a description of his algorithms.
- Sylvain pion's modular package, based on the algorithms in "modular arithmetic for geometric predicates" by Hervé BR önnimann, Ioannis Z. emiris, Victor pan and Sylvain pion.
- Adaptive Precision Floating Point predicates used in Jonathan shewchuk's triangle package.
- Libraries for Affine arithmetic and Interval Arithmetic (the first requires the second) from Jorge Stolfi's Software Collection
- Several Algorithms to compute the exact sign of a deteminant (also here), collected by Mariette yvinec. Part of the prisme project at INRIA Sophia-Antipolis.
- The Leda libraries has des code for exact arbitrary-precision integer, rational, floating point, and "real" arithmetic.
Combinatorics and Discrete Math
- Link: a software system for Discrete Mathematics under development at dimacs
- Ulli Hund's program om2ps for visualizing oriented matroids as arrangements of pseudo dospheres. sample output is available.
- Jorjeta jetcheva's program to draw "clusters of stars", using an algorithm of Ileana strienu (requires LEDA)
- Komei Fukuda's reverse search Mathematica Package for enumerating triangulations and connected induced subgraphs. Requires Steve skiena's combinatorica package.
Geometric Optimization
- Relevant pages from dcgs:
- Linear Programming, smallest enclosing ball and center point
- Code by Ken CLARKSON:
- Fixed-dimen1_linear Programming
- Approximate center points
- From graphics utilities by David Eberly:
- Minimum enclosing circle
- Minimum enclosing sphere (3D only)
- Mike hohmeyer's implementation of Seidel's linear programming algorithm, courtesy of Seth Teller
- Ann: Library for approximate nearest neighbor searching, by David mount and Sunil Arya
- Dave White's smallest enclosing ball Software
Convex hulls and convex polyhedra
Most convex hull programs will also compute KNN diagrams and Dirichlet triangulations. (actually,AllOf them do, if you look at them the right way .)
Relevant pages from dcgs:
- Arbitrary dimen1_convex hull
- Low dimen1_convex hull, KNN di1_and Dirichlet Triangulation
Low-dimen1_convex hulls
- Two-dimen1_convex hulls by Ken Clarkson
- From graphics utilities by David Eberly:
- 2d convex hulls: conhull2.h, conhull2.c
- 3D convex hulls: conhull3.h, conhull3.c
- Zram, a library of parallel search algorithms and data structures by ambros marzetta and others, includes a parallel implementation of Avis and Fukuda's reverse search algorithm.
- Geometric software by Darcy Quesnel:
- Randomized parallel 3D convex hull, with documentation
- 2d Dirichlet triangulation, KNN divisor, and convex hull (requires LEDA)
- Harald rosenberger's implementation of the beneath-beyond Method for 3-and 4-dimen1_convex hulls, courtesy of Ernst mücke's geomdir.
Arbitrary-dimen1_convex hulls
- LRS 3.1: the first "official" Distribution of David Avis 'Implementation of Avis and Fukuda's reverse search algorithm for vertex/facet enumeration. (This is an updated version of an earlier preliminary implementation .) an extensive user's guide is supported.
- Qhull by Brad Barber, David Dobkin, and Hannu huhdanpaa
- Also available from this mirror site in Spain
- The latest version (2.5) was released February 5, 1998.
- Primal-dual methods for vertex and facet enumeration by David Bremner, Komei Fukuda, and ambros marzetta
- Hull: arbitrary-dimen1_convex hulls, KNN diagrams, Dirichlet triangulations, and Alpha shapes, by Ken Clarkson
- Porta, a collection of tools for analyzing Polytopes and polyhedra, by Thomas Christof and Andreas loebel, featured in G ünter Ziegler'sLectures on Polytopes.
- Computational Geometry software by Ioannis emiris: perturbed convex hulls in arbitrary dimensions, exact convex hulls in two and three dimensions, mixed volume in arbitrary dimensions, and Ed mixins in the plane.
- Polytope software by Komei Fukuda
- CDD and CDD +: arbitrary-dimen1_convex hulls using Motzkin's double description method
- A Mathematica Package for vertex enumeration of Polytopes and arrangements
- Kurt Mehlhorn's programs for generating higher dimen1_convex hulls and Dirichlet triangulations and checking geometric structures.(C ++ Web output only)
Measure Properties
- Vinci (also here): a program for computing volumes of Convex Polytopes, presented as either the convex hull of a set of points, the intersection of a set of halfspaces, or both (with the vertex-facet incidence graph ). extensive online documentation and sample polytope files are available. written by Benno büeler, Andreas Enge, and Komei Fukuda.
- Ehrhart, a program to count Integer Points in convex polyhedra and compute ehrhart polynomials, by Philippe Claus, Vincent loechner, and Doran Wilde.
- Fast and accurate computation of polyhedral mass properties by Brian mirtich, published inJournal of graphics tools1.2: 31-50 (1996)
Boolean operations on polyhedra
- Polymake, a general-purpose polytope and polyhedron manipulation tool by ewgenij gawrilow and Michael joswig requires either CDD +, LRS, or porta for some computations and geomview for visualization.[C ++ and Perl]
- Polylib, a library of polyhedral functions by Doran Wilde, using des code to compute convex hulls and perform Boolean operations on unions of Polytopes in any dimension.
Interesting and/or pathological polytope data
- Examples of pathological Polytopes collected by David Bremner. See "How good are convex hull algorithms? "By Avis, Bremner, and Seidel for details.(Data only)
- A collection of Polytopes, mostly due to Günther Ziegler, from the polymake web site.(Data only)
Miscellaneous
- A Mathematica Package for unfolding 3D Polytopes (Readme) by Komei Fukuda; see "Strange unfoldings of Convex Polytopes" for details.
- Puntos, a maple package for computing triangulations of polytopics, regular triangulations of point sets, and their underlying oriented matroids, by Jes ús de loera
- Convex Polyhedron code from a collection of mathematical programming software at the Konrad-Zuse-Zentrum für informationstechnik, Berlin.
KNN diagrams and Dirichlet triangulations
See also the implementation page from Christopher Gold's site www.polici.com.
Relevant pages from dcgs:
- Arbitrary dimen1_convex hull
- Low dimen1_convex hull, KNN di1_and Dirichlet Triangulation
- Medial Axis and constrained Dirichlet Triangulation
KNN diagrams and Dirichlet triangulations of points
Convex Hull programs can also compute KNN diagrams and Dirichlet triangulations.
- 2D and 3D Dirichlet triangulations by Jean-Daniel boissonnat, Olivier Devillers, Stefan meiser, and Monique teillaud, from the prisme project at INRIA Sophia-Antipolis.
- The Dirichlet hieararchy, a data structure for 2D Dirichlet triangulations that supports dynamic insertions (and deletions, but those aren't implemented), by Olivier Devillers, from the prisme project at INRIA Sophia-Antipolis.(Solaris and SGI executables only)
- Graphics utilities by David Eberly:
- 2d Dirichlet triangulations: Limit 2.c
- 3D Dirichlet triangulations: ipv3.c
- Gambini: a program for constructing multiplicatively weighted KNN diagrams for points in the plane, by Barry boots.(Windows 3.1/95/NT executable only)
- Ernst mücke's detri, from his geomdir, robustly computes 3D Dirichlet triangulations.
- A simple divide-and-conquer Dirichlet triangulation algorithm from Jorge Stolfi's Software Collection. Requires Stolfi's quad Edge Data Structure library.
- Software by John Sullivan provided des code to compute either standard KNN diagrams in Euclidean 3-space or periodic KNN diagrams in the 3-torus.
- Dave Watson's incremental convex hull/Dirichlet triangulation program nnsort. C and a description of the Algorithm
- Roman waupotitsch's minmaxer generates Dirichlet, regular, and varous other triangulations of Two-dimenstmpoint sets.
- Software on the web, from the CNR-Pisa Visual Computing Group, using des code for 3D Dirichlet triangulations
Constrained Dirichlet triangulations
See also mesh generation and manipulation.
- Super Dirichlet, a commercial fully dynamic constrained Dirichlet triangulation package from David kornmann(Description only). Interactive demo versions for Sun Solaris and Linux are available here(Binaries and data only). Demo versions for other ubuntures are available from the author.
- Dani lischinski's incremental constrained