Skip to content

Latest commit

 

History

History
218 lines (146 loc) · 14.2 KB

README.md

File metadata and controls

218 lines (146 loc) · 14.2 KB

RFC Directory (deck.gl)

Guidelines

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.

Roadmaps

Documents indicating intent and direction for bigger areas of functionality. Roadmap documents are intended to provide higher level descriptions than the more detailed, topic-focused RFCs.

Also see luma.gl roadmaps, such as the GPGPU roadmap

Roadmap Status Description
GPU Table Roadmap Draft Evolution of the GPUTable class across deck.gl v8.x releases
API Evolution Roadmap Draft Ideas for changes/extensions to the core deck.gl API
New Layers Roadmap Draft Ideas for new layers
Animation Roadmap Draft Animation API roadmap
Performance Roadmap Draft Performance Improvements
Infovis Roadmap Draft Infovis (non-geospatial) features roadmap
Reduce Distribution Size Implemented Reduce size of distribution and the bundle size of applications using deck.gl
Pure JS and Scripting Roadmap Implemented Support for Scripting and Pure-JS APIs

Longer-Terms RFCs

These RFCs are not yet associated with any specific release.

RFC Author Status Description
Reduce Repository Size @ibgreen Draft Reduce size of deck.gl github repository
Projection Mode Improvements @ibgreen @pessimistress Draft Improvements to projection system
Composite Layer Customization @ibgreen Draft Improvements to customizing composite layers
Render Layer to Texture TBD Proposed Allow layers to render to texture and then use texture in subsequent layers.
Layer Extension @pessimistress Draft Adding optional functionalities to layers on-demand
Fixed Frame Coordinate System @ibgreen Draft Add support for fixed frame (WGS84 cartesian) coordinates
Component Wrapping System @ibgreen Draft A unified system for exposing JS components to Python/Jupyter Notebook/JSON etc.
Projection System Expansion @pessimistress Draft Changes to the projection system to support various data and projection formats.

Possible other animation related RFCs:

  • integration with event handling (enter leave triggers for animations)

Deferred RFCs

RFC Author Status Description
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.
Expose Layer AttributeManager @ibgreen Deferred simplifies pregenerating attributes in apps for fast animation.
Unified ViewState @ibgreen Deferred Controversial proposal for an even more Unified View/Controller Architecture. Review again after all Controller/Multiview RFCs have been approved/implemented

v8.x Binary Data RFCs

Group of related RFCs loosely targeted for 7.x releases.

RFC Author Status Description
GLSL Accessor RFC @ibgreen Draft Allow apps to define GLSL accessors to directly access injected columnar data or implement advanved effects
Texture Attribute RFC @ibgreen Draft Enable variable-primitive layers_ to read descriptive attributes from a binary column.
GPU Data Frame Support @ibgreen Draft Proposal for enabling deck.gl to apply data frame filters on GPU.
Chunked Data Support @ibgreen Draft Support Chunked Columnar data on the GPU.
Binary Support Improvements @pessimistress Draft API change for more intuitive binary data usage.

v7.x RFCs

RFCs loosely targeted for 7.x releases. Also see luma.gl RFCs

RFC Author Status Description
Binary Data RFC @ibgreen @pessimistress Draft Support binary data as input to deck.gl layers.
Imperative API Improvements @ibgreen draft Potential API improvements for imperative programming.
Partial Updates @ibgreen @georgios-uber draft Allow partial updates of vertex attributes to support high-performance editing.
Project / Unproject Improvements @ibgreen Draft Consolidating, generalizing and simplifying JS project/unproject API, covering uses from new features such as MultiView.
Layer Operations @ibgreen Preliminary Approval Allow partial updates of vertex attributes to support high-performance editing.
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
Heatmap Layer @1chandu Draft A new layer to render heat maps with GPU Acceleration

V7.1 RFCs

These RFCS were implemented in v7.1.

