Skip to content

[Feature Request] Support for Start/End DateTime Ranges in Animation #3198

@odavidl-lab

Description

@odavidl-lab

Hi Kepler team 👋

First off, huge thanks for the work you've done on this project — Kepler.gl is an incredibly powerful and elegant tool for visualizing large-scale geospatial data.

I'm reaching out to request a feature enhancement that would greatly improve temporal visualizations for service availability, lifecycles, coverage, and other time-span-based data.

🚀 Feature Request

Support animation of date/time ranges using start_time and end_time fields, allowing features to persist across multiple animation frames.

🎯 Use Case

Right now, Kepler.gl’s animation system only supports a single timestamp field for filtering and playback — a feature disappears when the animation frame does not match that exact timestamp.

However, many real-world use cases involve durations, such as:

Visualizing service coverage across time (start_date → end_date)

Tracking presence or activity windows

Showing infrastructure, deployments, or availability during time intervals

🔧 Proposed Behavior

Allow users to define two fields (e.g., start_datetime and end_datetime) and enable an animation mode where:

A feature is visible in all frames where the animation time falls within the [start, end] range

Optionally allow fading or styling based on whether the current frame is start/middle/end

This could be implemented either by:

A new “Time Range” animation mode, or

A toggle in the current animation filter for duration-based presence

🧠 Workarounds Tried

I've tried expanding each row into multiple rows using GENERATE_DATE_ARRAY(start, end) in BigQuery, with one row per day — which technically works, but results in massive datasets (millions of rows), difficult to upload or render due to memory limits.

Lowering the row count makes the animation jerky or incomplete.

🙏 Summary

I’d love to see a more scalable way to visualize spanning temporal data in Kepler.gl — especially one that doesn’t require exploding the dataset to millions of duplicates.

Thanks so much for considering this!

— A fan of dots that stick around ⏳🗺️

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions