Function: computeMeanCurvature()
function computeMeanCurvature(geometry, options?): Float32Array;Defined in: utils/curvature.ts:114
Compute mean curvature for each vertex of a mesh, in the FreeSurfer sign convention: positive in concave regions (sulci), negative on convex regions (gyral crowns).
The estimate projects the umbrella (uniform Laplacian) vector, from the vertex to the centroid of its neighbours, onto the area-weighted vertex normal and divides by the squared mean edge length at the vertex:
H ≈ 2 · ((mean(neighbours) − v) · n) / ē²
Normalising by the edge length makes the result an approximation of mean curvature in inverse mesh units (1/mm for cortical meshes), so values are comparable across mesh resolutions; a sphere of radius R gives ≈ −1/R.
Normals come from the face winding, so the mesh must be wound with outward normals (FreeSurfer and GIFTI surfaces are). Curvature is only meaningful on folded (white, pial or midthickness) surfaces: on inflated, very inflated or flat surfaces, compute it from the folded surface with the same topology, or use computeSulcalDepth or a FreeSurfer .sulc/.curv file.
Parameters
geometry
The surface geometry to compute curvature for
options?
MeanCurvatureOptions = {}
Smoothing of the per-vertex estimate
Returns
Float32Array
Float32Array of mean curvature values per vertex