Fill holes and fix winding and normals of meshes., color=None)

Return the index of faces in the mesh which break the watertight status of the mesh.

  • mesh (trimesh.Trimesh) – Mesh to check broken faces on

  • color ((4,) uint8 or None) – Will set broken faces to this color if not None


broken – Indexes of mesh.faces

Return type:

(n, ) int

Fill single- triangle holes on triangular meshes by adding new triangles to fill the holes. New triangles will have proper winding and normals, and if face colors exist the color of the last face will be assigned to the new triangles.


mesh (trimesh.Trimesh) – Mesh will be repaired in- place, multibody=False)

Check to see if a mesh has normals pointing “out.”

  • mesh (trimesh.Trimesh) – Mesh to fix in-place.

  • multibody (bool) – If True will try to fix normals on every body, multibody=False)

Fix the winding and direction of a mesh face and face normals in-place.

Really only meaningful on watertight meshes but will orient all faces and winding in a uniform way for non-watertight face patches as well.

  • mesh (trimesh.Trimesh) – Mesh to fix normals on

  • multibody (bool) – if True try to correct normals direction on every body rather than just one


mesh.faces : will flip columns on inverted faces

Traverse and change mesh faces in-place to make sure winding is correct with edges on adjacent faces in opposite directions.


mesh (Trimesh) – Source geometry to alter in-place., faces=None, insert_vertices=False)

Create a fan stitch over the boundary of the specified faces. If the boundary is non-convex a triangle fan is going to be extremely wonky.

  • vertices ((n, 3) float) – Vertices in space.

  • faces ((n,) int) – Face indexes to stitch with triangle fans.

  • insert_vertices (bool) – Allow stitching to insert new vertices?


  • fan ((m, 3) int) – New triangles referencing mesh.vertices.

  • vertices ((p, 3) float) – Inserted vertices (only returned if insert_vertices)