Mesh from survey points

Hi, i'm looking for a Blender way to model surfaces based on survey points. Points come from CloudCompare after saving to .ply. The [F] fill option does not work that well. I read about some potential (old) addons.



  • This is called Delaunay Triangulation. Here's a script I roughly adapted from a ChatGPT answer. I used it on a project last month. You'll need to install scipy.

    import bpy
    import bmesh
    from scipy.spatial import Delaunay
    import numpy as np
    def delaunay():
        # Check if there is an active object and it's a mesh
        if bpy.context.active_object is not None and bpy.context.active_object.type == "MESH":
            # Get the active object
            obj = bpy.context.active_object
            # Get vertices from the currently selected mesh
            vertices = np.array([ for v in])
            # Create a new mesh and a new object
            mesh ="DelaunayMesh")
            delaunay_obj ="DelaunayObj", mesh)
            # Add the object to the scene
            # Get a BMesh representation
            bm =
            # Add vertices to BMesh
            for v in vertices:
            # Ensure the vertices table is populated
            tri = Delaunay([v[:2] for v in vertices])  # Use only x, y for triangulation
            # Create faces based on Delaunay triangulation
            for simplex in tri.simplices:
      [bm.verts[i] for i in simplex])
            # Optional: Deselect the original object and select the new Delaunay mesh object
   = delaunay_obj
            print("No active mesh object selected.")
    if __name__ == "__main__":
  • That works very nice. Thanks for this useful tip!
    With quadremesh and saved as IFC. We are able to model plots nicely with dutch landregistry data (based on AHN).

    The code does end with some error on my site. Regards

  • Yeah you can remove the 3 lines just after the # Optional comment line, they are superfluous and I think they're the culprit ones

Sign In or Register to comment.