designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Spiral Staircase

April 17, 2023 | Algorithms
#design-object #grasshopper #spiral

This is a basic Grasshopper exercise, covering many fundamental topics. The aim is to create the parametric model of a spiral staircase. This is more educational than functional, I guess. Below is the explanation of the Grasshopper definition in three parts.

Spiral Staircase design-object, grasshopper

Helix Points for the Spiral Staircase

In the first part of the definition, I am defining the points ordered on a helix. First, I calculate the number of steps by dividing the total height value by the height of each step (14). This gives me the total number of points I will generate. Then, I use a Point Cylindrical (Pt) component to place those points in a helix-like order. The two Range (Range) components are responsible for creating the series of numbers for that. The A input picks up the range of numbers from 0 To 2 pi. The E input (Elevation) gets values from 0 to the total height.

Moreover, the two radii (r1 and r2) are fed to the same component as “Grafted”. This creates not one but two point sets. Because since all the other values are only 1-branch data lists, these grafted data trees will be processed twice for the rest of the values.

Spiral Staircase spiral, design-object

Drawing the Curves

In the second part, I use the point lists to draw the details of the spiral staircase. First, I draw an Interpolate (IntCrv) to draw the curve of the beams that will carry the steps. Then, I place Explode Tree (BANG!) and Line (Ln) components to draw the lines for the opposite matching points.

I could also do that with a Flip Matrix (Flip) component. Flip Matrix (Flip) turns a data tree upside down so that its columns are rows and rows are columns. As a result of this operation, we would obtain a data tree with many branches, each consisting of two points, each of which is a start and an endpoint. It is possible to use the List Item (Item) component to obtain these two data in each branch in the form of a separate list. Thanks to the ZUI (Zoomable User-interface) feature included in this component, it is provided to get the data list in the index +1, that is, in addition to i, that is, 0, by approaching the screen. However, I used Explode Tree (BANG!) instead here.

This gave me the front side of the steps. For the back side of them, I used the front line one step above. To do that I used the Move component to copy the lines in -z direction by the step height. In addition, I added the railing lines by connecting the points with their copies 60 units in the +z direction. Here, I do that with a Point Oriented (Pt) component. However, I could also do that with a Move component. To complete the railing curve, I added another Interpolate (IntCrv) here. In this section, it is also possible to use Polyline (PLine) instead of Interpolate (IntCrv) for a different result.

Finishing the Spiral Staircase Surfaces

Now let’s examine part three, where we model the rungs of our spiral staircase. All indices are reduced by one unit by deleting the first of the lines that are Moved down by the Cull Index (Cull i) component. If you remember Grasshopper’s principle of matching lists of data, deleting the first element of one of the lists and reducing the indices of the other elements by one would mean that in such a reciprocal match, each data (line) would match the one below the list. By experimenting a bit, you will see that the Edge Surface (EdgeSrf) component we will use needs this kind of match in order to make the step surfaces we want. You can try and see what would happen if we didn’t use the Cull Index (Cull I).

In the last step of the application, the Extrude (Extr) component is used to give some thickness to the steps installed as the surface. In addition, I added two Pipe components for making the surfaces of the railings.

Spiral Staircase grasshopper, spiral
Grasshopper definition (GH)Download

Cite this post

Yazar, T. (2023, April 17). Spiral Staircase. designcoding. Retrieved August 24, 2026, from https://www.designcoding.net/spiral-staircase/

Related Posts

Fibonacci Portraits

December 27, 2023

“In the heart of a sunflower’s embrace, its seeds weave a poetic tale—a dance of two spirals, parastichies they’re called. One unfurls gracefully from the center in the hush of clockwise whispers, while its counterpart whispers secrets in the tender breaths of counterclockwise motion. A subtle ballet unfolds, where the number of these spirals gracefully mirrors the whispers of adjacent Fibonacci numbers, composing a delicate symphony in the sun-kissed fields.” says ChatGPT if I force it to be a little…

Tetrahedral Helix and Snake Game

January 2, 2015

This is the Grasshopper definition that generates a tetrahedral helix (also called as Boerdijk-Coxeter helix) but in a funny way. This geometry is also a solution for tangent spheres. I generated the helix using Anemone components for recursion and gave it a little bit of responsiveness. I don’t know if it depends on the speed of your CPU but if it is slow enough, you’ll see the snake game of tetrahedral helix as it is driven by your input from a…

Spiral of Random

October 21, 2013

Grasshopper still surprises me. This definition draws a spiral by using a random component. It is obvious that the seed value of the random component has a relationship with an archimedean or a similar spiral. My intention was to create a definition to put a number of random points inside a circular area, not a rectangular one. While I grow the radius of a circle and get a t parameter evaluation from a random component using the same seed value…

Archimedean Spirals

December 17, 2012

In this exercise, Grasshopper draws various Archimedean spirals. It constructs polar points and maps them onto a range of angles and a number of points. The spiral’s turning speed is determined by the constant “a,” while the constant “n” gives unique names to the spirals by raising the angle variable to the power of 1/n. Wolfram Mathworld names the spiral with n = -2 as lituus, n = -1 as a hyperbolic spiral, n = 1 as a regular Archimedes…

Sunflower Spiral

December 22, 2011

Sunflower Spiral (or Phyllotaxis) can be constructed in Grasshopper according to Vogel’s model of parametric relationships. This model uses polar coordinates. The Grasshopper file is still working after more than 11 years -15.12.2022. This is such a powerful quality of Grasshopper, I think. It’s a good example of utilizing polar coordinates. It’s also fun to play with the parameters and constraints of the Sunflower Spiral. Also, there are very interesting results if you also connect the polar angle value to…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #rhino-python
    • #polyhedra
    • #parametric-surface
    • #robot
    • #tessellation
    • #boolean
    • #kuka-prc
    • #dome
    • #image-sampler
    • #tutorial
    • #terrain
    • #sandblasting
    • #stone
    • #parametric-curve
    • #animation
    • #cycloid
    • #art
    • #aperiodic
    • #tiling
    • #dodecahedron
  • 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