From f8cdb35bf7fbc41d0bbae42d4ca937afdcf8799d Mon Sep 17 00:00:00 2001 From: Titus Kirch Date: Tue, 25 Aug 2026 17:30:26 +0200 Subject: [PATCH] feat(projects): add the hike-recap entry hike-recap turns the GPX tracks of a hiking holiday into one portrait recap video, drawing every tour onto a map that has no tile server behind it. `playwright` is left out of the technologies although it carries the capture, because the key does not exist in the app's Technology enum yet and one added only here would ship a chip the page cannot label. --- projects/TitusKirch/hike-recap/de.md | 42 +++++++++++++++++++++ projects/TitusKirch/hike-recap/en.md | 42 +++++++++++++++++++++ projects/TitusKirch/hike-recap/project.json | 6 +++ 3 files changed, 90 insertions(+) create mode 100644 projects/TitusKirch/hike-recap/de.md create mode 100644 projects/TitusKirch/hike-recap/en.md create mode 100644 projects/TitusKirch/hike-recap/project.json diff --git a/projects/TitusKirch/hike-recap/de.md b/projects/TitusKirch/hike-recap/de.md new file mode 100644 index 0000000..9c6fe75 --- /dev/null +++ b/projects/TitusKirch/hike-recap/de.md @@ -0,0 +1,42 @@ +# Hochkant-Video aus GPX-Tracks + +Macht aus den GPX-Dateien eines Wanderurlaubs ein einziges Video im Hochformat, in dem sich jede Tour nacheinander auf eine Karte zeichnet. + +## why + +Wer eine Wanderwoche zusammenfassen will, landet schnell bei einem Kartendienst. Deren kostenlose Stufen setzen entweder ein Logo ins Bild oder untersagen die Verwendung im Video, und die Nutzungsbedingungen sind das Uninteressanteste an einem Wanderfilm. + +hike-recap verzichtet deshalb ganz auf Kartenkacheln. Schummerung und Höhenlinien werden aus offenen Höhendaten gerechnet, Landbedeckung und Beschriftung kommen aus einem OpenStreetMap-Auszug, gezeichnet wird als SVG mit einer Canvas-Ebene darüber. Übrig bleibt eine kurze Zeile mit den Datenquellen, weil deren Lizenzen sie verlangen. + +## quickstart + +```bash +pnpm fetch:geodata && pnpm ingest && pnpm render +``` + +Drei Schritte auf einem Ordner voller GPX-Dateien: Geodaten holen, Touren einlesen, rendern. Am Ende steht eine MP4-Datei in 1080 × 1920. + +## features + +- **Karte ohne Kartenserver** — keine Kacheln, kein Schlüssel, kein Kontingent und kein fremdes Logo im Bild. +- **Mitwachsender Ausschnitt** — die Ansicht beginnt eng an der ersten Tour und zieht sich vor jeder weiteren so weit zurück, dass alles bereits Gezeichnete im Bild bleibt. +- **Gleichmäßiges Tempo** — die Zeichendauer richtet sich nach der Länge einer Tour, sodass der laufende Punkt überall gleich schnell bleibt. +- **Nur bestiegene Gipfel** — beschriftet wird ein Gipfel dann, wenn eine Tour ihn wirklich berührt; zugeordnet wird über die Koordinate, weil Gipfelnamen sich innerhalb einer Region wiederholen. +- **Beliebige Region und Sprache** — Zoomstufe, Höhenfarben und Streckenfarben ergeben sich aus den Daten, die Beschriftung kommt aus einer Sprachdatei. + +## scope + +hike-recap ist kein Videoschnittprogramm und kein allgemeiner Kartenrenderer. Es erzeugt genau eine Form: mehrere Touren, die sich nacheinander auf eine gemeinsame Karte zeichnen. Schnitt, Musik, Übergänge oder Titelbilder gibt es nicht. + +Auch die Kennzahlen kommen nicht aus den Tracks. Distanz, Auf- und Abstieg sowie Dauer stehen in einer Datei neben den GPX-Dateien, weil Exporte häufig gar keine Höhen mitliefern und ihre Distanzen auseinanderlaufen. + +## install + +```bash +git clone https://github.com/TitusKirch/hike-recap.git +cd hike-recap +pnpm install +pnpm exec playwright install --with-deps chromium +``` + +Vorausgesetzt werden Node ab 24, pnpm 11 und ffmpeg. Höhendaten und OpenStreetMap-Auszug liegen nicht im Repository, weil sie immer nur für eine Region gelten; der erste der drei Schritte oben baut sie aus den eigenen Tracks. diff --git a/projects/TitusKirch/hike-recap/en.md b/projects/TitusKirch/hike-recap/en.md new file mode 100644 index 0000000..16d7cb7 --- /dev/null +++ b/projects/TitusKirch/hike-recap/en.md @@ -0,0 +1,42 @@ +# Portrait recap video from GPX tracks + +Turns the GPX files of a hiking holiday into a single portrait video in which every tour draws itself onto a map, one after another. + +## why + +Anyone summarising a week of hiking reaches for a map service soon enough. Their free tiers either put a logo in the frame or forbid use in video, and the terms of service are the least interesting thing about a hiking film. + +So hike-recap uses no map tiles at all. Hillshade and contour lines are computed from public elevation data, land cover and labels come from an OpenStreetMap extract, and everything is drawn as SVG with one canvas layer on top. What remains is a short line naming the data sources, because their licences require it. + +## quickstart + +```bash +pnpm fetch:geodata && pnpm ingest && pnpm render +``` + +Three steps on a folder of GPX files: fetch the geodata, read the tours, render. What comes out is an MP4 at 1080 × 1920. + +## features + +- **A map without a map server** — no tiles, no key, no quota and no foreign logo in the frame. +- **A viewport that grows** — the view opens tight on the first tour and pulls back before each later one, just far enough that everything already drawn still fits. +- **Even pacing** — draw time follows the length of a tour, so the moving head keeps the same speed everywhere. +- **Only the summits you climbed** — a summit is labelled when a tour actually touches it, matched by coordinate, because summit names repeat within a region. +- **Any region, any language** — zoom level, elevation colours and route colours follow the data, and the wording comes from a locale file. + +## scope + +hike-recap is not a video editor and not a general map renderer. It produces exactly one shape: several tours drawing themselves onto one shared map, one after another. There is no cutting, no music, no transitions and no title cards. + +The figures do not come from the tracks either. Distance, ascent, descent and duration live in a file beside the GPX files, because exports frequently carry no elevation at all and their distances drift. + +## install + +```bash +git clone https://github.com/TitusKirch/hike-recap.git +cd hike-recap +pnpm install +pnpm exec playwright install --with-deps chromium +``` + +Node 24 or newer, pnpm 11 and ffmpeg are required. Elevation data and the OpenStreetMap extract are not in the repository, because they only ever apply to one region; the first of the three steps above builds them from your own tracks. diff --git a/projects/TitusKirch/hike-recap/project.json b/projects/TitusKirch/hike-recap/project.json new file mode 100644 index 0000000..0d77f5a --- /dev/null +++ b/projects/TitusKirch/hike-recap/project.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../schema/project.schema.json", + "kind": "oss", + "category": "cli", + "technologies": ["typescript", "vue", "vite", "vitest", "node", "pnpm"] +}