Codes
Free and open-source software I write and maintain — tools that grew out of research and teaching and turned out to be useful enough to share. Everything here is released under a permissive licence; contributions and bug reports are welcome.
-
probimpact
Predicts aircraft crash sites from ADS-B data using Monte Carlo simulation — modelling ballistic trajectories from the last known position with drag and wind, and reporting impact as Circular Error Probable (CEP) radii for search-and-rescue.
-
GrammarPlots
A Haskell library for Grammar of Graphics–style plot construction with pgfplots / LaTeX as the rendering backend. The goal is publication-quality vector output — math-mode labels, clean typography, journal-ready figures — driven by a composable, ggplot2-flavoured API.
-
matchstick
Preliminary aircraft-sizing tools for conceptual design. Sweeps a (wing area, thrust-to-weight) grid, solves the MTOM sizing equation at each point, and produces a matching chart showing the constraint boundaries alongside MTOM contour lines — SI units throughout. Distributed as the Cabal package
aircraft-sizing(library +matchstick*executables). -
hs-acweight
A Haskell library and CLI tool for estimating aircraft component weights during conceptual design. Thirteen estimation methods are implemented, each producing estimates for 17 structural and systems weight groups in imperial units (lb), with conversion to SI (kg) on output.
-
hs-aircraft-cost
Aircraft conceptual-design cost estimation in Haskell. Computes direct, indirect, total, life-cycle and cash operating costs (DOC / IOC / TOC / LCC / COC), CASM, break-even (simple and discounted), NPV / IRR, fleet NPV, DOC escalation, a route-profitability grid, and multi-year cash flow from YAML inputs. Exports to YAML, CSV, JSON, PDF charts, SVG heatmaps, a self-contained HTML report, and an Excel workbook — with optional sensitivity analysis (parameter sweeps, tornado charts, family-of-curves, matrix sweeps, and Monte Carlo).