Software
From research to working software
Open-source Python packages and the web services behind my research platforms. Each entry lists the code, the stack, how to install it and the paper to cite.
01 / Open source
Stable
djura
Developer, Djura
Scientific Python toolkit for earthquake engineering, bundling the algorithms behind the Djura platform: GCIM-based record selection, hazard consistency, EDP-IM prediction, IM conversion, vulnerability modelling and storey loss functions.
pip install "djura[all]"import djura from djura.data_loader import load_data data = load_data() # ground motion metadata, cached after the first call print(djura.cite(all=True)) # papers behind each submodulePaper: Conversion of Seismic Fragility and Vulnerability Models to Alternative Intensity Measures for Regional Risk Analysis, Earthquake Spectra (2026)

Maintained
Integrated Performance-Based Seismic Design (IPBSD)
Developer & maintainer
Design framework that limits expected annual loss (EAL) while targeting a mean annual frequency of collapse (MAFC).
Paper: Integrating expected loss and collapse risk in performance-based seismic design of structures, Bulletin of Earthquake Engineering (2021)

Archived
Storey loss function generator
Developer & maintainer
Generates storey loss functions relating engineering demand parameters to decision variables. A newer version is part of djura, on PyPI and the Djura platform.
Paper: Story loss functions for seismic design and assessment: Development of tools and application, Earthquake Spectra (2021)
Archived
RC moment-resisting frame modeller
Developer & maintainer
Builds nonlinear 3D building or 2D frame models of reinforced concrete moment-resisting frames.

Stable
xgb-rhomut
Developer & maintainer
XGBoost models predicting strength ratio, ductility and period relationships, trained on nonlinear dynamic analyses of 7,292 single-degree-of-freedom systems.
pip install xgb-rhomutimport xgbrhomut model = xgbrhomut.XGBPredict(im_type="sa_avg", collapse=False) prediction = model.make_prediction( period=1, damping=0.05, hardening_ratio=0.02, ductility=4, dynamic_ductility=3.0 ) # {"median": ..., "dispersion": ...}Paper: Next-generation non-linear and collapse prediction models for short- to long-period systems via machine learning methods, Engineering Structures (2024)
Maintained
OpenSees modeller
Developer & maintainer
Python toolkit for OpenSees models, used by students in every edition of the Performance-Based Earthquake Engineering course at IUSS Pavia.

Stable
ANN-based generalised ground motion model
Collaborator, with Savvinos Aristeidou
Artificial neural network ground motion model contributed to the OpenQuake Engine for seismic hazard analysis.
Paper: Artificial neural network-based ground motion model for next-generation seismic intensity measures, Soil Dynamics and Earthquake Engineering (2024)

Stable
ANN-based correlation models
Collaborator, with Savvinos Aristeidou
Neural network correlation models for classical and next-generation intensity measures, contributed to the OpenQuake Engine.
Paper: Correlation models for nextโgeneration amplitude and cumulative intensity measures using artificial neural networks, Earthquake Spectra (2025)
02 / Web services

Stable
Built Environment Data web services
Lead software developer
Django back end and Nuxt front end for uploading, browsing and downloading experimental test data, with a documented public API. Containerised with Docker behind Nginx.
Paper: The Built Environment Data platform for experimental test data in earthquake engineering, Earthquake Engineering & Structural Dynamics (2024)

Stable
Djura platform API
Software developer
Flask API and Nuxt front end deployed on AWS, with Supabase as the database, giving programmatic access to the platformโs structural, seismic, risk and loss tools, with automatic report generation.
