Implementation of non-trivial new deck.gl features should typically be started off with the creation of an RFC (Request for Comments) to make sure we have a complete story. It also allow the bigger team (as well as the community) to comment and contribute insights.
| RFC Status | Description |
|---|---|
| Proposed | Call for an RFC to be written |
| Draft | Work-in-progress, not ready for formal review |
| Pre-Approved | No major initial objections, draft pre-approved for prototyping |
| Review | Ready for formal review |
| Approved | Approved, ready for implementation |
| Experimental | Approved, implemented as experimental API |
| Implemented | Approved and implemented (as officially supported API) |
| Deferred | Review uncovered reasons not to proceed at this time |
| Rejected | Review uncovered reasons not to proceed |
The core developers will review RFCs (and of course, comments from the community are always welcome). Recommended review criteria are being documented in RFC Review Guidelines.
These are early ideas not yet associated with any release
| RFC | Author | Status | Description |
|---|---|---|---|
| Reviewed/Deferred | |||
| Partial Updates | @ibgreen | Deferred | Allow partial updates of vertex attributes to support high-performance editing. Deferred due to performance of complete updates being so good this was not needed. |
| Off-thread attribute generation | @pessimistress | Deferred | Generate attributes off-thread (to avoid locking the main thread). Deferred due to issues with supporting the more general use cases. dataUrl RFC has been broken out. |
| WIP/Draft | |||
| Projection Mode Improvements | @ibgreen @pessimistress | Draft | Improvements to projection system |
| Composite Layer Customization | @ibgreen | Draft | Improvements to customizing composite layers |
| Shader Module Injection | @ibgreen | Draft | |
| Effects | |||
| Effects Manager | @1chandu @ibgreen | Draft | Official support for effects (shadows, reflections, better lighting, postprocessing, framebuffer composition etc). |
| Render Layer to Texture | TBD | Proposed | Allow layers to render to texture and then use texture in subsequent layers. |
Current direction for deck.gl v6.0 is to focus on animation and TBA...
So we want to prioritize related RFCs. In particular, the topic of animation is big, and it has been broken down into a number of separete RFCs that should all move us in the right direction.
Also see luma.gl RFCs
| RFC | Author | Status | Description |
|---|---|---|---|
| Animation | |||
| PropTypes | ? | Draft | Validate e.g ranges for numeric attributes, support animation/auto-interpolation. |
| Property Animation | @ibgreen | Draft | Allow Layer props and GL parameters to accept functions in addition to values and call these on every render to update values |
| Attribute Animation | @pessimistress | Proposed | Automatically interpolate between two copies of a vertex attributes |
| Expose Layer AttributeManager | @ibgreen | Review | simplifies pregenerating attributes in apps for fast animation. |
| Ease-of-Use | |||
| dataUrl | @pessimistress & @ibgreen | Draft | Ease-of-Use Allow deck.gl layers to specify a URL and asynchronously download the resulting data |
| Finalize Multi-Viewport API | |||
| New View Class | @ibgreen | Draft | Proposed Official API for multi-view(port) support, replacing the v5.0 experimental API |
| Per-View Controllers | @ibgreen | Draft | Support one controller per view in multi-view apps |
| Unified ViewState | @ibgreen | Draft | Highly controversial proposal for an even more Unified View/Controller Architecture. Will likely be deferred. Review again after other related RFCs have been approved/implemented |
| Internals | |||
| Reduce Distribution Size | @ibgreen | Review | Hygiene Reduce size of distribution and the bundle size of apps consuming deck.gl |
| Reduce Repository Size | @ibgreen | Draft | Hygiene Reduce size of deck.gl github repository |
Possible other animation related RFCs:
- integration with event handling (enter leave triggers for animations)
These RFCs were implemented in v5.0. Also see luma.gl RFCs.
| RFC | Author | Status | Description |
|---|---|---|---|
| Animation | |||
| Auto Highlighting | @ibgreen @1chandu | Implemented | Auto highlight hovered object via picking module |
| Viewport Transitions | @1chandu | Experimental | Animate Viewport changes ("fly to" effect) through interpolation of Viewport props. (Also used in react-map-gl v3.2). |
| Viewports and Controllers | |||
| First Person Geospatial Viewport | @ibgreen | Experimental | Geospatially enable all viewports, add FirstPersonViewport for hybrid apps. |
| Multiple Viewports | @ibgreen | Experimental | Support for multiple viewports |
| General | |||
| Break out EventManager | @ibgreen | Implemented | Break out event manager module (mjolnir.js) |
| luma.gl RFCs | |||
| Break out Math Module | @ibgreen | Implemented | Break out luma.gl math module (math.gl) |
These RFCs were implemented in v4.1.
| RFC | Author | Status | Description |
|---|---|---|---|
| Picking Improvements | @shaojingli | "Direction" RFC | Outlines a number of improvements to picking |
| Event Handling | Many authors | Implemented | Attempt to define enduring event handling architecture |
These RFCs were implemented in v4.0.
| RFC | Author | Status | Description |
|---|---|---|---|
| Non-Geospatial Viewports | @ibgreen @gnavvy | Implemented | Support for non-geospatial viewports |
| Composite Layer Prop Forwarding | @shaojingli | Implemented | Conventions for prop forwarding |