Scalar Field Curvature

Scalar Field Curvature#

https://github.com/nortikin/sverchok/assets/14288520/5f91a473-ad6f-439d-94b4-1156af06002e

Functionality#

This node calculates several types of information about implicitly defined surface curvature:

  • Principal curvature values

  • Gauss Curvature

  • Mean Curvature

You can refer to Wkikpedia for more detailed information about these terms.

If we have a scalar field defined by V = F(x,y,z), then at each point in space (x,y,z) it has a value of V; then through each point in space goes an iso-surface defined by F(x,y,z) = V. We can calculate curvature of that surface at that point. So, it appears that given one scalar field, we can define another one, defined by K(x,y,z) = Curvature(F(x,y,z) = V at (x,y,z)). We can simply evaluate that new scalar field at any point, for example at points of the surface F(x,y,z) = V itself; or we can do other strange things with this new scalar field…

The most clearly useful this will be in combination with “Marching Cubes” node from Sverchok-Extra addon, but may give interesting effects by itself.

Note that the calculation is done by numerical differentiation, so it may be not very precise in some cases.

Inputs#

This node has the following input:

  • Field. The scalar field, for which the curvature is to be calculated. This input is mandatory.

Parameters#

This node has the following parameter:

  • Step. Grid step for numericall differentiation. Bigger values give more smooth fields. The default value is 0.001.

Outputs#

This node has the following outputs:

  • Gauss. Scalar field, values of which are Gaussian curvature values of iso-surfaces of the input scalar field.

  • Mean. Scalar field, values of which are mean curvature values of iso-surfaces of the input scalar field.

  • Curvature1. Scalar field, values of which are first principal curvature values of iso-surfaces of the input scalar field.

  • Curvature2. Scalar field, values of which are second principal curvature values of iso-surfaces of the input scalar field.

Examples of usage#

Build some scalar field by “Attractor Field” node, measure it’s mean curvature and use that curvature values to color the vertices of a plane:

https://user-images.githubusercontent.com/284644/81438971-0e9cf000-9187-11ea-9d67-703b3550faf1.png

Generate an iso-surface of the same scalar field, and use it’s mean curvature values for coloring. Note: this example requires Sverchok-Extra addon for “Marching Cubes” node.

https://user-images.githubusercontent.com/284644/81438974-0fce1d00-9187-11ea-9583-1e8f4c6f8573.png