What Are the Video Pacing Compression Exponents in Google Timeline Visualizer?

Google Timeline Visualizer uses two video pacing compression exponents defined in the Visualizer class: long_trip_compression defaults to 0.5 and short_trip_compression defaults to 0.75.

The primary purpose of these exponents is to intelligently adjust video playback speed based on trip duration. When generating timeline videos, the visualizer applies these compression exponents as power-law factors to raw trip lengths, creating smoother, more watchable time-lapse representations of movement data.

Where the Compression Exponents Are Defined

The video pacing compression exponents reside in visualizer.py, specifically within the Visualizer class constructor. These class attributes control how aggressively the visualizer compresses time for different trip categories:

Attribute Default Value Purpose
long_trip_compression 0.5 Aggressive compression for extended journeys (many hours or days)
short_trip_compression 0.75 Gentler pacing for brief trips (minutes to a few hours)

The mathematical relationship works as follows: a smaller exponent yields faster playback compression, while exponents closer to 1.0 preserve more temporal realism. The 0.5 default for long trips effectively compresses multi-hour journeys into digestible video segments, whereas 0.75 maintains more natural pacing for shorter excursions.

How Compression Exponents Affect Video Generation

When the Visualizer instance builds video URLs, it references these exponent values to construct the pacing parameter. The exponent is applied as a power-law transformation to trip duration calculations.


# visualizer.py - conceptual usage within the Visualizer class

video_url = f"https://example.com/video?...&pacing={self.long_trip_compression}"

This architectural separation between long and short trip handling allows users to fine-tune output quality without manually calculating optimal pacing for every journey type.

Customizing Compression Exponents

You can override these defaults after instantiating the Visualizer class. This flexibility proves useful when producing videos for specific audiences or presentation contexts.

Example: Adjusting Long-Trip Compression

from visualizer import Visualizer

# Create visualizer with default compression exponents

viz = Visualizer()

# Increase compression for faster playback of lengthy journeys

viz.long_trip_compression = 0.35

# Generate video URL for a 10-hour road trip

video_url = viz.build_video_url(trip_length_hours=10)
print(video_url)

# → ...&pacing=0.35

Example: Preserving Natural Pacing for Short Trips


# Initialize visualizer

viz = Visualizer()

# Reduce compression for more realistic short-trip playback

viz.short_trip_compression = 0.85

# Generate video for a 2-hour city exploration

video_url = viz.build_video_url(trip_length_hours=2)
print(video_url)

# → ...&pacing=0.85

Technical Implementation Details

The Visualizer class in visualizer.py implements this behavior through straightforward attribute assignment. The defaults—0.5 and 0.75—reflect empirical tuning for typical Google Timeline data ranges. According to the mahlernim/google-timeline-visualizer source code, no additional tracking_compression attribute appears in the primary implementation; the two-trip-type model covers standard use cases.

The exponent values are floating-point numbers passed directly into URL construction, making them trivial to adjust programmatically or expose through configuration interfaces.

Summary

  • Two compression exponents control video pacing: long_trip_compression (0.5) and short_trip_compression (0.75)
  • Both defined in visualizer.py within the Visualizer class
  • Smaller values = faster compression; values near 1.0 = more natural timing
  • Override defaults by direct attribute assignment on Visualizer instances
  • Used when constructing video URLs with pacing parameters

Frequently Asked Questions

What is the default compression exponent for long trips in Google Timeline Visualizer?

The default long trip compression exponent is 0.5. This value is set in the Visualizer class constructor in visualizer.py and produces aggressive time compression suitable for journeys spanning many hours or days.

How do I make timeline videos play faster or slower?

Adjust the relevant compression exponent: decrease long_trip_compression below 0.5 for faster playback, or increase it toward 1.0 for slower, more detailed pacing. For short trips, modify short_trip_compression using the same principle—higher values preserve more temporal detail.

Why are there separate exponents for long and short trips?

Different trip durations demand different compression strategies. Long trips need aggressive compression (0.5) to remain watchable, while short trips risk appearing unnaturally rushed with similar compression. The 0.75 default for short trips maintains perceptual comfort across varying content lengths.

Where can I find the compression exponent definitions in the source code?

Open visualizer.py and locate the Visualizer class. The compression exponents appear as instance attributes self.long_trip_compression and self.short_trip_compression, typically initialized in the __init__ method with their respective default values.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →