stairtools provides tools to compute and visualize straight stair geometries from basic architectural constraints.
The package separates the calculation into three main steps:
- stair rise: determines the number of rises and the riser height from the total height.
- stair run: computes the horizontal development of the flight.
- stair geometry: builds the complete stepped profile.
The main function is stair_compute(), which combines these steps into
a complete stair solution.
max_run represents the maximum available horizontal space, not a
length that must be fully occupied. If this maximum theoretical value
indicated does not fit in the available space, it is reduced
accordingly. This means that a large available length does not
automatically produce a longer stair: the unused space remains
available.
The stair geometry follows the Blondel - comfort - relationship:
where
Install the development version from GitHub:
# install.packages("remotes")
remotes::install_github("clement-LVD/stairtools")library(stairtools)
s <- stair_compute(height = 840, max_run = 1040)
plot(s$geometry)The returned object contains:
- s$rise : vertical stair calculation
- s$build : horizontal stair calculation
- s$geometry : complete stair profile
- s$unused_run : remaining available horizontal space
The plot displays:
- the stepped profile,
- departure and arrival reference levels,
- cumulative horizontal dimensions,
- cumulative vertical dimensions.
Main parameters:
- blondel_target controls the preferred comfort relationship,
- min_going prevents unrealistic very small treads,
- max_going limits excessively deep treads.
All dimensions are expressed in millimetres.
Add a landing step with depth similar to the other steps:
s <- stair_compute(height = 840, max_run = 1040, last_step_is_landing = TRUE)
plot(s$geometry)Add a landing step with a custom depth :
s <- stair_compute(height = 840, max_run = 1040, end_depth = 100, last_step_is_landing = TRUE )
plot(s$geometry)

