freshcrate
Home > Frameworks > pydeck

pydeck

Widget for deck.gl maps

Description

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/uber/deck.gl/binder) [![Documentation Status](https://readthedocs.org/projects/deckgl/badge/?version=latest)](https://pydeck.gl) [![Anaconda-Server Badge](https://anaconda.org/conda-forge/pydeck/badges/version.svg)](https://anaconda.org/conda-forge/pydeck) [![Downloads](https://pepy.tech/badge/pydeck/week)](https://pepy.tech/project/pydeck/week) # pydeck: Large-scale interactive data visualization in Python [![demo](https://user-images.githubusercontent.com/2204757/58838976-1538f400-8615-11e9-84f6-a2fe42bb300b.gif)](https://pydeck.gl/) The pydeck library is a set of Python bindings for making spatial visualizations with [deck.gl](https://deck.gl), optimized for a Jupyter environment. To get started, __[see the documentation](https://pydeck.gl/)__. __[To install pydeck, see the instructions here](https://pydeck.gl/en/latest/installation.html)__. For __interactive demos__, click the binder logo below: [![Binder](https://mybinder.org/static/logo.svg?v=f9f0d927b67cc9dc99d788c822ca21c0)](https://mybinder.org/v2/gh/uber/deck.gl/binder) ## Sample code The following code renders a visualization similar to the one above in a Jupyter notebook: ```python import pydeck as pdk # 2014 locations of car accidents in the UK UK_ACCIDENTS_DATA = ('https://raw.githubusercontent.com/uber-common/' 'deck.gl-data/master/examples/3d-heatmap/heatmap-data.csv') # Define a layer to display on a map layer = pdk.Layer( 'HexagonLayer', UK_ACCIDENTS_DATA, get_position=['lng', 'lat'], auto_highlight=True, elevation_scale=50, pickable=True, elevation_range=[0, 3000], extruded=True, coverage=1) # Set the viewport location view_state = pdk.ViewState( longitude=-1.415, latitude=52.2323, zoom=6, min_zoom=5, max_zoom=15, pitch=40.5, bearing=-27.36) # Render r = pdk.Deck(layers=[layer], initial_view_state=view_state) r.to_html('demo.html') ``` If you're developing outside a Jupyter environment, you can run: ```python r.to_html('demo.html', notebook_display=False) ``` __[See the gallery for more examples.](https://pydeck.gl/#gallery)__ ### Issues and contributing If you encounter an issue, file it in the [deck.gl issues page](https://github.com/visgl/deck.gl/issues/new?assignees=&labels=question&template=question.md&title=) and include your browser's console output, if any. If you'd like to contribute to pydeck, please follow the [deck.gl contribution guidelines](https://github.com/visgl/deck.gl/blob/master/CONTRIBUTING.md) and the [pydeck development installation instructions](https://pydeck.gl/en/latest/contributing.html).

Release History

VersionChangesUrgencyDate
0.9.2Imported from PyPI (0.9.2)Low4/21/2026
v9.3.1- feat(widgets): ScrollbarWidget falls back to controller.maxBounds (#10236) - fix(widgets): ThemeWidget does not apply theme variables on initial add (#10238) - fix(widgets): CoordinateGeocoder edge case handling (#10235) - feat(widgets) unify viewId handling (#10234) - fix(widgets): SplitterWidget types (#10233)High4/17/2026
v9.3.0deck.gl v9.3 features big improvements to widgets, controllers and WebGPU. Find out more on [What's New](https://deck.gl/docs/whats-new) and [Upgrade Guide](https://deck.gl/docs/upgrade-guide).Medium4/13/2026
v9.3.0-beta.2- fix(widgets): ZoomWidget works with OrthographicView (#10202) - fix(aggregation-layers) Fix nvidia compilation error (#10191) - fix(widgets): Move @floating-ui/dom to dependencies (#10189)Medium4/11/2026
v9.3.0-beta.1- feat(extensions): Add dashed stroke support for ScatterplotLayer and TextBackgroundLayer (#9976) - chore(test-utils): Separate tape tests from vitest and clean up CI (#10061) - fix(geo-layers): Ensure zoomOffset is correctly part of the round/ceil Z calculation (#9807) - feat(widgets): Add controlled mode and state callbacks (#9973) - chore(mapbox): Remove MapboxLayer and _renderLayersInGroups (#10163) - fix(mapbox): automatically inject 'mapbox' view in overlaid mode for multi-view consistencMedium4/7/2026
v9.3.0-alpha.6- feat(TileLayer): Add visibleMinZoom & visibleMaxZoom props (#10091) - fix(mapbox): onBefore|AfterRender fires without layers (#10166) - fix(mapbox): Prevent crash when deck uninitialized (#10167) - feat(main): export all widgets from deck.gl main module (#10160) - chore: Bump to luma@9.3.1 & loaders@4.4.1 (#10158) - fix(layers): Texture handling in WebGPU (#10157) - chore: Bump luma.gl@alpha.11 (#10141) - chore(json): Typing improvements (#9641) - feat(core): simplify layer plumbing for WebGPUMedium4/2/2026
v9.3.0-alpha.5Release v9.3.0-alpha.5Medium3/31/2026
v9.3.0-alpha.3- feat(core): TerrainController (#10134)Medium3/27/2026
v9.3.0-alpha.2- chore: upgrade Node.js from 20 to 22 (#10051) - chore(core): Use non-deprecated props for lighting module (#10121) - feat(layers): add clipping to TextLayer (#10118) - feat(core): FirstPersonController supports maxBounds (#10115) - feat(core): OrthographicView supports maxBounds (#10108) - feat(core): OrbitController supports maxBounds (#10116) - feat(core): GlobeView supports maxBounds (#10111) - feat(core): more intuitive OrbitController (#10117) - feat(core): controller normalizes viewport Medium3/26/2026
v9.3.0-alpha.1- fix(Tile3DLayer): Pass through tileset loadOptions to Tileset3D (#10079) - feat(Tile3DLayer): mark rendered tiles as drawn (#10058) - chore: bump to luma.gl@9.3 (#10034) - chore: bump to loaders.gl@4.4 (#9972) - feat(widgets): migrate TimelineWidget to RangeInput (#10071) - feat(widgets): Add ScrollbarWidget (#10068) - fix(TerrainExtension): Handle pick events in TerrainExtension & draped layers (#10037) - fix(widgets): Respect min/maxZoom (#10033) - Upgrade Node.js from 18 to 20 across build,Low3/10/2026
v9.2.11- chore: Pin to luma 9.2 & loaders 4.3 (#10062)Low3/5/2026
v9.2.10- fix(core): OrbitController keyboard navigation with padding (#10039) - fix(ColumnLayer): radiusUnits pixels (#10035) - fix(jupyter-widget): bundle error (#10032) - fix(google-maps): Robust DOM positioning when interleaved: false (#9992)Low2/27/2026
v9.2.9- chore: bump probe.gl (#10025) - fix(widgets): GeocoderWidget dark theme colors (#9899) (#9974) - feat(extensions): PathStyleExtension save 1 instance vertex when highPrecisionDash is not used (#10008) - feat(layers): Stricter layer prop types (#10024)Low2/21/2026
v9.2.8- feat(core): Add layout expressions for view positions (#9842)Low2/17/2026
v9.2.7- fix(HeatmapLayer): Correct blending in interleaved mode (#9993) - fix(pydeck): Support pandas 3.x compatibility without breaking pandas 2.x (#9988) - fix(core): Enable shader/pipeline caching for attached WebGL devices (#9971) - fix(widgets): StatsWidget (#9984) - feat(core): Add Deck#getView() method (#9948) - feat(core): Add pickable: '3d' option to all Layers (#9937) - chore(deps): bump dependencies from multiple Dependabot PRs (#9956) - Bump to loaders.gl@4.3 (#9965) - chore(mapbox): RemovLow2/12/2026
v9.2.6- fix(IconManager) Fix icon frame x/y for auto packed icons (#9928) - fix(mapbox): MapboxOverlay: render deck layers in batches (#9939) - chore: bump luma to 9.2.6 (#9940) - feat(core): Improved GlobeController (#9913) - pydeck: Clarify how to pass full controller options (#9897) - fix(core): Reset interaction state for smooth=false (#9908) - fix(IconLayer): don't generateMipmaps before data loaded (#9909) - fix(carto): More defensive code in RasterLayer (#9911) - feat(core): Add `container` to Low1/16/2026
v9.2.5- chore: bump luma 9.2.4 (#9907) - fix(core): Enable shader and pipeline caching by default (#9863) - fix(carto): PointLabelLayer used with formatTiles=mvt (#9906)Low12/9/2025
v9.2.4- pydeck: support Maplibre including Globe projection (#9896) - fix(carto): autoLabels support with formatTiles=mvt (#9900) - pydeck: Update to deck@9.2 (#9895) - fix(core): getTooltip disappears when autoHighlight: true and interleaved: true in MapboxOverlay (deck.gl) (#9889)Low12/8/2025
v9.2.3- Fix DPR changes in interleaved mode by leveraging onResize callback (#9887) - fix(core): Correctly resize drawing buffer on resize (#9886) - Refactor GeohashLayerProps to extend GeoCellLayerProps (#9875) - fix(carto): VectorTileLayer guard against null layers (#9885) - Fix: Make sizeBasis optional in IconLayer type definition (#9883) - Fix interleaved overlay default parameters (#9871) - fix: Remove widget src import (#9833)Low12/3/2025
v9.2.2- chore: tighten peerDependency range to patch (#9821) - Fix type hint of useDevicePixels to allow number input (#9826)Low10/16/2025
v9.2.1- Avoid 9.2 breaking change in Widget base class (#9814) - Simplify Widget class constructor (#9815)Low10/8/2025
v9.2.0The v9.2 release comes with preview of WebGPU support, and a trove of new widgets. See https://deck.gl/docs/whats-new for a full list.Low10/7/2025
v9.2.0-beta.4- Invoke transform function for constant attributes (#9741) - Pass `vertexValid` to SolidPolygonLayer when using binary GeoJSON (#9805) - Add IconLayer sizeBasis prop (#9736) - fix: Maplibre interleaved resize handling (#9803) - Fix potential undefined deck in FPS calculation (#9800)Low10/6/2025
v9.1.15- Fix orthographic scroll zoom transitions (#9769) (#9799)Low10/2/2025
v9.2.0-beta.3- fix(extensions): correctly activate picking module in terrain picking pass (#9768) - fix(widgets): widget bug bash (#9797) - chore(widgets) audit props and docs (#9796) - fix(maplibre): Update default view once projection is known (#9794)Low9/26/2025
v9.2.0-beta.2- chore: bump luma to 9.2.0 (#9792) - fix: HeatmapLayer working with binary data (#9787) - fix: picking on non-geospatial tile layer with modelMatrix (#9703) - CARTO: Support h3 in ClusterTileLayer (#9755)Low9/25/2025
v9.2.0-beta.1Release v9.2.0-beta.1Low9/19/2025
v9.2.0-alpha.3- fix(core): orthographic scroll zoom transitions (#9769) - fix(widgets): Minor widget fixes (#9758) - CARTO: Support h3 in HeatmapTileLayer (#9753) - feat(widgets): Support custom widgets in pydeck via custom_libraries (#9745) - feat(core): Add async DeckPicker methods (#9732) - feat(webgpu): Enable transparency for WebGPU and ported example layers (#9730) - fix(webgpu): Emulate constant attributes as buffers and trigger update on constant change (#9726) - fix(layers): correctly identify elevatLow9/16/2025
v9.1.14- chore: Lock luma.gl to v9.1 (#9705)Low7/28/2025
v9.1.13- fix(google): Do not force canvas resize (#9695) - fix(CARTO): H3 tile bounding box includes edge children (#9693) - fix: onClick callback does not handle dblclick (#9629) - fix(carto): Assign default aggregationExp in fetchMap() (#9668) - fix: filter layers in mapbox overlay, interleaved mode (#9603)Low7/8/2025
v9.2.0-alpha.2- CARTO: refactor to remove fetchmap code (#9619)Low6/4/2025
v9.2.0-alpha.1- feat(widgets): GeocoderWidget and experimental Geocoders (#9610) - Feature: Add A5Layer (#9626) - feat(widgets) Add StatsWidget (#9623) - feat(widgets): New GimbalWidget (#9614) - feat(widgets): New ContextMenuWidget (#9616) - feat(widgets): FpsWidget (#9607) - feat(widget): Add geocoder support to GeolocateWidget (#9608) - [feat] ViewSelectorWidget (#9591) - chore(widgets): Join Widget and WidgetImpl, clean up widgets (#9576) - feat(core): Add View.clone() method (#9588) - feat(widgets): miniLow5/27/2025
v9.1.12- fix: do not touch stencil in _renderPass() (#9630) - chore: Reduce lint errors (#9550) - chore(layers): Change warning to debug message (#9621)Low5/14/2025
v9.1.11- CARTO: Make autoLabels prop optional (#9593)Low4/18/2025
v9.1.10- CARTO: Automatically add labels to line & polygon layers (#9449) - chore: More lint fixes (#9582) - Feat: Add backgroundBorderRadius to TextLayer (#9447) - CARTO: Do not mutate passed in loadOptions objects (#9580)Low4/17/2025
v9.1.9- CARTO: Fallback to hidden tiles for maxDensity (#9578) - fix(carto): RasterTileLayer to support external options (#9561)Low4/14/2025
v9.1.8- fix(mapbox): interleaving by reverting #9483 (#9542)Low3/24/2025
v9.1.7- Append `.js` to WebGPU shaders for script builds (#9537) - fix(carto): Fix tree-shaking of CartoRasterTileLoader (#9535)Low3/21/2025
v9.1.6- CARTO: Default to PointLabelLayer in VectorTileLayer (#9524) - chore: Bump to luma.gl@9.1.5 (WebGPU fixes) (#9525) - feat: line layer and project module port to WGSL, test app for WebGPU line (#9509) - fix(chore): Disable constant attributes under WebGPU (#9506) - chore: WebGPU plumbing (#9502)Low3/19/2025
v9.1.5- DataFilterExtension: Make filterCategories prop optional (#9495) - CARTO: RasterLayer improve shader precision at high zooms (#9518) - fix(scatterplot-layer): use numeric uniform for "filled" to avoid GPU driver bug (#9514) - chore: WebGPU plumbing (#9480) - chore: WebGPU plumbing #1 (#9476) - feat(widgets): new ResetViewWidget (#9478) - feat(widgets): New ScreenshotWidget (#9477)Low3/12/2025
v9.1.4- feat(mapbox): support Mapbox v3 Standard style slot (#9468) - fix(mapbox): relax MapboxOverlay type (#9467) - fix(widgets): ZoomWidget: Prevent crash when used with OrthographicView (#9459)Low2/27/2025
v9.1.3- CARTO: HeatmapTileLayer fix palette updating (#9453) - pydeck: Set default map style if not provided (#9419)Low2/20/2025
v9.1.2- pydeck: Add show_error flag to display error in cell output (#9430) - CARTO: Add worker for cartoPropertiesTile loader (#9429)Low2/17/2025
v9.1.1- fix: Add missing dependencies (#9422) - fix(core): React StrictMode crash (#9421) - fix(extensions): CollisionFilterEffect: Explicitly pass isPicking to preRender (#9417)Low2/11/2025
v9.0.41- CollisionFilterEffect: Explicitly pass isPicking to preRender (#9417)Low2/11/2025
v9.1.0v9.1 brings integration with MapLibre globe projection, React widgets, restored and improved aggregation layers, and under-the-hood rewrites to get ready for WebGPU support. Visit [What's New](https://github.com/visgl/deck.gl/blob/9.1-release/docs/whats-new.md#deckgl-v91) to learn about the new features. Reference the [Upgrade Guide](https://github.com/visgl/deck.gl/blob/9.1-release/docs/upgrade-guide.md#upgrading-to-v91) to upgrade your application from v9.0.Low1/21/2025
v9.0.40- chore: pin ubuntu CI version to fix release workflow (#9351)Low1/15/2025
v9.0.39- CARTO: Support gzip compression in RasterLayer (#9352) - fix(widgets): widget style prop keys should accept camelCase css properties and dashed css variables (#8991)Low1/15/2025
v9.1.0-beta.3- CARTO: Support gzip compression in RasterLayer (#9352) - DataFilterExtension category filtering uint32 attribute (#9350)Low1/15/2025
v9.0.38- CARTO: Fix seams between tiles in RasterTileLayer (#9292)Low12/11/2024
v9.0.37- fix(mapbox) Remove type dependency on mapbox-gl (#9279)Low12/6/2024

Dependencies & License Audit

Loading dependencies...

Similar Packages

geopyPython Geocoding Toolbox2.4.1
fionaFiona reads and writes spatial data files1.10.1
llama-indexInterface between LLMs and your data0.14.21
pre-commitA framework for managing and maintaining multi-language pre-commit hooks.v4.6.0
azure-core-tracing-opentelemetryMicrosoft Azure Azure Core OpenTelemetry plugin Library for Pythonazure-template_0.1.0b6187637