# Computing Geometrical Properties on a PropertyTopomesh
In CellComplex, cell tissues are represented as meshes (more exactly cellular complexes implemented as incidence graphs) in an object called **PropertyTopomesh**. This data structure contains the geometry and topology of the cells, and can also bear other properties defined on each of its elements (vertices, edges, faces or cells).
The CellComplex.PropertyTopomesh library comes with tools to automatically compute a whole range of geometrical properties on the tissue mesh (*compute_topomesh_property*) and to propagate properties between elements of different dimensions (*compute_topomesh_vertex_property_from_faces* for instance).
It is possible to construct a **PropertyTopomesh** from standard mesh file formats, such as PLY. Here an example of a meristematic L1 tissue saved as a PLY file, provided as an example in the *share/data* directory of the package, is loaded.
The tissue is a surfacic triangular mesh where triangles are linked to a labelled cell. Each label can be mapped to an independent color for visualization.
%% Cell type:code id: tags:
``` python
# Specific function for 3D visualization in notebooks
Based on this initial mesh, we would like to compute the curvature of the surface. To do so, we will use the function *compute_topomesh_property* to compute the geometrical properties allowing to obtain this information.
The first property to compute is the **normal** of the faces (elements of degree = 2). Given the implementation as an incidence graph, the order of vertices for each face is not unambiguous, hence the orientation of faces is not contained in the surface. It is necessary to have a way of re-orienting consistently the normals. Here we choose the *orientation* mode that propagates the orientation infomration in a topologically accurate way on a connected surfacic mesh.
Next, we compute the **area** of all faces, and use it to compute the **normal** property on the vertices (elements of degree = 0). This is done by averaging the normals of faces neighboring each vertex using the function *compute_topomesh_vertex_property_from_faces*.
Once each vertex bears a consistent normal, it is possible to compute the **mean curvature** of the each face (actually the **3D curvature tensor** containing all the information on the principal curvatures, in particular mean, gaussian, min and max curvatures). This property can be propagated to the vertices using the same method as for the normals.
This numerical property can be visualized on the triangles of the mesh using the property on the vertices, creating a smooth interpolation of curvature values.
Alternatively, the mean curvature could be propagated to the cells (elements of degree = 3) to have unique value for each cell of the tissue. This value can then be conveniently visualized on a representation of the mesh that specifically isolates the cells.