~/projects/ropesim

ropesim

Models lead-fall dynamics with a damped spring / RK4 integrator in Rust, exposed to Python via PyO3/Maturin. Ships a full Python API, a five-command CLI, and a PySide6 desktop GUI.

Rust + Python + C++

## What it is

ropesim simulates the dynamics of a climbing lead fall. A dynamic rope is essentially a long, heavily damped spring, and ropesim models it as one — integrating the motion numerically to reproduce peak impact forces, rope stretch, and how energy dissipates through the system during a fall, to UIAA 101 / EN 892.

## Why I built it

Climbers talk about "soft" and "hard" catches, fall factors, and impact forces, but the numbers behind those words are rarely visible. I wanted a tool that let me actually watch fall factor, belayer behaviour, and rope properties change the peak force on the system — starting from the physics rather than rules of thumb. Built because I wanted to know what really happens during a factor-2 fall.

## How it works

The core is written in Rust: a damped-spring model advanced with an RK4 integrator for stable, accurate time-stepping. That core is exposed to Python through PyO3 / Maturin, so the heavy numerical loop runs at native speed while everything on top stays in Python. Several ways to drive it sit on top of the library:

## Try it

ropesim is on PyPI, so the fastest way in is pip install ropesim. From there you can call the Python API directly, run the CLI, or launch the GUI — the README walks through all three.

← back to all projects