Richard Zhu

Reizentraj

A local-first trajectory system for Google Timeline data: public map output, timezone-aware CSV export, and private prototype surfaces.

2025Local-firstGoogle Takeoutpublic map86,770 local coordinate rows
Reizentraj artifact
Public boundary

The public map uses coarsened route points. Raw location history, exact home/school/work traces, and private Takeout exports stay local.

Proof surface

Public proof, private boundary, and status for this work object.
ClaimPublic proofPrivate boundaryStatus
Local trajectory extractionLinked public repo shows the local extractor/explorer path and public map output.Raw Google Takeout exports and exact private traces stay local.Public repo
Hosted/native product directionPage labels hosted and native surfaces as private prototypes/product direction.Private movement tooling and precise home/school/work traces are not published.Private prototype

Local trajectory extraction

Public proof
Linked public repo shows the local extractor/explorer path and public map output.
Private boundary
Raw Google Takeout exports and exact private traces stay local.
Status
Public repo

Hosted/native product direction

Public proof
Page labels hosted and native surfaces as private prototypes/product direction.
Private boundary
Private movement tooling and precise home/school/work traces are not published.
Status
Private prototype

Product frame

Reizentraj is a local-first movement system for Google Timeline and Takeout data. It turns raw location history into maps, timelines, recap pages, and CSV exports without treating personal movement data as a disposable upload.

The linked public repo should be read narrowly: it proves the local trajectory extraction and visualization path. Hosted upload and native app work remain private prototypes and product direction, not public code proof. The hard part is pipeline discipline: parse messy Takeout formats, preserve time semantics, render large trajectories, export clean analysis rows, and keep privacy controls explicit.

15,249top-level entries in the current local Google Timeline fixture
86,770coordinate rows in both the full and compact CSV exports
35fields in the full CSV export, including raw offset and resolved timezone context
1public proof surface: local trajectory extraction and visualization

What is actually implemented

  • Local explorer: static Deck.gl output with trajectory, heatmap, scatter, timeline playback, rainbow palette, basemap switching, flight arcs, recap view, and optional globe view.
  • CSV export: full and compact exporters that preserve source timestamps, source UTC offsets, inferred IANA timezones, daylight-saving context, reverse-geocoded place fields, semantic visit metadata, and activity endpoints.
  • Private prototypes: hosted upload and native app surfaces are not linked as public code here. They remain useful product direction, but the public claim stays tied to what a reader can actually inspect.

Pipeline shape

The pipeline starts with either legacy locations exports or newer semanticSegments and rawSignals timeline exports. It normalizes the material into coordinate streams, builds trajectory data, computes travel statistics, renders the map/recap artifacts, and can flatten the same history into analysis-friendly CSV.

Reizentraj public pipeline layers and privacy purpose.
LayerImplementationWhat it protects
InputGoogle Timeline JSON or ZIP.Supports old and new Takeout shapes.
TimeOffset parsing plus timezone resolution.Keeps raw source timing separate from inferred local time.
MapDeck.gl trajectory, heatmap, scatter, flights.Makes dense movement history readable.
ExportFull and compact CSV writers.Turns visual history into reusable analysis tables.
PrivacyCoarsening and no-fly filtering before publication.Keeps data handling visible instead of implicit.
  1. Takeout JSON or ZIP
  2. parser and timeline normalizer
  3. Deck.gl explorer and recap
  4. full / compact CSV export
  5. public map after coarsening

Time and privacy discipline

The CSV exporter is careful about a subtle Takeout problem: some entries carry explicit offsets such as -05:00, while timeline path rows can be Z-based. Reizentraj stores the raw offset when present, normalizes UTC timestamps, and also resolves a per-row timezone from latitude, longitude, and timestamp when dependencies are available.

That matters because a travel map is only useful if temporal context survives export. The product does not silently collapse everything into the machine's current timezone.

Privacy is treated as part of the product surface. Public outputs are prepared from local data, coarsened before publication, and stripped of exact home/school/work traces. The public website does not ship raw Takeout files.

Product direction

The next product direction is native and hosted work: local import, durable storage, scoped sharing, account deletion, and large-map performance budgets. Those surfaces are not linked as public repository proof from this page.

Production bar

The release bar is interaction quality under large imports: stay responsive, reduce detail if needed, and never pretend a personal location archive is smaller or cleaner than it is.

Why it is credible

Reizentraj is infrastructure for personal geography: it handles the ugly parts of location history before trying to make it beautiful. The interesting public work is preserving provenance, time, privacy, and exportability across local HTML and CSV outputs.