designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Perlin Noise Generator

August 20, 2023 | Algorithms
#grasshopper #noise #perlin

Perlin noise is a gradient noise function that has been widely used in computer graphics, procedural generation, and various other applications to generate natural-looking patterns. Here is my brief exploration of the Perlin Noise Generator. Although I didn’t fully follow the traditional steps the result looks similar. I started with the square grid and generated random gradient vectors on every grid corner. Then, I implemented the original algorithm’s dot product method. To calculate the value of a point in this 2D space, I choose the four closest vectors. Plus, I created four more vectors that have tails on the corners and tips on the point in question. Then, I calculated the dot products between these four corners and four gradient vectors. After this, I quit using the traditional algorithm (the interpolation and ease function). Instead, I finished the algorithm by just calculating the linear interpolations of those dot products.

Perlin Noise Generator animation

This Grasshopper definition generates random terrain models by using my noise generator explained above. I used the Move and Mesh components to generate the result. You can play with the overall height multiplier to make it more mountainous or flat. The output is a single mesh surface in Rhinoceros. The code is using native Grasshopper components. Thus, no add-ons are necessary for it to work.

Perlin Noise Generator Grasshopper definition
Perlin Noise Generator grasshopper, noise
Grasshopper definition (GH)Download

Cite this post

Yazar, T. (2023, August 20). Perlin Noise Generator. designcoding. Retrieved August 24, 2026, from https://www.designcoding.net/perlin-noise/

Related Posts

Wave Generator

April 17, 2024

Here is a wave generator code I developed using Grasshopper and Python. While searching for a solution to the realistic water simulations, I came up with the Gerstner Waves. I tried to implement it. However, I came up with this final result, which is not a Gerstner Wave generator, but a much simpler one. It combines many user-fed wave components and calculates the resulting single wave. I played with this code for hours with different components. So, it is worth…

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…

Catenary Dome without Kangaroo

August 13, 2026

When thinking about serious and specific topics, I suddenly find myself looking back at the basics again. Catenary curves, are not the most beautiful one among those mathematical forms found in nature. However, it still tells us a lot about structures. The name apparently comes from catenaria, the Latin word for “chain”. This Grasshopper code was actually an example from our book 10 years ago (link here). It seems catenary curves could potentially be used in a type of dome…

Terrain Generator

August 13, 2026

Last year, for the midterm assignment in our first-year basic design studio, we gave our students a range of different, randomly generated contexts to work with. For this purpose, I developed a small Grasshopper tool that makes the graph of a function look as much like a terrain model as possible. This tool is not really a procedural terrain generator. I would genuinely like to build one, someday. What we have here is simply a function surface. At the inputs,…

  • 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