RFC Author Status Description
GPU Acceleration in GridLayer @1chandu Implemented GPU Accelerated aggregation support in GridLayer.

v7.0 RFCs

These RFCS were implemented in v7.0. Also see luma.gl RFCs.

RFC Author Status Description
Phong Lighting @jianhuang01 Implemented Add phong lighting module to luma and deck
Effects Manager @jianhuang01 Draft Official support for effects (shadows, reflections, better lighting, postprocessing, framebuffer composition etc).
Composite Layer Prop Forwarding @ibgreen @pessimistress Implemented Conventions for overriding sublayer props

v6.3 RFCs

These RFCS were implemented in v6.3. Also see luma.gl RFCs.

RFC Author Status Description
Prop Types @ibgreen Implemented Validate e.g ranges for numeric attributes, support animation/auto-interpolation.
Advanced Event Handling @pessimistress Draft Allow Layer props to accept on style callbacks for events other than hover and click
GPU Aggregation enhancements @1chandu Implemented Enhance GPUGridAggregator to support multiple aggregation operations and aggregation of up to 3 weights

v6.2 RFCs

These RFCS were implemented in v6.2. Also see luma.gl RFCs.

RFC Author Status Description
Mapbox Custom Layer @pessimistress @ibgreen Draft Integration of deck.gl API with new mapbox custom layers.

v6.1 RFCs

These RFCS were implmented in v6.1. Also see luma.gl RFCs

RFC Author Status Description
JSON Layers @ibgreen Preliminary Approval Enable deck.gl layers to be specified as JSON payloads.
View Class Extensions @ibgreen Review Additional View Class properties that enable e.g. "nested" maps (minimap on top of main map).
Property Animation (Phase 1) @ibgreen Draft Allow Layer props and GL parameters to accept functions in addition to values and call these on every render to update values
Contour Layer @1chandu Preliminary Approval Contour detecting aggregating layer.
Improved 32 bit Projection Mode @ibgreen @georgios-uber Implemented New projection mode for mixed 32/64 bit precision.

v6.0 RFCs

These RFCS were implemented in v6.0. Also see luma.gl RFCs

RFC Author Status Description
Per-View Controllers @ibgreen Draft Support one controller per view in multi-view apps
GPU Aggregations @1chandu Draft Official support for effects (shadows, reflections, better lighting, postprocessing, framebuffer composition etc).
Data Filter @pessimistress Draft Add generic support to filter data objects on the GPU.
React API @pessimistress Draft React API refresh.

v5.3 RFCs

These RFCs were implemented in v5.3.

RFC Author Status Description
Auto Controls @ibgreen Review Allow deck.gl to be used without an onViewStateChange callback.
Async Layer Props @pessimistress & @ibgreen Review Layer.data can be a URL string, and layer asynchronously downloads and displays the data.
Picking Occluded Ojects @ibgreen @georgios-uber draft Allow partial updates of vertex attributes to support high-performance editing.
Constant Accessor @pessimistress draft Allow users to supply constant attributes directly instead of using an accessor.
Attribute Buffer @pessimistress draft Move buffer management from Model class to AttributeManager.

v5.2 RFCs

These RFCs were implemented in v5.2.

RFC Author Status Description
New View Classes @ibgreen @pessimistress Implemented Official API for multi-view support, replacing the v5.0 experimental API
Unified 32/64-bit Projection @ibgreen Implemented

v5.1 RFCs

These RFCs were implemented in v5.1.

RFC Author Status Description
Animation
Attribute Transitions @pessimistress Implemented Automatically interpolate between two copies of a vertex attributes
TransitionInterpolator @pessimistress Implemented New class to make it easier to customize interpolation

v5.0 RFCs

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
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
Viewport Transitions @1chandu Experimental Animate Viewport changes ("fly to" effect) through interpolation of Viewport props. (Also used in react-map-gl v3.2).
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)

v4.1 RFCs

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

v4.0 RFCs

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