Logarithmic Spiral Along Truncated Cone


Post search, I have not been able to find a solution to my project. Several posts were tangential to my problem.

The goal: Create a logarithmic spiral along a truncated cone surface (identical points = matching UV).

The reason: Need a stair with a steady gradient (rise/tread) along a truncated cone

What I do not want (but have): A spiral around a truncated cone. Each revolution has the same increase in height (Z) but different lengths (see screenshot). I want the opposite; a steady increase in height resulting in varying heights for each revolution due to the longer spiral curve.

The ideal solution would allow control over riser and tread but I think I can work that out once the spiral is figured out.

I look forward to learning from you. Thanks for reading this far.

Log_Spiral_Surface_Tapered.gh (31.6 KB)

1 Like

I have a vast variety of things (C#) related with stairs … but are done via C#. Notify if you want one as demo.

In the mean time:

BTW: Given the opportunity you should always check the 2*rise+run value for a valid non fire escape stair (or the slope for a ramp).


‘riser’ and ‘tread’ sliders in blue group:

Spiral_Stair_Cone_2019Nov16a.gh (12.6 KB)

Refinements including treads and risers:

Spiral_Stair_Cone_2019Nov16b.gh (17.2 KB)


Hi Joseph,

Thank you for sharing your solution. Exactly what I need. I will be able to take it from here and once I have completed the script I will post it here.

I appreciate your quick response!

Hi Peter,

Thank you for sharing your C# script solution. I have been wanting to learn C# but will be able to work with Joseph’s solution below more autonomously. I appreciate your willingness to help!


Thank you for this script. It is excellent.

Just one thing is that unfortunately the script produces a non code-compliant stair. This is because the tread is consistent along the inner edge. A code-compliant stair requires the tread to be consistent along the midpoint of the steps.

Is it possible to adjust the script to do this?

Please see below image for clarification.

Thank you

See white group, Scale. I used a value that is approximately the center of the steps, you can determine that more accurately.

Spiral_Stair_Cone_2021Sep8a.gh (18.1 KB)


Thank you for the quick reply and revised script, however it is not achieving the desired result (unless I am using incorrectly…)

Please see me findings below. Thank you.

I used a scale factor of only 1.2, just enough so the bottom circle goes through the middle of the bottom step. I posted working code, you didn’t.

Sorry but the scale factor appears to have no influence in maintaining the same value for X & Y.

In this image I would want X & Y to be 280mm for example.

It’s been two years since I wrote this so I have to figure it out just like anyone else. Maybe the old code isn’t correct? Here’s the way I look at the tread distance in the middle of each step:

I can see the problem and probably fix it but since you aren’t posting your own code, I don’t want to play.

Unfortunately I am only a simple Architect. The first time I ever opened Grasshopper was yesterday to utilise your amazing script!

OK, that’s a good story, my heart is moved. For future reference though, please read this:

I took a different approach that looks better though could be improved. The original code was wrong all this time and nobody noticed! I’m busy with another project so may well have missed something else in this quickie fix.

Spiral_Stair_Cone_2021Sep8b.gh (22.1 KB)


Thank you for your generosity, it is much appreciated!

While your latest amazing script looks the part, it is sadly not construction worthy however :sleepy:.

There is a 1mm variable between the first and last step…

I know that a consistent thread is possible, because I have achieved it manually, but the drawing process takes forever.

Anyway, I do not request that you do my job for me! What you have achieved here is amazing regardless and thanks for taking your time to reply. Grasshopper is fascinating and perhaps I will take the time to learn.

This image looks like a cylinder, not a cone? A cylinder is WAY EASIER!

This will be the end result one day!

Already there. Only change to previous code is replacing cone with RevSrf (purple group).

Spiral_Stair_Cone_2021Sep8c.gh (21.7 KB)

This RevSrf (below) got twisted at the top due to poor profile curve, but steps work.

1 Like

Out of interest, which country are you in where “code” requires the centre “going” (i.e. the length of the tread in the centre of the step) to be the same on every step?

I thought here in the UK the “regs” say that the centre “going” must be a minimum of 190mm and the “rise” (step height) must be the same on each step and within a specific range.

If you have a staircase that turns through 90 degrees (I think its called a winder in the UK) then the centre going is different but the rise is always the same.