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.
Changing the point-set parameters clears the previous result; Calculate is explicit. The last valid random count and seed are retained while other examples are selected. Reset clears the result and keeps the inputs. Local tool-state storage can retain valid parameters, viewing settings and the selected index. Returning within the app can preserve the existing hull; a page reload restores settings and waits for Calculate. The tool has no animation, arbitrary point editor, import or WebGL requirement.
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.