The expanding sphere algorithm computes an alpha shape tetrahedralization of a point set. Starting with a seed tetrahedron, the circumscribing sphere is squeezed through each face until it either touches another point or exceeds a preset radius. If no point is found, that face of the tetrahedron is part of the surface of an object. If a point is found, a new tetrahedron is constructed. This process is iterated until all the faces of the tetrahedra have been processed and no more connected points can be found. If there are points left over, the process is iterated, creating additional objects. The algorithm generates a list of objects, with an alpha shape tetrahedralization and a surface triangulation for each. Any points that cannot be made part of a valid tetrahedron are also returned in the extra points list. The algorithm is efficient for uniformly distributed point sets, with a running time that is linear in the number of points for such sets. Since the operations are local, it is also robust.