In this tutorial, we will learn how to fix the incomplete ends of the handrail from the previous tutorial. First, the handrail will be moved back along its path to fix the lower end and then the length of curve will be increased to fix the upper end. Blender version **3.0** is used.

This is the seventh part of the Procedural Spiral Staircase tutorial series. In the previous tutorial, the handrail was added by extruding the profile curve.

We can see the ends of the handrail are not properly aligned, and this is the case on both sides.

To fix this:

- Handrail should be moved back along the curve to fix the lower end.
- The length of the handrail should be increased to fix the upper end.

Same Spiral Curve node is used for handrail and baluster. It is necessary to make a separate spiral curve node for the handrail.

Add another Spiral Curve node for the handrail.

## Move handrail backwards along the curve

To move the handrail lower along the curve, the handrail should be translated and rotated simultaneously on the Z axis.

Eariler, Transform node was added to translate the handrail on Z axis, we use that node to translate and rotate the curve on Z axis using Combine XYZ.

### Add Combine XYZ for Rotation and Translation

By using `Combine XYZ`

, we can change each axis separately.

Click `Add > Vector > Combine XYZ`

for Translation and Rotation.

### Add Height and convert Degrees to Radians

We need the elevation that was added to handrail, for this we add a `Math`

node with `Add`

operation, input the elevation for Z axis in one of the inputs.

For the Rotation, add a `Math`

node, and change the `Operation`

to To `Radian`

s. Degrees will be entered and will be converted to radians by the node.

For rotation, in the Combine XYZ node, it is neceassry for the input to be in radians not in degrees.

### Add Value node

We need a value, which will move the handrail backward along the curve. Our setup is not complete, add another `Math`

node, change the `Operation`

to `Multiply`

, add a `Value`

node by clicking `Add > Input > Value`

. Connect it to `To Radians`

for Rotation, and the `Multiply Math`

node we just added for Translation.

### Formula for moving the curve along its path

If value of Value of node is changed, the handrail does rotate and translate but not along its natural curve path. This can be fixed using a mathematics.

To understand this, suppose, there is curve that has a single rotation, with some height. When it rotates 360 degree, it should also translate the length of its height. For this, the value of rotation should be multiplied with the height and divided by 360 degrees.

In case of spiral node, there is Height and Rotations, so their rotation should be used. So the formula becomes as follows:

Negative 360 degree is used for correct direction.

First of all, add a `Math`

node, change the `Operation`

to `Divide`

, change the value of denominator to `-360`

as in formula and connect it to Multiply `Math`

node.

For the ratio of Height and Rotations, add another `Math`

Divide node, drag the inputs Rotations and Height of the Spiral curve to the Math node, with `Height`

as the Numerator and `Rotations`

as the Denominator, connect that node to the other Math Divide node.

The formula is now complete.

Change the value of Value node, and handrail will slide along its curve path, without any offset.

This will fix the issue for lower end.

### Increase length of the handrail

But, doing this, will leave a gap on the upper side of the handrail, because, we have just moved the handrail, the upper side can be fixed by increasing the length of the curve.

### Adding Math nodes to increase the length

We use the same method, we used in the earlier tutorial, we add separate `Math`

Divide and Multiply nodes for the handrail.

Disconnect the Rotations and Height from the Group Input node, as they are the values for the stairs.

Add Divide and Multiply nodes just like in the earlier tutorial for the Height and Rotation.

For now, everything will be exactly like before, but for increaseing the length of the curve, we add another `Math`

node, and change the `Operation`

to `Add`

.

The node should be connected to the Divde node.

The length of the handrail will now have increased.

This is how the Geometry Nodes setup looks like now.

In the next tutorial, these geometry nodes will be duplicated to add another set of baluster and handrail: Adding another set of Baluster and handrail in the Geometry Node.

All the parts of the tutorial series in order:

- Instancing the objects using Instance on Points.
- Aligning the instance objects towards the center.
- Adding Count Group Input to control the number of Control points and Instance Objects.
- Adding Width as a Group Input.
- Adding Baluster or staircase support.
- Extrude a profile curve in Geometry Nodes.
- Move the curve along its path for adjusting and increasing the length of the curve.
- Adding another set of Baluster and handrail in the Geometry Node.