Skip to content

Repository files navigation

logpix

logpix is a cross-platform desktop app for viewing photos tied to their locations on a map — a travel log with pictures.

Browse a trip in both directions:

  • From the map — pick a photo marker and see that photo in the viewer.
  • From the photos — flip through photos and watch the current one highlighted on the map.

Features

  • Open a directory (with arbitrarily nested subdirectories) and discover all JPEG photos in it — scanning streams results progressively, 20k-photo trees stay smooth.
  • EXIF everywhere: capture date/time and GPS coordinates are read from EXIF (in parallel, in the Rust core). Times are treated as naive wall-clock values — no timezone surprises.
  • Photo window with a virtualized thumbnail grid and a single-photo view (zoom toward cursor, pan, fit ↔ 100%, keyboard navigation).
  • Map window (MapLibre GL + OpenFreeMap vector tiles) with clustered photo markers, current-photo highlight with soft auto-pan, optional thumbnails on markers, and a fit-to-photos action.
  • Split layout (photos + map side by side, draggable divider, horizontal/vertical, either pane first) or single-window mode with Tab switching.
  • Date filter over the whole library: one day at a time by default (starting with the earliest), paging only across days that contain photos, or any custom date-time range.
  • Connecting line through the photos in shooting order.
  • Location estimation (optional): photos without GPS get an approximate position interpolated between geotagged neighbors by capture time, shown with hollow markers and a ~ badge.
  • GPX / KML / KMZ overlays: waypoints, tracks and routes with their colors and icons, a hierarchy panel with tri-state visibility, zoom-to and per-file removal.
  • Map label languages: local names, latin names, or latin + local — switched live.
  • Caches you control: per-directory metadata cache (a warm re-open of a 20k tree is near-instant) and a thumbnail cache, each with on/off switches, usage info and clear actions.

Download

Prebuilt packages for Windows (.msi, .exe), macOS (.dmg for Apple Silicon and Intel) and Linux (.AppImage, .deb) are published on the Releases page.

Unsigned builds

The v1 artifacts are not code-signed (signing certificates are a paid, post-v1 task), so the OS will warn on first launch:

  • macOS: right-click the app → OpenOpen (or System Settings → Privacy & Security → Open Anyway).
  • Windows: SmartScreen → More infoRun anyway.

Building from source

Requirements:

  • Node.js 24+ (native TypeScript support is used — no compile step for scripts and tests)
  • Rust (stable toolchain)
  • On Linux: WebKitGTK and friends — see the Tauri prerequisites
npm ci
npm run tauri dev     # run the app in development mode
npm run tauri build   # produce installers/bundles for your OS

Development checks:

node --run typecheck   # TypeScript
node --run test        # frontend unit tests (Node.js native test runner)
cargo test             # Rust core tests (run inside src-tauri/)

Architecture

The Rust core owns everything that touches the filesystem or heavy binary data (scanning, EXIF, thumbnails, caches); the SolidJS frontend owns all rendering and product logic, with the non-trivial parts in pure, unit-tested functions. Photos reach the webview through Tauri's asset protocol, never through IPC. See docs/ARCHITECTURE.md for the full picture.

License

MIT

About

Cross-platform desktop app for viewing photos tied to their locations on a map

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages