visgl / visgl/deck.gl

Pydeck: use individual widgets to represent visualization parts

Open
#4,511 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature pydeck
Dominant language
TypeScript
Stars
14.6k
Forks
2.3k
Avg merge
2d 9h
Merged PRs (30d)
42

Description

Target Use case

Splitting parts of the visualization into separate Jupyter Widget models allow for deeper integration with other widgets. For example, if LightSettings is its own widget that the core Deck widget depends on, a user could tie a Slider to the LightSettings widget to modify that part of the map on demand.

Proposed feature

Currently, there's a single Jupyter Widget, the DeckGLWidget
https://github.com/visgl/deck.gl/blob/7b3b615edb86c7a6adf9230bdcb139a58e9933d3/bindings/pydeck/pydeck/widget/widget.py#L12-L16

This means that to change a part of the map, say the ViewState, you can only update it as part of the DeckGLWidget, so there's no way to my knowledge for another widget to hook into the ViewState specifically.

I'd propose that to start, we attempt to make ViewState its own widget, since I think that would have the best combination of utility and straightforward-ness to implement. If that goes well, we could look at other classes going forward.

For discussion
  • What parts should be enabled as widgets?
  • If more classes become widgets, does that hurt interoperability outside Jupyter? Is there any existing interoperability to be aware of for regression? I assume outside Jupyter the only expected use would be Deck.to_html.
To Do List
  • Add label and assign to milestone
  • Coding
  • Doc update
  • What’s new update
  • Test

cc @ajduberstein

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with pydeck/widget/widget.py, especially DeckGLWidget, and review how ViewState is currently handled. Clarify the widget boundary and interoperability impact before implementing a standalone ViewState widget. Done means the agreed behavior is implemented with tests, documentation, and a What's New update.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter, python
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.