code: def vertex_normals(vertices, faces):
      
  
      def normalize_v3(arr):
          ''' Normalize a numpy array of 3 component vectors shape=(n,3) '''
          lens = np.sqrt(arr[:, 0]**2 + arr[:, 1]**2 + arr[:, 2]**2)
          arr /= lens[:, np.newaxis]
  
      tris = vertices[faces]
      facenorms = np.cross(tris[::, 1] - tris[::, 0], tris[::, 2] - tris[::, 0])
      normalize_v3(facenorms)
  
      norm = np.zeros(vertices.shape, dtype=vertices.dtype)
      norm[faces[:, 0]] += facenorms
      norm[faces[:, 1]] += facenorms
      norm[faces[:, 2]] += facenorms
      normalize_v3(norm)
      return norm
docs: Calculates the normals of a triangular mesh