Overview
This site documents the vis.gl-oriented Tangram monorepo: a standalone luma.gl-backed renderer and a deck.gl adapter that can compose it as a basemap. The project is an experimental custodian fork and is not the official Tangram website.
With gratitude to the Mapzen team, the original Tangram contributors, and the open mapping community whose work made this project possible. This repository preserves and extends that work with modern vis.gl integration.
- What's new — notable changes by release line.
- Upgrade guide — migration notes from legacy Tangram.
Developer guide
- Getting started — install, build, and run the examples.
- Architecture — package boundaries and render ownership.
- Bundling — measure the footprint of a small deck.gl basemap app.
- Tangram concepts — scene structure, sources, layers, styles, and porting guidance.
Contributor guide
- Development workflow — workspaces, dev-tools, and validation.
- Monorepo guide — workspaces, packages, and repository commands.
- Release workflow — versioning and publishing the workspace packages.
API reference
@vis.gl/tangram-renderer
- Package overview — renderer exports.
- Classic Tangram API — retained default and Leaflet integration APIs.
- Scene API — runtime scene configuration, queries, events, and lifetime.
- Renderer API — host-device integration.
- HostFrame API — shared geographic state and one or more host camera views.
- Styling reference — scene, source, layer, draw, and filter syntax.
@vis.gl/tangram-layers
- Package overview — deck.gl adapter exports.
- TangramLayer API — layer properties and lifecycle.
Examples and project information
- Deck example — the runnable WebGL/WebGPU integration.
Historical resources
Tangram grew out of Mapzen's open-source mapping work. These links preserve the original project context and point to the demos that inspired this fork. They are useful references when porting a style or checking how a feature behaved in the classic browser renderer.
Project history
- Mapzen Tangram product page — a visual overview of Tangram's live vector rendering, animated shaders, 3D buildings, and style gallery.
- Tangram documentation — the legacy API, scene syntax, tutorials, and deployment guidance.
- Tangram source repository — the original implementation and issue history.
- Tangram Sandbox — the
experimental gallery behind many of the old Tangram Play links. Its
standalone
tangram.htmlentrypoint loads styles from the repository rather than from a hosted editor.
The projection example is based on the sandbox's Albers experiment, which morphs the map from Web Mercator into an equal-area projection as the camera zoom changes. This port vendors a small US TopoJSON fixture so the experiment remains runnable after the original tile service is unavailable.
Original demo catalog
The Tangram demos guide organizes the historical examples by the technique they demonstrate. The standalone repositories remain the best source for their scene files and small, focused experiments:
- simple-demo — a minimal scene and map setup.
- generic-demo — a general-purpose starter application.
- highways-demo — road styling and line-width experiments.
- raster-baselayer-demo — a raster layer beneath Tangram vector data.
- filters-demo and road-filters-demo — feature filtering examples.
- explorer — interactive inspection of scene features and filters.
- lights-cameras-demo — camera, lighting, and interaction experiments.
- shaders-demo — custom shader effects and animated styling.
- terrain-demos — terrain and elevation experiments.
The Crosshatch link in the old Play URL can be recovered directly from the
Sandbox repository: crosshatch.yaml
and its texture assets. The repository's tangram.html is a small Leaflet
wrapper around the legacy Tangram browser API, so it is a good behavioral
reference but not a dependency we should load at runtime.
The demos guide also links to third-party newsroom projects, including maps created for election coverage, weather, and breaking news. Those projects are valuable design references, but their data, hosting, and application code are maintained outside this repository.
Examples in this repository
The classic playground collects the
style-gallery experience in a buildable workspace package. The deck.gl
example shows the modern package boundary and
layer lifecycle. Candidate ports from the catalog above should keep their
scene files in /examples, consume @vis.gl/tangram-renderer, and avoid
embedding service credentials in source or generated assets.
This gives us a practical local replacement for Tangram Play: port a Sandbox scene and its textures into an example package, then use the package's local renderer and a small controls panel. A full in-browser scene editor can be added later without relying on the retired Mapzen service.