ReconstructionMesh[{pt1,pt2,…}]
reconstructs a mesh from a set of points pt1,pt2,….
ReconstructionMesh
ReconstructionMesh[{pt1,pt2,…}]
reconstructs a mesh from a set of points pt1,pt2,….
Details and Options
- ReconstructionMesh is also known as surface reconstruction.
- ReconstructionMesh is typically used to construct the shape and appearance of objects.
- ReconstructionMesh[{pt1,pt2,…}] gives a mesh region that approximates the set of points pi.
- ReconstructionMesh takes the same options as MeshRegion, with the following additions and changes:
-
Method Automatic method to use ProgressReporting $ProgressReporting whether to report the progress of the computation VertexNormals Automatic vertex normals to use - Possible method settings include "Crust", "AlphaShape" and "Poisson".
Examples
open all close allBasic Examples (3)
ReconstructionMesh[CirclePoints[16]]pts = RandomPoint[Annulus[], 500];ReconstructionMesh[pts]pts = RandomPoint[ResourceData["Stanford Bunny"], 10000];ReconstructionMesh[pts]Scope (7)
Basic Uses (5)
pts = Table[(2 + 2 / 3.5Sin[3 t]) * RotationMatrix[t].{1, 0}, {t, 0, 2 Pi, 0.15}];ReconstructionMesh[pts]pts = RandomPoint[Annulus[], 500];ReconstructionMesh[pts]pts = Table[{t, Cos[t], Sin[t]}, {t, 0, 8Pi, Pi / 20}];ReconstructionMesh[pts]pts = RandomPoint[DiscretizeRegion[Torus[]], 1000];ReconstructionMesh[pts]RegionDimension[%]pts = RandomPoint[CapsuleShape[], 1000];ReconstructionMesh[pts]RegionDimension[%]Specifications (2)
ReconstructionMesh works on coordinates:
coords = RandomPoint[ResourceData["Cow"], 10000];ReconstructionMesh[coords]It is equivalent to points without normals:
ReconstructionMesh[Point[coords]]ReconstructionMesh works on oriented points:
coords = ExampleData[{"Geometry3D", "Cow"}, "VertexData"];
normals = ExampleData[{"Geometry3D", "Cow"}, "VertexNormals"];ReconstructionMesh[Point[coords, VertexNormals -> normals]]Options (5)
Method (3)
Use the "Crust" method to reconstruct curves:
pts = Table[{t, Cos[t]}, {t, 0, 4Pi, Pi / 10}];
ReconstructionMesh[pts, Method -> "Crust"]pts = Table[{t, Cos[t], Sin[t]}, {t, 0, 4Pi, Pi / 20}];
ReconstructionMesh[pts, Method -> "Crust"]Use the "AlphaShape" method to reconstruct curves:
pts = Table[{t, Cos[t], Sin[t]}, {t, 0, 4Pi, Pi / 20}];
ReconstructionMesh[pts, Method -> "AlphaShape"]pts = SpherePoints[80];
ReconstructionMesh[pts, Method -> "AlphaShape"]pts = RandomPoint[Ball[], 1000];
ReconstructionMesh[pts, Method -> "AlphaShape"]ReconstructionMesh[pts, Method -> {"AlphaShape", "Alpha" -> 1.0}]Use the "Poisson" method to reconstruct surfaces in 3D when the normals for the points are known:
pts = ExampleData[{"Geometry3D", "Beethoven"}, "VertexData"];
nls = ExampleData[{"Geometry3D", "Beethoven"}, "VertexNormals"];
ReconstructionMesh[Point[pts, VertexNormals -> nls], Method -> "Poisson"]If no normals are provided, ReconstructionMesh will estimate them before reconstruction:
ReconstructionMesh[pts, Method -> "Poisson"]ProgressReporting (1)
By default, ReconstructionMesh does report progress:
pts = RandomPoint[ResourceData["Cow"], 10000];
ReconstructionMesh[pts][image]With the setting ProgressReporting False, ReconstructionMesh does not show the progress of the computation:
ReconstructionMesh[pts, ProgressReporting -> False]VertexNormals (1)
Specify coordinate orientations using VertexNormals:
coords = ExampleData[{"Geometry3D", "Beethoven"}, "VertexData"];
normals = ExampleData[{"Geometry3D", "Beethoven"}, "VertexNormals"];
ReconstructionMesh[coords, VertexNormals -> normals]This is equivalent to passing oriented points:
ReconstructionMesh[Point[coords, VertexNormals -> normals]]RegionEqual[%, %%]Applications (4)
Curve Reconstruction (1)
ReconstructionMesh can reconstruct 1D curves in 2D:
pts = Table[{t, Cos[t]}, {t, 0, 4Pi, Pi / 20}];
ReconstructionMesh[pts]pts = Table[{t, Cos[t], Sin[t]}, {t, 0, 8Pi, Pi / 20}];
ReconstructionMesh[pts]Surface Reconstruction (2)
ReconstructionMesh can reconstruct surfaces in 1D:
pts = RandomPoint[RegionUnion[Ball[{-2}], Ball[{2}]], 30];
ReconstructionMesh[pts]RegionMeasure[%]pts = RandomPoint[RegionBoundary[Annulus[]], 500];
ReconstructionMesh[pts]ArcLength[%]pts = RandomPoint[RegionBoundary[DiscretizeRegion[Torus[]]], 1000];
ReconstructionMesh[pts]Area[%]ReconstructionMesh can reconstruct 3D models:
ReconstructionMesh[RandomPoint[ResourceData[#], 10000]]& /@ {"Stanford Bunny", "Cow", "Horse"}Solid Reconstruction (1)
ReconstructionMesh can reconstruct solids in 2D:
pts = RandomPoint[Annulus[], 500];
ReconstructionMesh[pts]Area[%]pts = RandomPoint[CapsuleShape[], 1000];
ReconstructionMesh[pts]Volume[%]Properties & Relations (7)
ConcaveHullMesh reconstructs meshes using alpha shapes:
coords = RandomPoint[Annulus[], 500];ConcaveHullMesh[coords]This is similar to calling ReconstructionMesh with the Method set to "AlphaShape":
ReconstructionMesh[coords, Method -> "AlphaShape"]GradientFittedMesh reconstructs meshes using Poisson surface reconstruction:
coords = RandomPoint[DiscretizeRegion[Torus[]], 1000];GradientFittedMesh[coords]This is similar to calling ReconstructionMesh with the Method set to "Poisson":
ReconstructionMesh[coords, Method -> "Poisson"]FindCurvePath can be used to reconstruct curves from points:
coords = RandomPoint[Circle[], 30];path = FindCurvePath[coords];
MeshRegion[coords, Line[path]]This is similar to calling ReconstructionMesh with the Method set to "Crust":
ReconstructionMesh[coords, Method -> "Crust"]ListSurfacePlot3D can also be used to reconstruct 3D surfaces from points:
coords = MeshCoordinates[ResourceData["Stanford Bunny"]];ListSurfacePlot3D[coords, MaxPlotPoints -> 50]ConvexHullMesh can reconstruct convex meshes:
coords = CirclePoints[100];ConvexHullMesh[coords]Use DelaunayMesh to include the interior simplices:
DelaunayMesh[coords]RegionFit fits a geometric model to a set of points:
coords = RandomPoint[Circle[{1, 2}, 3], 5];RegionFit[coords, "Circle"]EstimatedPointNormals can estimate normals for use in reconstruction:
coords = RandomPoint[ResourceData["Cow"], 10000];normals = EstimatedPointNormals[coords]//ShallowReconstructionMesh[Point[coords, VertexNormals -> %]]Interactive Examples (1)
Create an interactive example with draggable points to view the reconstructed mesh in real time:
DynamicModule[{p = CirclePoints[10]},
LocatorPane[Dynamic[p], Graphics[{FaceForm[LightGray], EdgeForm[Black], Dynamic[ReconstructionMesh[p] /. _EmptyRegion -> {}]}, PlotRange -> 1.2]]]Related Guides
History
Text
Wolfram Research (2022), ReconstructionMesh, Wolfram Language function, https://reference.wolfram.com/language/ref/ReconstructionMesh.html.
CMS
Wolfram Language. 2022. "ReconstructionMesh." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ReconstructionMesh.html.
APA
Wolfram Language. (2022). ReconstructionMesh. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ReconstructionMesh.html
BibTeX
@misc{reference.wolfram_2026_reconstructionmesh, author="Wolfram Research", title="{ReconstructionMesh}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/ReconstructionMesh.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_reconstructionmesh, organization={Wolfram Research}, title={ReconstructionMesh}, year={2022}, url={https://reference.wolfram.com/language/ref/ReconstructionMesh.html}, note=[Accessed: 12-June-2026]}