Skip to content

Tracker: kepler.gl Globe Alignment #688

Description

@ibgreen-openai

Purpose

Create and maintain a research and implementation tracker for alignment between Igor Dykhta’s recently merged kepler.gl globe work, deck.gl-community, and upstream deck.gl.

This issue is a tracker, not a decision to implement code, create additional GitHub issues, open pull requests, or contact external parties. Preserve the distinction between merged changes, unmerged research, community incubation, and existing upstream work.

Principal source: kepler.gl #3486 (merged July 21, 2026).

Globe alignment audit

Innovation Kepler evidence Recommendation
Atmospheric scattering and day/night terminator Merged in kepler.gl #3486. Community, highest priority. Replace the existing atmosphere placeholders with reusable atmosphere and sky layers. Expose optional sun direction and terminator settings without introducing Kepler-specific configuration.
Globe depth disk and far-side occlusion Merged in kepler.gl #3486. Community, highest priority. Add a camera-oriented depth layer to prevent back-facing labels, lines, and other geometry from bleeding through the globe. Consider subsequent upstreaming to deck.gl if independently useful.
Globe basemap composition, vector and raster sources Merged in kepler.gl #3486. Community, selectively. Compare against existing community globe basemap code and port only missing capabilities. Preserve community’s style-resolution and vector-source-grouping architecture.
Far-side label and icon suppression Merged in kepler.gl #3486. Community first; deck.gl later. Evaluate reusable globe-aware label visibility, horizon rejection, stable picking, and compatibility with the existing community MVT label implementation.
Globe-correct heatmap projection Merged in kepler.gl #3486. High-value deck.gl candidate; prototype in community. Use a geographic-density viewport and tessellated globe-conforming render mesh. Include compatibility with the existing community GeoArrowHeatmapLayer without copying Kepler’s application-specific subclass.
Heatmap antimeridian and world-copy stability Merged in kepler.gl #3544. Strong deck.gl candidate. Frame rendering using data bounds, anchor the selected world copy, and avoid incorrectly rewrapping the final quad. Keep separate from globe-specific heatmap work because this also fixes flat maps.
Globe-correct grid and hexagon aggregation Merged in kepler.gl #3486. Strong deck.gl candidate. Preserve Mercator-space aggregation while projecting cell vertices onto the globe. Only prototype in community if this avoids fragile shader string replacement and reliance on private upstream classes.
Polygon fill tessellation Proposed in kepler.gl #3548, closed without merging. Research only, not a direct port. Investigate curvature-aware polygon subdivision for GeoJsonLayer and SolidPolygonLayer. Require mixed-geometry correctness, globally bounded triangle counts, holes, antimeridian crossings, and independent fill/outline rendering.
Pointer-anchored globe zoom and pole handling Kepler workaround in #3486; existing upstream deck.gl #10385. deck.gl, not community. Follow the existing upstream proposal; do not introduce a competing community-owned globe controller or copy private controller-state overrides.
Globe tile and terrain projection Existing upstream deck.gl #10350. deck.gl. Follow the existing Web Mercator imagery/terrain correction rather than maintaining a separate community implementation.
Star-field background Merged in kepler.gl #3542. Community, lower priority. Prefer the existing SkyboxLayer and reusable procedural or asset-backed star cubemaps instead of Kepler’s CSS-container background. The current Kepler source defaults stars to false despite the PR description.
Provider attribution Merged in kepler.gl #3550. Community, selectively. Preserve and expose resolved source attribution metadata. Leave React rendering, HTML parsing, localization, and toolbar presentation to applications.
View-mode menus, Redux, persistence, localized panels, and image/video export Merged in kepler.gl #3486 and #3547. Remain in Kepler. Application integration, not reusable community or deck.gl layer functionality.

Suggested tracking phases

  1. Community atmosphere, day/night terminator, atmosphere sky, and depth occlusion.
  2. Globe-safe labels/icons, basemap completeness, and source attribution metadata.
  3. Independently scoped globe heatmap, antimeridian/world-copy correction, and aggregation-cell projection research/prototypes.
  4. Follow or prepare upstream deck.gl proposals without duplicating existing controller or tile-projection pull requests.
  5. Optional star skybox.

Acceptance expectations

  • Track merged/unmerged status and source links for every item.
  • Preserve flat-map behavior and atmosphere-disabled defaults.
  • Record validation needs for poles and the antimeridian.
  • Record validation needs for vector and raster sources.
  • Record validation needs for globe occlusion and picking.
  • Record validation needs for globe and flat heatmaps, including Arrow-backed data.
  • Record validation needs for grid and hexagon aggregation.
  • Require globally bounded polygon tessellation covering mixed geometries, holes, antimeridian crossings, and independent fill/outline rendering.
  • Track relevant public API, user-facing, and migration documentation.
  • Require yarn build, relevant tests, and yarn lint for any subsequently authorized implementation.
  • Keep existing upstream controller and tile/terrain proposals separate from community incubation.
  • Do not classify closed, unmerged research as merged functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions