1 of 27

vis.gl Community Planning Meeting

May 2020

2 of 27

Warning

All technical designs and implementations discussed in this meeting are released from proprietary claims and will subject to the same license as the vis.gl project (Apache 2.0).

Do not speak of a topic that your organization has IP concerns over.

3 of 27

AGENDA

Open Governance Overview

Ongoing Efforts

8.2/8.3 Feature Proposals

Feedback & Discussion

4 of 27

AGENDA

Open Governance Overview

Background

Motivations

Get involved

Stay in touch

Ongoing Efforts

8.2/8.3 Feature Proposals

Feedback & Discussion

5 of 27

vis.gl is now in open governance

The Urban Computing Foundation, a subsidiary of the Linux Foundation, is a neutral forum for accelerating open source and community development that improves mobility, safety, road infrastructure, traffic congestion and energy consumption in connected cities.

vis.gl was officially donated to UCF in April, 2020.

6 of 27

The vis.gl Ecosystem

7 of 27

8 of 27

The vis.gl Ecosystem

  • JavaScript flavors

Pure JS

Scripting

React

TypeScript (third-party)

Declarative

  • Compatible base maps

mapbox-gl-js

Google Maps API

ArcGIS for JavaScript

HERE/harp.gl

  • Language bindings

Python/Jupyter

R (third-party)

Java (WIP)

Swift (WIP)

C++ (WIP)

9 of 27

Contributions and Collaborations

Custom layer API (@deck.gl/mapbox)

Google Maps integration (@deck.gl/google-maps)

3D Tiles loader (@loaders.gl/3d-tiles, @math.gl/geospatial)

ArcGIS integration (@deck.gl/arcgis)

I3S loader (@loaders.gl/i3s)

MVT (Mapbox Vector Tile) loader and layer

vega-deck.gl

deck.gl native (C++ port)

10 of 27

The Time is Right

  • A big community with thousands of users world-wide
  • Part of the core stack for many companies and products
  • Contributions from major industry leaders
  • Tech leads now come from multiple companies

11 of 27

Open Governance Goals

  • Support / support adoption of and investment in vis.gl
  • Nurture / encourage industry engagement and cross-company collaboration
  • Transparency / open and fair forum for feedbacks
  • Meritocracy / influence is proportional to contributions

12 of 27

Technical Steering Committee

  • Privileges

Voting right on the admittance/removal of steering committee members and maintainers

Administrator to the project's repo, and owner to the NPM organization

Approving external communications

Final veto power in roadmap planning

  • Responsibilities

Manage project members and privileges according to the governance guidelines

Ensure that the dev tools of the repo work consistently and as expected

Organize and moderate community discussions, enforce the code of conduct

Ensure that the dev process is followed by all contributors

Ensure the consistency and quality of the documentation

Manage blog posts, material for conference and meetup talks, and other brand presence

13 of 27

Maintainers

  • Privileges

Roadmap planning

Write permission to the repo, and membership to the NPM organization

Represent vis.gl publicly

  • Responsibilities

Participate in the planning meetings and RFC reviews

Be responsive to bug reports, user questions, and code review requests

Comply with the projects’ development process

14 of 27

Release Schedule

Communication Channels

  • Planning meetings / Every ~3 months (2 minor releases)
  • Mailing list / visgl@lists.uc.foundation
  • Slack / deckgl.slack.com (open invite)
  • GitHub issues
  • Minor release / Every 6 weeks
  • Major release / Used to be 1 year, expect longer

15 of 27

AGENDA

Open Governance Overview

Ongoing Efforts

Tiled solutions

deck.gl-native

Framework modernization

Cross-language architecture

8.2/8.3 Feature Proposals

Feedback & Discussion

16 of 27

Tiled Solutions

Lead by @pessimistress @xintongxia

  • TileLayer

Geospatial / non-geospatial (v8.1)

  • TerrainLayer (v8.1)
  • MVTLayer (v8.1)
  • Tile3DLayer 3D Tiles / I3S (v8.1)

Ongoing efforts

Cross-tile highlighting

Terrain-based feature offset

Cesium terrain loader

17 of 27

deck.gl-native: C++ renderer for deck.gl

Lead by @ibgreen

  • GPU bindings

dawn (native WebGPU)

  • Table processing

Apache Arrow

Current state

An exploratory project

Concept proven, significant work remains

Additional participation strongly invited

deck.gl LineLayer example running natively on MacOS

18 of 27

Framework Modernization

  • TypeScript definitions

Being added to frameworks, gradual rollout in 8.2 release

  • WebGPU backend

luma.gl separation of engine and WebGL API (v8.0)

WebGPU being prototyped in deck.gl-native

  • ES Modules (Script replacement)

Lead by @ibgreen

19 of 27

Cross-Language Visualization Architecture

Lead by @ibgreen

  • Existing bindings

JavaScript (Pure JS/React)

Declarative (@deck.gl/json)

Python (pydeck / jupyter-widget)

  • Being prototyped

C++ (deck.gl-native)

Java (JavaDeck for Android)

Swift (SwiftDeck for iOS)

  • External

R (mapdeck)

20 of 27

Cross-Language Visualization Architecture

Lead by @ibgreen

Contact: ib@unfolded.ai

21 of 27

Cross-Language Visualization Architecture

Lead by @ibgreen

Contact: ib@unfolded.ai

22 of 27

AGENDA

Open Governance Overview

Ongoing Efforts

8.2/8.3 Feature Proposals

Geospatial system expansion

Binary transport format

TileLayer improvements

Pydeck improvements

Feedback & Discussion

23 of 27

Geospatial System Expansion

Lead by @pessimistress

  • WGS84 Cartesian coordinates

Local” support (transform to meter offsets) (v8.2)

True 3D common space (v8.3)

  • 180th meridian handling (v8.2)

wrapLongitude changes

GeoJSON feature splitting

  • Globe projection

Experimental controller & core layer support (v8.2)

Generic compatibility (v8.3)

  • Alternative 2D projections (v8.3)

24 of 27

TileLayer Improvements

Lead by @kylebarron

  • 2D tiles traversal (v8.2)

Support extreme pitch with frustum culling

Better replacement strategies

  • Request scheduler (v8.2)

Prioritized loading and cancellation

  • Elevation (v8.3)

Offset AGL features to draw on top of 3D terrain

Subtract terrain from MSL data to visualize on top of 2D base maps

25 of 27

Binary Transport Format

Lead by @pessimistress

  • API for centralized data updates

Shared data management - experimental (v8.2)

Finalized transport format (v8.3)

26 of 27

Pydeck

Lead by @ajduberstein

  • Maintenance (v8.2 / pydeck 0.4) (#4323)

JupyterLab >=2.0 support; improved CI

  • UI elements (v8.2 / pydeck 0.4)

Support for scales and legends

  • Interactive UI elements (v8.3 / pydeck 0.5)

Multiple layer selection (visual feedback for selected elements in a UI) and time-scrubbing

  • Event handling (v8.3 / pydeck 0.5)

Functions within Jupyter triggered on interaction

27 of 27

Backlog

Progress will depend on interest and contributions

  • Keyframed animation
  • Graph layers
  • GPU-based geofencing
  • Data textures
  • Apache arrow support