pyRUMP¶
######## ## ## ######## ## ## ## ## ########
## ## ## ## ## ## ## ## ### ### ## ##
## ## #### ## ## ## ## #### #### ## ##
######## ## ######## ## ## ## ### ## ########
## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ##
## ## ## ## ####### ## ## ##
$ pyrump
An AI-powered Python reimplementation of RUMP, the Rutherford backscattering
spectrometry (RBS) simulation and analysis package originally written by
L. R. Doolittle and M. O. Thompson at Cornell. pyRUMP installs via a standard
pip install and runs on Windows, macOS, and Linux.
The original RUMP is ~22k lines of C code from the late 1980s (archived for historical
reference at github.com/ikost/Rump-and-Genplot-Archive), with an
HTML manual and no active support; the distribution was previously available via
genplot.com, now abandoned and no longer resolving.
pyRUMP reproduces the simulation physics and data-analysis flow as a tested, importable
Python library, with both a classical RUMP CLI and a Python API. Plotting uses matplotlib;
fitting uses scipy/numpy.
Each of these was a deliberate choice. The original C code needed a separate makefile per
platform (makeaix, makelnx, makeosx, makesgi, makesolaris, ...); Python collapses
that into one pip install that runs unmodified on Windows, macOS, and Linux. scipy and
numpy provide compiled, vectorized numerical routines, so the least-squares fitting and
data analysis stay fast without any hand-written C. And matplotlib's backend system
replaces the dozen-plus hardware-specific printer and plotter drivers GENPLOT used to ship
(deskjet, epson, hpgl, laserjet, postdrv, tektrx, xdriver, and more) with a
single plotting API that targets any output device.
Rewriting RUMP from scratch with AI assistance is also a chance to move past a straight
port. A handful of bugs in the original C are already fixed rather than just reproduced
(kept honest by validating both against the C oracle — see RUMP quirks and
defects). New physics has been added, like Andersen screening
alongside RUMP's original L'Ecuyer correction (see the SCREENING
command). And the user workflow is gaining new commands beyond what RUMP ever had, like
automatic per-fit REPORT generation. More input
formats — reading spectra from SimNRA and NDF — are also planned.
The original RUMP ecosystem included RUMPX, an X-Window GUI popular among Windows users two decades ago. pyRUMP doesn't have a GUI counterpart yet — the author prefers CLI tools — but a Python equivalent could be added later if there's real demand for it.
Measured data (black) vs. a pyRUMP simulation (red) of a Si / Ru / Mn2.74Pt1 / Ru stack.
Where to go next¶
- Getting started — install pyRUMP and run your first simulation
- Manual — what the forward model computes, the interactive shell, CLI, and sample-description reference
- Development — the Python API, contributing, validation against the original, and porting notes