Difference beteen curvature heatmaps?

Dear all,

I’m a bit confused by different kinds of curvature heatmap displays in MGX (namely SignedAverageAbs, Curve Max & Min, Average, Gaussian, Rootsumsquare, and Anisotrophy) and would love to learn more about their difference and how are they calculated. My images are floral meristems and if you feel there’s a specific kind of curvature heatmap that works the best for meristems, please feel free to let me know (thank you!).

In addition, can I get some advice on how to determine the radius for computing the tissue curvature as well?

Any suggestion is appreciated and thank you very much!


Hi Minya,

Curvature is a tensor, and you can see the principle directions and magnitudes by enabling the Axis visualization. When you want to see a heatmap, then that tensor needs to be converted into a single scalar value. This is done by plotting some combination of the min and max curvature amounts (directions with be orthogonal), so the functions you see are different possibilities for how to do that.

There are pros and cons to the various methods. For example Gaussian curvature is the product, which means if one direction is zero, then Gaussian curvature will be zero. On the side of a cylinder it would be zero, even though one direction is quite curved, which might not be what you want.

You could use the average, but then you can still get zero if one is positive and the other is negative. To get around this you could try SignedAverageAbs or RootSumSquare.

If you are calculating curvature at the vertex level, then it is best done with a coarse mesh that has been smoothed a bit, otherwise it will take forever with a large radius. The radius determined what area is used for the curvature approximation. Too large and it is like smoothing the mesh a lot, too small and it will pick up the noise in the surface. It is a bit tricky to get right.

In the end we normally don’t use it much anymore on the vertex level but instead tend to prefer the “Tissue Curvature” option in the Cell Axis area. It just uses the cell junctions, so it is very fast even on a fine mesh and it also has the advantage that it does not take the bulging of the cells into account. However it does require that the surface be segmented into cells.

I guess it depends on what you want to do, and the mesh you have to work with.


1 Like