# Library/package for calculating vertex curvature and normals of a mesh

**URL:** <https://discourse.julialang.org/t/library-package-for-calculating-vertex-curvature-and-normals-of-a-mesh/106456>\
**Category:** Modelling & Simulations\
**Tags:** question\
**Created:** [November 20, 2023, 11:33am UTC](https://discourse.julialang.org/t/library-package-for-calculating-vertex-curvature-and-normals-of-a-mesh/106456 "2023-11-20T11:33:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jacopo\_Romano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacopo_romano/32/50435_2.png) [@Jacopo\_Romano](https://discourse.julialang.org/u/Jacopo_Romano)\
**Post date:** [November 20, 2023, 11:33am UTC](https://discourse.julialang.org/t/library-package-for-calculating-vertex-curvature-and-normals-of-a-mesh/106456/1 "2023-11-20T11:33:45Z")

</div>

Hi everyone,

I’m trying to develop a numerical scheme for simulating the equation of motion of a closed surface in 3D.  
To do it, I wanted to represent the surface as a mesh, compute the normal velocity, and use it to evolve the mesh itself. Here comes my problem:

I need to compute some basic geometric properties like vertex normals and curvature on the mesh in order to compute the velocities. It feels like there should be a library/package to do that efficiently, but I really can’t find one.

Actually, [GitHub - JanisErdmanis/SurfaceGeometry.jl: Tools for meshing surface, evaluation of normals and curvatures, and integration of nodes with given velocity field](https://github.com/JanisErdmanis/SurfaceGeometry.jl) does pretty much everything I need, but the project is quite old and not updated. Also, when I run some benchmarks, it seems that most of the functions are not well-optimized, so I would like to avoid using it.

Can you suggest a better package?

Edit: title

Edit: Apparently, Meshes.jl does not support it. In general, I prefer to avoid using it as it defines many abstract datatypes which would be difficult to time-update using the integrators in DifferentialEquations.jl. Or at least this is my impression

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [November 20, 2023, 11:42am UTC](https://discourse.julialang.org/t/library-package-for-calculating-vertex-curvature-and-normals-of-a-mesh/106456/2 "2023-11-20T11:42:05Z")

</div>

Try Meshes.jl and open issues if features are missing. It is actively maintained and is feature-rich. Optimizations are implemented on demand.
