Software

The klue R package for latent class choice models, a reproducible carbon-credit analysis pipeline, and local-first web apps.

Statistical software from my research, and a few local-first apps built on the side.

Research software

klue

R package · GitHub · R-universe

An R package implementing the specification workflow for latent class choice models from the companion paper: clustering-based initialisation, multi-start estimation, and segment selection.

install.packages("klue", repos = "https://o-frings.r-universe.dev")

Net climate value pipeline

R pipeline · GitHub

The reproducible R pipeline behind The Net Climate Value of Carbon Credits (paper): data, calibration, and simulation code.

Side projects

All three share the same design philosophy: local-first (your data stays on the device), no account, no subscription, and no build step — each app is plain HTML, CSS, and JavaScript, installable on the iPhone home screen as a progressive web app.

Yalla

Offline-first workout tracker · App · GitHub

Unlike trackers such as Strong or Hevy, there is no server and no premium tier. Rather than following linear progression templates, it tracks training volume across twelve muscle groups (shown as a balance radar), suggests deload weeks from cumulative load, and builds plans around your venue (home, park, gym) and logged injuries. Bodyweight exercises are logged at true load — body weight plus added weight.

Clue

Knowledge and debate trainer · App · GitHub

Where Anki organises learning around a due-card queue with streaks and daily quotas, Clue deliberately has none of these: the spaced-repetition schedule (SM-2) runs invisibly, and due material simply resurfaces in a discovery feed and as faded nodes in a growing mind-map of what you know. Cards are rungs in short ladders (gist → basics → deeper → debate), and every claim links to an evidence registry with cited sources and an explicit evidence-strength label.

Mäander

Bike routing for quiet, nature-oriented rides in Germany

Where Komoot or Google Maps optimise for time and distance, Mäander (TypeScript, MapLibre, BRouter) runs a custom routing profile that treats parks and forests as islands of shelter and busy roads as water: motorways carry a 700 m noise halo, forest tracks cost a fraction of paved roads, and one slider moves a route from fastest to greenest. It also plans round-trip loops of a chosen length and compass direction, and compares several route alternatives side by side.