Skip to content

Commit 5c68c4c

Browse files
committed
docs: 📝 update README with full feature list and Vitro attribution
- Add bird's eye camera mode, keyboard shortcuts, elevation profile, light/dark toggle, 5 map styles to feature list - Add Acknowledgements section crediting Vitro (Won Park, MIT), MapLibre GL JS, CARTO, OpenFreeMap, and mediabunny - Add Playwright test instructions - Link all tech stack entries to project pages
1 parent 3d5a1de commit 5c68c4c

1 file changed

Lines changed: 44 additions & 23 deletions

File tree

README.md

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,56 @@
11
# Travelback
22

3-
Animate your GPX, KML, and Google Location History into travel videos.
3+
Animate your GPX, KML, and Google Location History into cinematic travel videos — entirely in the browser.
44

55
**[Live Demo](https://open330.github.io/travelback/)**
66

77
## Features
88

9-
- **Multi-format support** — GPX, KML, Google Maps Location History (all Takeout variants)
10-
- **Interactive map** — Pan, zoom, rotate with MapLibre GL JS and CARTO vector tiles (OSM-based)
11-
- **Route animation** — Animated trail + pulsing marker following the track
12-
- **Timeline selector** — Drag to select time range from your location history
13-
- **Manual journey creator** — Click on the map to build a custom route
14-
- **5 camera modes** — Overview, Flyover, Orbit, Ground Follow, Closeup
15-
- **Scene editor** — Define cinematic scenes with different camera modes per segment
16-
- **Playback controls** — Play/pause, 6 speed levels (0.5x–16x), seekable progress
17-
- **3 map styles** — Voyager, Light, Dark
18-
- **Video export** — MP4 via WebCodecs (H.264, H.265/HEVC, AV1) with resolution presets
9+
- **Multi-format import** — GPX, KML, Google Maps Location History (all Takeout JSON variants)
10+
- **Interactive map** — Pan, zoom, rotate with MapLibre GL JS on OSM-based vector tiles
11+
- **Route animation** — Animated trail with a pulsing marker following the track
12+
- **Timeline selector** — Drag handles to trim a time range from large location histories
13+
- **Manual journey creator** — Click on the map to draw a custom route
14+
- **6 camera modes** — Overview, Flyover, Orbit, Ground Follow, Closeup, Bird's Eye
15+
- **Scene editor** — Compose cinematic sequences with per-segment camera modes and transitions
16+
- **Scene presets** — Cinematic, Simple, Dynamic, Bird's Eye one-click compositions
17+
- **Playback controls** — Play/pause, 6 speed levels (0.5×–16×), seekable progress bar
18+
- **5 map styles** — Voyager, Light, Dark (CARTO), Liberty, Bright (OpenFreeMap)
19+
- **Elevation profile** — SVG area chart synced to playback, click to seek
20+
- **Video export** — Browser-side MP4 via WebCodecs (H.264, H.265/HEVC, AV1)
1921
- **Resolution presets** — YouTube 1080p, TikTok/Reels 9:16, Instagram Square/Post, 4K
20-
- **Google Takeout guide** — Step-by-step import instructions with direct link
22+
- **Keyboard shortcuts** — Space (play/pause), ←/→ (seek), F (follow camera), E (export), Esc (close)
23+
- **Light / Dark mode** — Toggle with the theme button; animated liquid-glass UI
24+
- **Google Takeout guide** — Step-by-step import instructions with a direct link
2125

2226
## Supported Formats
2327

2428
| Format | Extension | Source |
2529
|--------|-----------|--------|
2630
| GPX | `.gpx` | GPS devices, Strava, AllTrails, etc. |
27-
| KML | `.kml` | Google Earth, Maps |
28-
| Google Location History | `.json` | Google Takeout (all variants) |
31+
| KML | `.kml` | Google Earth, Google Maps |
32+
| Google Location History | `.json` | Google Takeout (all JSON variants) |
2933

3034
## Camera Modes
3135

3236
| Mode | Description |
3337
|------|-------------|
34-
| Overview | Bird's-eye view of the full track with slow rotation |
35-
| Flyover | Follow the route at medium altitude with forward-facing bearing |
38+
| Overview | Full-track bird's-eye view with slow rotation |
39+
| Flyover | Medium-altitude follow with forward-facing bearing |
3640
| Orbit | Orbiting camera around the current position |
37-
| Ground Follow | Low-altitude chase camera with high pitch |
38-
| Closeup | Street-level view with low pitch |
41+
| Ground Follow | Low-altitude chase camera with steep pitch |
42+
| Closeup | Street-level view with shallow pitch |
43+
| Bird's Eye | High-altitude 3D flyover with look-ahead bearing and rotation drift |
3944

4045
## Tech Stack
4146

42-
- Next.js 16 (App Router, static export)
43-
- React 19, TypeScript (ESNext)
44-
- MapLibre GL JS v5
45-
- Tailwind CSS 4
46-
- mediabunny (WebCodecs-based MP4 encoding)
47+
- [Next.js](https://nextjs.org/) 16 — App Router, static export
48+
- [React](https://react.dev/) 19, TypeScript (ESNext)
49+
- [MapLibre GL JS](https://maplibre.org/) v5 — WebGL map rendering
50+
- [Tailwind CSS](https://tailwindcss.com/) 4 — Utility-first layout
51+
- [Vitro](https://github.com/circle-oo/vitro) — Liquid glass design system (adapted)
52+
- [mediabunny](https://www.npmjs.com/package/mediabunny) — WebCodecs-based MP4 encoding
53+
- [Playwright](https://playwright.dev/) — E2E testing
4754

4855
## Development
4956

@@ -52,10 +59,24 @@ npm install
5259
npm run dev
5360
```
5461

62+
### Run tests
63+
64+
```bash
65+
npx playwright install --with-deps chromium
66+
npx playwright test
67+
```
68+
5569
## Deploy
5670

5771
Automatically deployed to GitHub Pages on push to `main`.
5872

73+
## Acknowledgements
74+
75+
- **[Vitro](https://github.com/circle-oo/vitro)** by [Won Park](https://github.com/circle-oo) — The liquid glass UI design system used throughout Travelback. Vitro's glass material layers, mesh background animations, and color system were adapted into a custom Travelback theme. Licensed under MIT.
76+
- **[MapLibre GL JS](https://maplibre.org/)** — Open-source map rendering engine.
77+
- **[CARTO](https://carto.com/basemaps/)** and **[OpenFreeMap](https://openfreemap.org/)** — Vector tile basemaps built on OpenStreetMap data.
78+
- **[mediabunny](https://github.com/nicosh/mediabunny)** — Browser-side video encoding via the WebCodecs API.
79+
5980
## License
6081

6182
MIT

0 commit comments

Comments
 (0)