designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Delaunay Exercise

June 28, 2013 | Algorithms
#delaunay-triangulation #grasshopper

After becoming a ready-made component in Grasshopper, the Delaunay triangulation lost its popularity quickly. It used to be a nice problem of computational geometry for designers obsessed with scripting.  Last month, Benay reminded me of the method of circle checking. She showed her Rhinoscript that creates circles from point triplets and checks if a point is inside or not. Today I studied this in Grasshopper to see if I can handle the required point combinations quickly. However, my first attempt was terrible.

Wikipedia has a clean-quick explanation of the term:

In mathematics and computational geometry, a Delaunay triangulation for a set P of points in a plane is a triangulation DT(P) such that no point in P is inside the circumcircle of any triangle in DT(P). Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the triangulation; they tend to avoid skinny triangles. The triangulation is named after Boris Delaunay for his work on this topic from 1934.

After a couple of dead ends, I solved it. The best part was understanding the “cross reference” component. It is a brute-force approach, creating all possible triangles from a given list of points. By using the combination formula I calculated the correct number of triangles. However, the different modes of the “cross reference” component give different results. “Lower strict” mode was the one I want, which calculates every combination of point triplets without caring about their order. I studied it with other native Grasshopper components but it became too complicated. After finding all of the circles. I checked if any point is inside these circles. If there is no point inside the circle, then these three points create a cell of the Delaunay triangulation. I checked with the ready-made component and it works correctly. But in some conditions, the circle component gives an error as three linear points cannot create a circle.

Delaunay Exercise Grasshopper definition
Delaunay Exercise delaunay-triangulation, grasshopper
Grasshopper definition (GHX)Download

Cite this post

Yazar, T. (2013, June 28). Delaunay Exercise. designcoding. Retrieved August 24, 2026, from https://www.designcoding.net/delaunay-exercise/

Related Posts

Delaunay Triangulation on Surface

March 26, 2015

This is a useful tip both to solve some of the problems with custom surface subdivisions, and to explain the uses of parametric surface evaluations (the U, V, W thing) and the practical use of data lists. Step 1: Put your points inside 0,0,0 and 1,1,0 so that the resulting coordinates can easily be converted to U and Vs. In the example, we are putting some random points between 0,0 and 1,1 using the Populate2d component. Step 2: Then make whatever you…

Landscape Extensions Final: Digital Sketch

February 1, 2015

This is the final Grasshopper sketch of our graduate studio conducted together with Fulya Akipek at Yıldız Technical University Computational Design Unit. The project was about designing parametric “Landscape Extensions” at Kabataş Park in İstanbul. I hope I’ll be able to post the actual student works and the material system, but now; only the final result of the digital sketch we’ve developed together with students is presented here. This was a kind of “sketchy” definition that came up as an…

Delaunay Triangulation with Rhino Python

July 27, 2017

Boris Nikolayevich Delaunay was a Russian mathematician and mountain climber. He developed the Delaunay triangulation, which is a method in computational geometry. It is a triangulation of a set of points such that no point is inside the circumcircle of any triangle formed by the points. It’s widely used in computer graphics and mesh generation. In 2013, I made the brute force code in Rhino Python which is a slow solution to this problem. It used to be a nice…

Interlocking Structure with Boolean

August 23, 2026

You are seeing the last of the interlocking system trials that I have previously tested in two exercises. If you remember, in our first trial, we were drawing interlocking joinery details on cross-sections using closed curves, without any solid modeling. And here is the most advanced one, I guess. In this exercise, however, we are creating a solid model that incorporates these interlocking details. This time, we will look at how to construct the same system using Boolean operations. Boolean…

Slope Map on Terrains

August 18, 2026

I previously shared the Grasshopper definition for terrain generation that we used in last year’s Basic Design studio. One of the goals of this project was to take the first step toward developing students’ skills in understanding, processing, and utilizing terrain data as a design input. To support this objective, we provided them with small supplementary tools. One of these tools was the slope map. As you can see, this is quite a simple Grasshopper definition. It computes the slope…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #rhino-python
    • #polyhedra
    • #parametric-surface
    • #robot
    • #tessellation
    • #boolean
    • #kuka-prc
    • #dome
    • #design-object
    • #image-sampler
    • #terrain
    • #sandblasting
    • #stone
    • #parametric-curve
    • #animation
    • #cycloid
    • #art
    • #simulation
    • #aperiodic
    • #tiling
  • Search

  • Support designcoding!

  • Enjoying designcoding? Support me on Patreon to keep it growing. Thank you!

  • copyright 2026 designcoding.net | about | privacy policy | end user license agreement