3D convex hull
Explore a seeded point cloud or a geometric example, its convex hull and the role of each point.
About this tool
Choose a point set, then select Calculate. A convex hull is the smallest convex set containing all the input points. The examples include a tetrahedron, a cube with an interior point, a face point and a duplicate corner, a planar set, a line and coincident points. For a random cloud, choose an integer count from 4 to 80 and seed from 1 to 999999. The same count and seed reproduce the same points. Each coordinate is generated as (u − 0.5)·3 using the existing Mulberry32 sequence.
A hull can be a point (dimension 0), a segment (1), a planar polygon (2) or a closed polyhedron (3). Lower-dimensional sets are valid results. Exactly identical coordinates are merged; the duplicate count records how many input entries were removed. Hull vertices are the extreme points. Other points can lie on the boundary or in the relative interior. For a planar set or segment, “interior” refers to its own plane or line, not to a three-dimensional volume.
The diagram shows actual polygon faces and edges. For example, a cube has six quadrilateral faces and twelve edges; diagonals used to measure or triangulate a face are not additional hull edges. Circles identify vertices, outlined squares other boundary points, and diamonds interior points. The selected point has a surrounding ring. Tap near a displayed point or use the numbered index. Indices refer to unique points; the input-position list also identifies repeated entries. A new point set starts selection at index 1.
View controls. The projection is orthographic with one spatial scale. View angle rotates around world y, then tilt around the screen’s horizontal axis. The axis triad follows the same rotation; dashed axis segments point away from the viewer. Faces are translucent and all point markers are deliberately visible through them. This is a view through the hull, not an exact hidden-surface rendering. When several points overlap in projection, use their indices. Hull and Points hide only their respective drawing layers. Changing the view or selection does not generate another point set or recalculate the hull.
Coordinates use arbitrary units. Surface area in 3D and polygon area in 2D use squared units; the 2D polygon is counted once, not as two faces. Volume uses cubed units and is zero below dimension 3. Coordinates, projections, areas and volumes use floating-point arithmetic. Topological decisions use exact integer orientation signs for the binary coordinates actually stored by JavaScript, including near-coplanar cases. This does not make the measured areas or volumes exact, and it is not an implementation of Shewchuk’s adaptive predicates.
Own coordinates accepts 1–80 lines, each containing x y z separated by spaces or semicolons. Decimal commas are supported when coordinates are separated by spaces. Empty lines are ignored. Each absolute coordinate must be at most 1000000; malformed or underflowed numbers are rejected.
After the first calculation, valid point-set edits update automatically. Drag with a mouse to turn the view; Ctrl/Meta+wheel zooms about the centre, while plain wheel scrolls. Reset restores the fitted initial view and keeps inputs. View opens precise angles and layer switches. Measurements opens the selected-point coordinates and hull measures; clicking a point opens this inspector. SVG exports the current drawing. Only input drafts and display switches are retained, not hulls, viewing angles, selections or zoom.
Sources: CGAL 6.2.1: 3D Convex Hulls, Introduction and Lower Dimensional Results, for convex hulls and dimension; Jonathan Richard Shewchuk, Robust Predicates, for orientation signs and roundoff near degeneracy. No code or illustrations from these sources are used.