Choosing a renderer, a layer, and a playback API
Use this page once you have decided STT fits your data — that question, and the static-archive-versus-live-service choice, are in choosing STT and a deployment.
The backend capability matrix is generated from the backend descriptors and is authoritative for individual render features; the tables here are the product-level shortcut.
Which renderer?#
| Backend | Choose it when | Status and constraint |
|---|---|---|
@poopdeck.gl/layers | You want the primary, most heavily integrated backend, deck.gl extensions, and the widest set of styling props | Stable pre-1.0; deck.gl is pinned to 9.3.x; no native ego kind and isoLines falls back to path |
@poopdeck.gl/maplibre | STT must sit between native MapLibre or Mapbox style layers without a deck.gl dependency | Preview; renders every layer kind natively |
@poopdeck.gl/three | You need a 3D-native scene, WebGPU, react-three-fiber, LIDAR, or local metric frames | Preview; uses a WebGL2 fallback where supported |
@poopdeck.gl/cesium | You are evaluating STT on a true WGS84 Cesium globe | Private, source-only, and experimental; not an npm package commitment |
All backends use @poopdeck.gl/core and the same archive semantics. Renderer
choice does not require rebuilding the dataset unless the desired visualization
needs an optional variant or specialized payload.
Which deck.gl layer?#
| Data shape | Start with |
|---|---|
| Timestamped events or moving points | AnimatedPointLayer |
| Paths or trajectories | AnimatedPathLayer |
| Moving trails | AnimatedTripsLayer |
| A moving position along each trip | AnimatedTripHeadsLayer |
| Origin–destination pairs | AnimatedArcLayer or AnimatedLineLayer |
| Aggregated OD volumes | FlowmapLayer |
| Time-varying network flow | FlowCorridorLayer |
| Polygons, perimeters, or isobands | AnimatedPolygonLayer |
| Directional markers | AnimatedIconLayer |
| Tracked 3D objects | AnimatedBoundingBoxLayer |
| LIDAR or 3D point clouds | AnimatedPointCloudLayer |
| Oriented surfels or Gaussian splats | SplatLayer (needs --surfel-baked covariance columns) |
| Dense overview visualization | AnimatedHeatmapLayer |
| Precomputed coarse cells | H3SummaryLayer or QuadbinSummaryLayer |
The linked references cover the common choices; the
SpatioTemporalLayer reference routes to the
full deck.gl catalog. Summary layers require a summary variant built explicitly
with stt-build; they do not replace the raw feature tier.
Playback choice#
Use SttPlayer for normal applications. It owns the
clock and buffering governor and can pause when the loading runway runs out. Use
the bare TimeController only when another media,
simulation, or application clock is authoritative.
For React, @poopdeck.gl/react supplies hooks and controls
around the same player. Multiple layers and backends can share one clock.
Before adopting an API, check status, support, and compatibility.