Skip to content

Function: computeMeanCurvature() ​

ts
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 ​

SurfaceGeometry

The surface geometry to compute curvature for

options? ​

MeanCurvatureOptions = {}

Smoothing of the per-vertex estimate

Returns ​

Float32Array

Float32Array of mean curvature values per vertex

Released under the MIT License.