Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions projects/TitusKirch/hike-recap/de.md
Original file line number Diff line number Diff line change
@@ -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.
42 changes: 42 additions & 0 deletions projects/TitusKirch/hike-recap/en.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 6 additions & 0 deletions projects/TitusKirch/hike-recap/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "../../../schema/project.schema.json",
"kind": "oss",
"category": "cli",
"technologies": ["typescript", "vue", "vite", "vitest", "node", "pnpm"]
}