Up: Past Software Projects of the Geometry Center
URL: http://www.geom.umn.edu/software/qhull

# Home page for Qhull

Qhull computes convex hulls, Delaunay triangulations, halfspace intersections about a point, Voronoi diagrams, furthest-site Delaunay triangulations, and furthest-site Voronoi diagrams. It runs in 2-d, 3-d, 4-d, and higher dimensions. It implements the Quickhull algorithm for computing the convex hull. Qhull handles roundoff errors from floating point arithmetic. It computes volumes, surface areas, and approximations to the convex hull.

Qhull does not support constrained Delaunay triangulations, triangulation of non-convex surfaces, mesh generation of non-convex objects, or medium-sized inputs in 9-D and higher.

- News about Qhull
- How is Qhull used?
- Download Qhull
- Examples of Qhull output
- Qhull development at Savannah
- Manual for Qhull and rbox
  - qconvex -- convex hull
  - qdelaunay -- Delaunay triangulation
  - qvoronoi -- Voronoi diagram
  - qhalf -- halfspace intersection about a point
  - rbox -- generate point distributions
  - Qhull functions, macros, and data structures with source
- Frequently asked questions about Qhull
- Geomview -- 3-D and 4-D visualization of Qhull output
- MATLAB's qhull functions: convhulln delaunayn griddata3 griddatan tsearch tsearchn voronoin. MATLAB has not upgraded to version 3.1 and triangulated output ('Qt').
- GNU Octave uses Qhull for their computational geometry functions. Octave has not upgraded to version 3.1 and triangulated output ('Qt').
- Mathematica's Delaunay interface: qh-math
- Send e-mail to qhull@geom.umn.edu
- Report bugs to qhull_bug@geom.umn.edu

- Fukuda's introduction to convex hulls, Delaunay triangulations, Voronoi diagrams, and linear programming
- Lambert's Java visualization of convex hull algorithms
- Stony Brook Algorithm Repository, computational geometry

- BGL Boost Graph Library provides C++ classes for graph data structures and algorithms,
- Clarkson's hull program with exact arithmetic for convex hulls, Delaunay triangulations, Voronoi volumes, and alpha shapes.
- Fukuda's cdd program for halfspace intersection and convex hulls
- Leda and CGAL libraries for writing computational geometry programs and other combinatorial algorithms
- Shewchuk's triangle program for 2-d Delaunay

- Amenta's directory of computational geometry software
- Erickson's Computational Geometry Pages and Software
- Magic Software source code for computer graphics, image analysis, and numerical methods
- MathWork's Mathtools.net -- scientific and engineering software
- Owen's Meshing Research Corner
- Schneiders' Finite Element Mesh Generation page
- Skorobohatyj's Mathprog@ZIB for mathematical software
- Voronoi Web Site for all things Voronoi

- FAQ for computer graphics algorithms (geometric structures)
- Recent references to Qhull in Google.
- Qhull references in Google Groups (i.e., newsgroups)
- FAQ for linear programming
- Newsgroup: comp.graphics.algorithms
- Newsgroup: comp.soft-sys.matlab
- Newsgroup: sci.math.num-analysis
- Newsgroup: sci.op-research

The program includes options for input transformations, randomization, tracing, multiple output formats, and execution statistics. The program can be called from within your application.

You can view the results in 2-d, 3-d and 4-d with Geomview. An alternative is VTK.

For an article about Qhull, download qhull-96.ps.Z:

> Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., "The Quickhull algorithm for convex hulls," ACM Trans. on Mathematical Software, Dec 1996. http://www.acm.org;

Abstract:

> The convex hull of a set of points is the smallest convex set that contains the points. This article presents a practical convex hull algorithm that combines the two-dimensional Quickhull Algorithm with the general dimension Beneath-Beyond Algorithm. It is similar to the randomized, incremental algorithms for convex hull and Delaunay triangulation. We provide empirical evidence that the algorithm runs faster when the input contains non-extreme points, and that it uses less memory.

> Computational geometry algorithms have traditionally assumed that input sets are well behaved. When an algorithm is implemented with floating point arithmetic, this assumption can lead to serious errors. We briefly describe a solution to this problem when computing the convex hull in two, three, or four dimensions. The output is a set of "thick" facets that contain all possible exact convex hulls of the input. A variation is effective in five or more dimensions.

Up: Past Software Projects of the Geometry Center
URL: http://www.geom.umn.edu/software/qhull

The Geometry Center Home Page

Comments to: qhull@geom.umn.edu
Created: May 17 1995 --- Last modified: August 21, 2002