designcoding
About Table of Contents Keywords
Support designcoding!

Terrain Generator

August 13, 2026 | Algorithms
#basic-design #grasshopper #parametric-surface #terrain

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, you specify how flat or rugged the terrain should be, whether its overall form should resemble a hill or a valley, and its dimensions. The diagram looks rather complicated for such a simple operation. This is because the aim was to provide the students with a clean, solid model that was ready for contouring and physical model-making. For this reason, the generated surface is trimmed and converted into a solid.

Terrain Generator animation

If you examine the code, you will see that there is actually no random calculation involved. Points on a grid are displaced upward according to a function. In fact, the code could have been written in a much simpler way. If you move the function parameter I called “Seed” very slowly, the transitions in the surface reveal that the calculation is not actually random.

Terrain Generator Grasshopper definition

Working with such hypothetical terrains can sometimes be useful in architectural design studios. In this case, it offered an opportunity to introduce basic design students, who had not yet encountered architectural space, to the subject through surface geometry. Of course, the context of a site has much more than the geometric surface alone. In the stduio, as we move on, it was possible to incorporate layers of information into this surface geometry. In the following weeks, we gave the students a few more tools to help them analyze these models and make design decisions based on their findings. I’ll publish those tools soon.

Terrain Generator basic-design, grasshopper
Terrain Generator Grasshopper definitionDownload

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…

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…

Scary Patterns

August 6, 2026

While digging through my archives, I found an old animation I made in 2023. Back then, I was generating patterns with Parakeet. Thanks to this talented add-on, I managed to create a nice pattern by dressing a different component onto a Snub Square tiling base. However, for some reason, things started turning into a horror movie after that. MultiPipe was popular back then. So, I converted this pattern into surfaces using MultiPipe and attempted an animation using Rhino’s rendered viewport…

Dual Polyhedra in Grasshopper

October 7, 2025

Exploring dual polyhedra in Grasshopper is an interesting topic. In this post, I try to generate the dual of any polyhedron using Rhino Python and possibly Grasshopper. I developed this code for Rhino Python earlier here, and now I have converted it into a Grasshopper-Python component for better usability. I start the process by breaking the polyhedron into individual faces and gathering the corner points of each face. These points become the vertices of the dual polyhedron. Then, for each…

String Art in Rhino Python

June 19, 2025

String art is a captivating technique that combines geometry and aesthetics to recreate images using lines between pins. Here is a good reference to start studying it. In this post, I explored a custom Rhino Python script designed for Rhinoceros 7 and 8. It transforms a grayscale image into a dense web of threads. The algorithm analyzes the darkest areas of the image and connects pins in a circular layout to form compositions. The script begins by converting a user-selected…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #rhino-python
    • #polyhedra
    • #tutorial
    • #tessellation
    • #rhinoceros
    • #dome
    • #design-object
    • #image-sampler
    • #dodecahedron
    • #relief
    • #parametric-curve
    • #animation
    • #cycloid
    • #robot
    • #art
    • #simulation
    • #aperiodic
    • #tiling
    • #wave
    • #boolean
  • Search

  • Support designcoding!

    Enjoying designcoding? Support its future with a small donation on Patreon. Thank you!

    Patreon


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