algorithmic modeling for Rhino

Hi All,

I've been extending the script from this thread which uses surface.FrameAt() to pull the gradient and step down a given surface.

I've been trying to extend or tweak this script to create an iterative stepping down on a surface, but at a given angle (for a wheelchair ramp, for instance). I've hit a bit of a dead end on the math behind it. Is there a function which might help me? Or perhaps a pointer on the math lesson I must've slept through? Any help is appreciated.

This might help illustrate the problem.

Here's some pretty (inaccurate) work that's the closest I've gotten. I can control the angle of descent, but it's inconsistent and the math is wrong.

I'd be happy to post my gh file but the changes from the above linked file by Benjamin Golder are pretty trivial.



Views: 3331

Replies to This Discussion

I think these links build on Benjamin's original discussion.  Have a look:

Interesting. I don't know if these solutions will work for me .I'm hoping to calculate 100-200 of these paths, at least, for network analysis and galapagos is too slow. A network cost analysis might be an interesting approach. I'll look into it.

Isn't that like at each point you'll have 2 vectors with the same angle ? (We're talking about iterative approach, aren't we ?)

What I mean is that at any slope you can draw a line with desired angle relative to the "flat".

But if you're searching for places on a mesh/surface with some angle... that won't usually work as a good way to trace ramps continuously).

Here's a quick slope-finder definition with Kangaroo

It pulls a curve onto a surface, while constraining the points to only move in X and Y, and also keeps the length of the segments at some target value. Therefore the gradient is fixed.

Switchbacks emerge naturally, as the curve tries to find its place on the hill, but I also put in a variable bend strength to give some control over the frequency of the zig-zagging.


Just wanted to say-- I've been playing with this since you've posted it and it's so much fun. I had thought about a kangaroo approach but I always end up sinking a lot of time into balancing forces to get this kind of a result. Progress soon!

Just to further on the above script, since I imagine this is a topic of interest to architects, landscape or otherwise: It runs about as fast as the gif shows and, for my use, can be hooked through a data dam and a recorder to look at many different paths through a site.

Civil Engineers may have an interest as well.  I've seen some other proprietary civil software that will do this type of thing too...

The Autodesk Civil 3D forum has an interesting (manual) iterative approach using contour intervals and circles to carve out a route.

Did a little work trying to do this in grasshopper. Since I'm looking for a network , i.e., a tree structure up a slope, this might be the route I go. Piker's work is more fun to look at though [ read: professors like animations, not code]

Ah, I found the software I was thinking of for road & rail alignments!  There's a demo version that could be fun to play with if it's not too tedious to learn.

That's ingenious David. I love it.

Hi Daniel trying to operate this definition you 've shared and i am having difficulties, would you have an idea what i do wrong? i do get some error messages for kangaroo in the beginning..

Install kangaroo 1






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service