Weird triangles in my terrain mesh, PLEASE HELP!

So I am doing a school assignment and have been following a bunch of youtube tutorials on how to create a terrain from contour lines. Almost every tutorial makes a mesh from the contour lines (the one im following is doing it in grasshopper) however my mesh is creating these weird clipping triangles.

I found by moving the distance between points on my contour lines that the triangles reduce however the terrain includes a steeper slope which counteracts the moving points solution.

I am working in mm and the gap between my contour lines is 2m (height).

Below I have attached ss’s of the triangles in my mesh (grasshopper view) when baked they show up the same, and the grasshopper commands I’ve used to get to this point.

Anyone able to help me with this please?

this isn’t a point-spacing problem you can tune your way out of — it’s how plain Delaunay works. The Delaunay/“Mesh from Points” triangulator only looks at XY proximity. It has no idea which contour a point belongs to, so wherever the along-contour spacing is larger than the between-contour gap, it happily connects a point to one two or three contours away. Those are your slivers — long needle triangles that bridge across the gap and “clip” through the surface. They’re worst exactly where the contours bunch up in plan, i.e. your steep slope.

That’s also why your fix fights itself: coarsening the point spacing kills needles in the flat areas but under-samples the slope (so the mesh chords across it and the slope looks wrong); fine spacing captures the slope but re-creates needles where contours are close. Flat and steep regions want opposite densities, so one global spacing value can’t satisfy both. (Units are irrelevant here — mm vs m doesn’t matter, only the ratio of the two spacings does.)
Fixes, roughly in order of effort vs payoff:

  1. Resample by length, not count. Use Divide Length (or Rebuild + Divide) so every contour gets the same segment length, set roughly equal to the median plan distance between your contours. This alone makes most triangles near-equilateral and removes a lot of needles. Also force the Delaunay Mesh plane input to World XY rather than letting it auto-fit a best-fit plane — it’s a 2D triangulation lifted in Z, and a tilted fit plane skews the connectivity.

  2. Even out the plan gap in the steep zone. The needles survive where contours bunch. Tween a couple of intermediate contours (Tween Curve, or interpolate at 0.5/1 m intervals) only in the steep band so the perpendicular spacing becomes more uniform. This is the targeted version of your spacing fix — it densifies where the problem actually is instead of globally.

  3. Drop Delaunay for an isosurface mesher. For a clean school deliverable this is the most robust path: feed the contour points into Cocoon (charges from points/curves) and you get a watertight, needle-free terrain mesh, then trim to your boundary. It never bridges because it’s marching-cubes over a scalar field, not nearest-neighbour triangulation. If you’d rather stay native: run the Delaunay, then cull faces by aspect ratio / max edge length to delete the slivers, patch the holes, and smooth with Weaverbird or Kangaroo.

  4. Surface-first, only if your contours are clean nested loops with no branching or islands: Patch through all the points (forgiving, handles uneven data well) or Loft consecutive contours, then mesh the result. Loft breaks on branching/saddle areas, so it’s the least general option.

One more thing worth checking: the triangles spanning the outer concave edges of your terrain are a separate artifact — Delaunay always fills its convex hull, so any concavity in your boundary gets webbed over. You trim those by culling faces whose centroid falls outside the boundary curve, regardless of which fix above you use.

there different option of LOFT, from different plugin , try them a good one is from ShapeDiver,if I remember correctly.


one more solution , try fillet curves , then Loft them !!!
Good Luck !

Thankyou so much!

I ended up baking the delaunay mesh and then just going in and using points brush to move and level out the points that were causing the triangles as I was on a little bit of a time crunch, but I will definitely keep that in mind for the next time I am making my terrain. The dividing curve by length def sounds a lot better and unfortunately I don’t have enough time to go back in to fix it but thankyou so much for the help!!

When a surveyor completes this type of project they will survey breaklines like your ditches and road edges and other surface features. In Civil3D you can add that linework and that prevents it making triangles that cross the lines. I am not aware that GH has that function. I have used different solutions to try to work around that, but it depends on the data I am given.