Dragonhound Labs

Theo Menne · Remote · Australia

Open-source Python tooling for training-data pipelines, provenance and geospatial ML.

Dragonhound Labs is where I publish the Argus suite: 9 packages on PyPI that take images from public-domain and CC0 sources through curation, captioning, LoRA training configs and evaluation. Each package works on its own; they share one taxonomy, wire schema and backend contract in argus-cortex.

The Argus suite

A training-data pipeline, one package per stage, over a shared foundation.

Pipeline

argus-cortex

Shared foundation: taxonomy, versioned wire-schema tooling, and the local/remote AI backend contract.

argus-quarry

Provenance-first acquisition of public-domain / CC0 portrait images: the input stage of the suite.

argus-curator

Dataset curation for LoRA training: quality filtering, embedding-based diversity clustering, and subset selection.

argus-lens

Structured image captioning for training and generation.

argus-forge

Turns curated dataset exports into ready-to-run LoRA training configs (kohya_ss / OneTrainer / diffusers).

argus-proof

Post-training LoRA evaluation: generate samples from a trained LoRA and score them against the dataset it was trained from.

argus-atlas

Bakes georeferenced fantasy-map overlay tiles from real terrain: GDAL controls from a DEM, restyled through a cartography LoRA, stamped back to GeoTIFF and PMTiles.

Other packages

argus-darkroom

Guarded image generation: prompts and outputs are checked before anything is released.

argus-mint

Provenance tokens for game assets: reviewed-template renders, IPFS pinning, ERC-721 cards, soulbound deeds and on-chain Merkle anchors (Base).

argus-survey

Point-cloud deliverables for land surveyors (QA, ground, DTM/DSM, contours, volumes, ASPRS accuracy) with every datum and command recorded. Not yet on PyPI.

argus-mask

A talking face for the suite: audio in, facial animation frames out, rendered in a browser on any screen on the LAN. Not yet on PyPI.

Live demos

Each demo exists to show one package doing one thing. Demos run on recorded output, so no model or GPU runs while you browse.

Lightbox gallery filtered by a lighting term from argus-lens captions

Lightbox for argus-lens

What it proves. argus-lens captions are structured data, not one flat string. The gallery filters by lens's category buckets (wardrobe, lighting, setting), and shows how each caption was assembled from the raw model output. Fully static: a bake step re-runs lens's caption assembly on CPU, no model or server at view time.

Argus Studio showing caption variants for an image

Studio for the whole suite

What it proves. The packages run together as one Docker Compose stack from published GHCR images: curate, caption and export LoRA training datasets from a single web UI, with each parameter explained inline.

Atlas Realms: Cook Strait, New Zealand, painted as a fantasy map over a real basemap

Realms for argus-atlas

What it proves. Cook Strait, New Zealand, painted as a fantasy map by argus-atlas and laid over a real basemap. Fade the painted layer and the coastlines and ridges stay put.

Engineering practice

The same release and CI rules across every repo, kept in code rather than in a checklist.

Shared CI

Reusable GitHub Actions workflows: one definition of the uv + ruff + pytest + build pipeline. Eight of the nine published packages call it, so lint and test rules don't drift between repos.

Package template

A Copier template for new suite packages: uv tooling, hatch-vcs versions from git tags, src/ layout, typed, wired to argus-ci. Running copier update pushes convention changes into existing repos.

PyPI trusted publishing

Releases go to PyPI over OIDC trusted publishing on version tags, with no long-lived API tokens. All nine published packages release this way.

Infrastructure as code

Terraform (HCP state) + Cloudflare DNS/R2 for the public demo stack, with a public/private host split and no public data ports.

Tutorials & docs

From my time at Komodo: video walkthroughs, API documentation, and a Python client.

All videos on YouTube (@dragonhound7227)

pykomodefi

Python client for the Komodo DeFi Framework API, on PyPI (0.2.6).

About

Theo Menne. GIS work first, then support, QA and quality leadership at Komodo Platform, now open-source Python libraries. Remote since 2018.

  1. 2010 – 2019
    Geospatial Officer, Dept. of Biodiversity & Conservation (AU)

    Python and GDAL/OGR geoprocessing over enterprise geodatabases. Designed and ran QGIS training for postgraduate scientists and staff (2012–2019).

  2. 2018 – 2022
    Support Agent, then QA Lead, Komodo Platform

    Support Agent (2018–19), then QA Lead (2019–22).

  3. 2023 – 2026
    Chief Quality Officer, Komodo Platform

    Owned the public API docs and CI across Python, Rust, Go, C++ and MDX repos. Reviewed changes and shipped fixes on the public wallet repos. Built async FastAPI services (WebSocket, CRUD, proxy APIs). Published pykomodefi.

  4. 2026 –
    Founder, Dragonhound Labs

    Publishing the Argus suite: nine packages on PyPI on a shared contract.