Kangaroo: Limit slope of curve in BouncySolver

Hello rhino community,

I am working on pavilion that consists of an intertangled staircase.
In order to make this pavilion as parametric as possible I have decided to construct everything in Grasshopper.

I have boiled down the solution to my problem to two grasshopper scripts.

  1. A script that assembles a staircase from any given curve.

  2. A script that generates an intertangled curve to use as the base curve for the staircase script

I have managed to write a script that generates a staircase from any given curve as shown from the picture below. So script number 1 is basically fully working.

As for script to 2 I am able to generate an intertangled curve (that does not intersect itself) within a bounding box.
The only problem I am having is that I have no way of controlling the slope of the curve. This leads to many sections of the curve being too steep for a walkable staircase to be constructed.

The curve in the bounding box is made out of a number of points. A want to be able to limit the slope between two consecutive points within a given range so that the generated staircase is suitable for walking. Here comes an illustration of what i would like to Accomplish.

Here his how my script 2 looks right now.

I want to be able to input this into my BouncySolver so that a can tinker with the parameters until I am satisfied with the generated curve.

The range I would like to insert to The BouncySolver is -2/3 to 2/3.

It is important that the curve does not come too close to itself so that one does not hit ones head when walking in the staircase. I have solved this with the Collider component.

Grasshopper File Script 2:
SCRIPT_2_SLOPE_OF_CURVE.gh (15.5 KB)

Any help would be much appreciated