Project archive

Research tools, personal apps, smaller projects and every merged upstream contribution.

Selected work

Project register

Projects outside the featured selection. An archive entry does not mean a project is discontinued.

Research tools

ItemKindStackLink
brightway-benchmarks

This suite caught Brightway's LCA calculator, bw2calc 3.0.0, running its iterative solver about five times slower when the optional PyPardiso solver is missing. I reported it, and the maintainer's fix shipped in 3.1.0. It tracks speed across Brightway releases and checks each score against an independent calculation, on made-up databases shaped like ecoinvent.

Cite this software (brightway-benchmarks)

van Lierde, S. (n.d.). brightway-benchmarks [Computer software]. https://github.com/simonvanlierde/brightway-benchmarks

APABibTeXCSL-JSONJSON-LD

brightway-benchmarks CodeMetaRetrieved Source record

benchmark suitePython, Brightway, LCA, asv, DockerSourceZenodo record
sourceledger

Publishers sometimes revise a data file without saying so, and results built on it change. sourceledger, a Python library, stamps each row of a dataset with the download it came from (URL, time and SHA-256) and flags a source that has changed since. It writes Frictionless Data Packages and is on PyPI with a Zenodo DOI.

Cite this software (sourceledger)

van Lierde, S. (2026). sourceledger (Version 0.5.1) [Computer software]. https://doi.org/10.5281/zenodo.23460694

APABibTeXCSL-JSONJSON-LD

sourceledger CodeMetaRetrieved Source record

provenance libraryPython, PyPI, Frictionless, reproducible buildsSource
monitoring

A backup container once crash-looped 668 times over 19 hours while every monitor read green. So I redesigned CML's shared monitoring: now a scheduled job that stops checking in raises an alarm. Logs, traces and metrics come in through OpenTelemetry and link up in Grafana, and R9lab sends to it today.

Used by R9lab

observability stackOpenTelemetry, Grafana stack, Docker Compose, OpenTofuSource
project-templates

I start new projects from these Copier templates for Python, TypeScript, Rust, Go and Docker. Each gets tests, CI and releases that need no stored keys, and copier update pulls in later template fixes.

Cite this software (project-templates)

van Lierde, S. (n.d.). project-templates [Computer software]. https://doi.org/10.5281/zenodo.23701980

APABibTeXCSL-JSONJSON-LD

project-templates CodeMetaRetrieved Source record

project templateCopier, GitHub Actions, CodeMeta, justSourceDocumentation
codemeta-drift

CodeMeta, a standard for describing research software, disagrees with itself. This tool compares its list of fields, its examples and its 46 mappings to other formats. In the development version, every one of the 46 mappings still listed a field the standard had dropped, which I raised with the maintainers.

Cite this software (codemeta-drift)

van Lierde, S. (n.d.). codemeta-drift [Computer software]. https://doi.org/10.5281/zenodo.23774728

APABibTeXCSL-JSONJSON-LD

codemeta-drift CodeMetaRetrieved Source record

Used bycitesync
consistency checkerPython, CodeMeta, FAIRSource
citesync

Generate CITATION.cff, codemeta.json and .zenodo.json from a citation file or package metadata in the browser playground. The CLI and pre-commit hook keep them in sync using CodeMeta's crosswalks, as exported by codemeta-drift.

Cite this software (citesync)

van Lierde, S. (2026). citesync (Version 0.5.0) [Computer software]. https://doi.org/10.5281/zenodo.23779706

APABibTeXCSL-JSONJSON-LD

citesync CodeMetaRetrieved Source record

citation metadataPython, PyPI, CodeMeta, CITATION.cffSource
msc-thesis-ie

In The Hague, offices have 11% of the floor area but cause 79% of the greenhouse-gas emissions from cooling. I rebuilt the model from my MSc Industrial Ecology thesis (Leiden / TU Delft) as a Snakemake pipeline: an hourly heat balance for 59,381 buildings from the Dutch building register (BAG), followed by LCA.

Cite this software (msc-thesis-ie)

van Lierde, S. (n.d.). Cooling for Comfort, Warming the World: cooling demand and environmental impact model for The Hague [Computer software]. https://github.com/simonvanlierde/msc-thesis-ie

APABibTeXCSL-JSONJSON-LD

msc-thesis-ie CodeMetaRetrieved Source record

thesis + dashboardPython, Snakemake, LCA, GeospatialSourceThesis manuscriptZenodo dataset

Personal apps

ItemKindStackLink
6-second-scribbles

A drawing and guessing game you play live with friends in the browser, built with Vue 3 and FastAPI. In a load test, one server container with one CPU kept about 200 rooms of 6 players going, with 95% of messages arriving within 250 ms.

multiplayer gameVue 3, FastAPI, WebSocketsSourceLoad test
roadmap-sh-file-integrity-checker

My answer to the roadmap.sh file integrity checker exercise, written three times: in bash, Python and Rust. All three share one signed fingerprint format, and a test checks that they agree on random files. It has a written threat model and refuses an older signed record put back in place.

CLI toolRust, Python, bashSourceThreat model
tide

A period tracker that keeps every entry on your device and sends nothing anywhere. On the past records of 581 people in an open dataset, its next-period prediction is off by 2.0 days on average after six cycles, against 2.6 days for a fixed 28-day cycle.

web appReact, TypeScript, PWASourceBacktest
bikespot

Remembers where you parked your bike, the way a station bike park labels it (lane, rack level, rack number), with an optional photo and GPS position. It installs from the browser, works offline, keeps everything on your device, and speaks seven languages.

web appPreact, TypeScript, PWASource
scattergories

An unofficial table companion for the Scattergories party game. It draws each letter from the language's own alphabet, weighted by how often that language uses it, in nine languages. It also picks the categories and runs the timer.

web appReact, i18next, PWASource
duinlab-today

A daily page for The Hague: the day's picture, a few sourced facts, the weather, a quiz and a list of daily web games, under a sky that follows the sun's position. Checkmarks and streaks stay in your browser, and the server keeps nothing beyond Cloudflare's request logs.

web appAstro, Svelte, Cloudflare WorkersSource
vuurtoren

A FIRE and net-worth planner for Dutch households. Its tax engine covers Box 3, mortgage interest, transfer tax and fiscal partners, and every tax figure is dated and cites its source. The plan stays in a file on your machine, and a browser build runs the same Python engine client-side.

web appPython, TypeScript, WebAssemblySource

Smaller projects

ItemKindStackLink
AI4IE hub

a proposed resource hub for the AI for industrial ecology working group, with 75 literature entries and in-browser demos.

resource hubSource
io-notebook

a marimo course on environmentally extended input-output analysis that runs in the browser, with self-checks that rerun as you move the sliders.

teaching notebookSource

Merged upstream

Also merged

SALib (3 PRs); Boavizta API (1 PR); CodeMeta (1 PR); SchemaStore (2 PRs); pyOpenSci Python package guide (3 PRs); NLeSC Python template (3 PRs); latex-credits (2 PRs); reauth (1 PR); openLCA Python client (2 PRs); fastapi-mail (2 PRs); cspell-dicts (2 PRs); sentier_data_tools (1 PR)