for _ in range(smooth_iters):
    averaged_vectors = {}
    for fkey in mesh.faces():
        nbrs = mesh.face_neighbors(fkey)
        vectors = mesh.get_faces_attribute(keys=nbrs, name=vector_tag)
        vectors.append(mesh.get_face_attribute(fkey, name=vector_tag))

        vectors = list(map(lambda x: ut.align_vector(x, vectors[0]), vectors))

        vectors = np.array(vectors)
        avg_vector = np.mean(vectors, axis=0).tolist()
        averaged_vectors[fkey] = avg_vector

    for fkey in mesh.faces():
        mesh.set_face_attribute(fkey,
                                name=vector_tag,
                                value=averaged_vectors[fkey])

# ==========================================================================
# Create PS vector lines
# ==========================================================================

# angles = {}
# centroids = {}
# for fkey, attr in mesh.faces(data=True):
# 	vector = attr.get(vector_tag)
# 	angle = angle_vectors([1.0, 0.0, 0.0], vector, deg=True)
# 	angles[fkey] = angle
# 	centroids[fkey] = np.array(mesh.face_centroid(fkey))

# print('max angle', min(angles.values()))