Some visualizations animate, pulse, and flash. If you're sensitive to motion or flashing, turn on Reduce motion in your system settings.

poopdeck.gl
Documentation

Spatiotemporal Tiles

A cloud-native, edge-cacheable tile format for streaming massive time-variant geospatial datasets — Rust tools to build archives from GeoParquet or a live PostGIS/DuckDB source, and TypeScript packages to animate them in deck.gl, Three.js, MapLibre, or Cesium.

Get started

From nothing to an animated, streaming map: install, point a layer at a hosted dataset, press play — then swap in your own data.

Quickstart

Introduction

What spatiotemporal tiles are: the packed container, temporal bucketing, temporal LOD, blob ordering, and the streaming render model.

Core ConceptsChoosing STT & a DeploymentChoosing a RendererStatus, Support & Compatibility+1 more

Architecture

How the Rust build tools and the TypeScript reader + render stack fit together.

System OverviewTile Payload Formatdeck.gl Integration

Format Spec

The canonical packed container: formatVersion 3 manifest + content-addressed packs + the v6 directory codec.

Packed FormatTime ModelSidecar AssetsConformance+3 more

deck.gl Layers

Every animated layer on the SpatioTemporalLayer chassis — points, paths, polygons, trips, OD flows, splats, and the server-aggregated summary tiers.

SpatioTemporalLayerAnimatedPointLayerAnimatedPathLayerAnimatedPolygonLayer+21 more

Extensions

GPU layer extensions: temporal filtering, categorical color, marching chevrons, and gaussian splats.

deck.gl ExtensionsSTTDataFilterExtensionCollisionFilterExtensionTimeFilterExtension+3 more

Playback

The animation clock, the buffering governor, the media-element facade, and the React playback hooks + controls.

SttPlayerTimeControllerPlaybackGovernor@poopdeck.gl/react

Core Reader & Kernel

The @poopdeck.gl/core reader — archive, tileset, decoder, binary features — and the framework-free render kernel.

Tile DecodingSpatioTemporalTilesetBinary FeaturesRender Kernel

Renderer Backends

Rendering STT beyond deck.gl: Three.js + TSL, MapLibre custom layers, CesiumJS — and the descriptor contract behind the capability matrix.

@poopdeck.gl/three@poopdeck.gl/maplibre@poopdeck.gl/cesiumBackendDescriptor

CLI

The five published stt-* CLIs plus the repo-only stt-generate dataset tool — every flag, with examples.

CLI Reference

Guides

End-to-end recipes: build the showcase datasets, or bring your own data from Python.

From CSV to an Animated MapData GenerationBuilding from PythonDeploying a Dataset+3 more

AI Suite

The agent surface over STT: the @poopdeck.gl/mcp server plus the poopdeck-ai Agent Skills plugin — discover, analyze, compose, build, and debug datasets from an AI assistant.

AI Suite (MCP + Skills)@poopdeck.gl/mcp
Quick start

Point an animated layer at a packed dataset's manifest.json and give it a clock:

import { AnimatedPointLayer } from '@poopdeck.gl/layers';
import { TimeController } from '@poopdeck.gl/playback';
const timeController = new TimeController({ speed: 3600 });
const layer = new AnimatedPointLayer({
id: 'earthquakes',
// A real, public archive — CORS + range requests, no server of your own.
data: 'https://tiles.poopdeck.gl/data/earthquakes/manifest.json',
timeController,
timeWindow: 30 * 24 * 3600 * 1000, // 30-day visible window
});
timeController.play();

The full quickstart runs that end to end — install, first render, playback controls — in React or vanilla JS. Building your own dataset? Start with the data-generation guide or the Python recipes.