GradientFittedMesh[{p1,p2,…}]
gives a MeshRegion whose gradient best fits the normals at points p1,p2,….
GradientFittedMesh
GradientFittedMesh[{p1,p2,…}]
gives a MeshRegion whose gradient best fits the normals at points p1,p2,….
Details and Options
- GradientFittedMesh is also known as Poisson surface reconstruction.
- GradientFittedMesh is typically used to construct closed smooth regions from a set of points with normals.
- GradientFittedMesh gives a MeshRegion that approximates a geometric region with a scalar indicator function
whose gradient
best fits the normals ni at the points pi. - GradientFittedMesh finds the best least-squares approximate solution
whose Laplacian equals the divergence of the normals
. - Vertex normals ni for points pi can be specified by Point[{p1,p2,…},VertexNormals{n1,n2,…}].
- In GradientFittedMesh[{p1,p2,…}], normals to the points pti are estimated by computing the least-squares fit plane on the nearest neighboring points.
- GradientFittedMesh takes the same options as MeshRegion, with the following additions and changes:
-
PerformanceGoal $PerformanceGoal aspects of performance to try to optimize VertexNormals Automatic vertex normals to use
Examples
open all close allBasic Examples (2)
Reconstruct a sphere from random points:
pts = RandomPoint[Sphere[], 1000];GradientFittedMesh[pts]An oriented point sample of a Beethoven sculpture:
pts = Point[ExampleData[{"Geometry3D", "Beethoven"}, "VertexData"], VertexNormals -> ExampleData[{"Geometry3D", "Beethoven"}, "VertexNormals"]];Graphics3D[pts]GradientFittedMesh[pts]Scope (2)
GradientFittedMesh works on coordinates:
coords = ExampleData[{"Geometry3D", "Cow"}, "VertexData"];GradientFittedMesh[coords]It is equivalent to points without normals:
GradientFittedMesh[Point[coords]]GradientFittedMesh works on oriented points:
coords = ExampleData[{"Geometry3D", "Cow"}, "VertexData"];
normals = ExampleData[{"Geometry3D", "Cow"}, "VertexNormals"];GradientFittedMesh[Point[coords, VertexNormals -> normals]]Options (2)
VertexNormals (1)
Specify coordinate orientations using VertexNormals:
coords = ExampleData[{"Geometry3D", "Triceratops"}, "VertexData"];
normals = ExampleData[{"Geometry3D", "Triceratops"}, "VertexNormals"];
GradientFittedMesh[coords, VertexNormals -> normals]This is equivalent to passing oriented points:
GradientFittedMesh[Point[coords, VertexNormals -> normals]]RegionEqual[%, %%]PerformanceGoal (1)
Generate a higher-quality mesh:
pts = Point[ExampleData[{"Geometry3D", "Tugboat"}, "VertexData"], VertexNormals -> ExampleData[{"Geometry3D", "Tugboat"}, "VertexNormals"]];
GradientFittedMesh[pts, PerformanceGoal -> "Quality"]Emphasize performance, possibly at the cost of quality:
GradientFittedMesh[pts, PerformanceGoal -> "Speed"]Applications (1)
Reconstruct a mesh from oriented points in
:
pts = Point[ExampleData[{"Geometry3D", "Torus"}, "VertexData"], VertexNormals -> ExampleData[{"Geometry3D", "Torus"}, "VertexNormals"]];Graphics3D[pts]ℛ = GradientFittedMesh[pts]{RegionQ[ℛ], MeshRegionQ[ℛ]}Reconstructed meshes are bounded:
{BoundedRegionQ[ℛ], RegionBounds[ℛ]}{RegionMeasure[ℛ], RegionCentroid[ℛ]}Possible Issues (1)
GradientFittedMesh only works on 3D points:
GradientFittedMesh[RandomReal[1, {20, 3}]]Related Guides
History
Text
Wolfram Research (2021), GradientFittedMesh, Wolfram Language function, https://reference.wolfram.com/language/ref/GradientFittedMesh.html.
CMS
Wolfram Language. 2021. "GradientFittedMesh." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/GradientFittedMesh.html.
APA
Wolfram Language. (2021). GradientFittedMesh. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GradientFittedMesh.html
BibTeX
@misc{reference.wolfram_2026_gradientfittedmesh, author="Wolfram Research", title="{GradientFittedMesh}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/GradientFittedMesh.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_gradientfittedmesh, organization={Wolfram Research}, title={GradientFittedMesh}, year={2021}, url={https://reference.wolfram.com/language/ref/GradientFittedMesh.html}, note=[Accessed: 13-June-2026]}