[go: up one dir, main page]

Skip to main content

MIT licenseMonthly npm downloads for @math.gl/corenpm versionGitHub starsBuilt with TypeScript 6.0.3coverage

Introduction

Welcome to math.gl!

math.gl is a modular TypeScript toolbox for geospatial and 3D math. Start with vectors and matrices in core, then add modules for coordinate conversion, geometry, global grids, and other application needs.

math.gl computes on the CPU and has no GPU dependencies. Its arrays and coordinate utilities can supply WebGL, WebGPU, or other rendering systems.

OpenJS FoundationOpenJS Foundation

math.gl is part of Open Visualization, an OpenJS Foundation / Linux Foundation project.

Modules​

Modular geospatial & 3D math

Small tools. Big spatial ideas.

Pick the building blocks you need—from vectors and meshes to coordinate systems, global grids, and time-aware geospatial analysis.

Foundations

Vectors, matrices, task execution, shared numeric types and expression evaluation.

3D

Curves, meshes, geometry processing and visibility.

Geospatial

Coordinate systems, projections, and geospatial data formats.

Earth

Coordinate reference systems, Earth models, maps and time.

DGGS

A separate module for discrete global grid systems.

Package entry points​

The grouped package entry points are:

PackageSubpaths
@math.gl/core/types, /expressions
@math.gl/geometry/utils, /curves, /polygon, /culling, /spatial-index
@math.gl/geospatial/ellipsoid, /globe, /tiles, /crs, /projection, /web-mercator, /wkb, /geoarrow, /expressions
@math.gl/earth/geoid, /sun, /timezone

The implementations live in these grouped packages. The former standalone leaf packages have been removed. @math.gl/dggs remains separate; @math.gl/web-mercator is retained for compatibility.

Legacy packages​

The unscoped math.gl compatibility package has been removed from the workspace; use @math.gl/core for core math. @math.gl/web-mercator remains available for compatibility, and viewport-mercator-project re-exports Web Mercator utilities.

Supported Browsers and Node Versions​

math.gl is fully supported on:

  • Evergreen browsers: Recent versions of Chrome, Safari, Firefox, Edge etc.
  • Node.js: Active and Maintenance LTS releases

History​

YearVersionDescription
2026v5.0 (prerelease)A new projection engine, global grid adapters, WKB and GeoArrow geometry processing, and Earth utilities, organized into focused package entry points. See what’s new.
2023v4.0ES module support. gl-matrix was removed as a runtime dependency; adapted numerical kernels remain in core.
2022v3.6Code base fully rewritten in TypeScript.
2020+v3.xAdditional geospatial modules have gradually been added to support more advanced use cases for deck.gl.
2019v3.0A collaboration with the Cesium team around 3D Tiles led to ports of parts of the Cesium math library into the math.gl/geospatial and @math.gl/geometry/culling modules.
2018v2.0The math.gl API started to mature.
2017v1.0math.gl was broken out into its own repository to manage luma.gl growth. The goal was an independently usable set of 3D and Geospatial math modules.
2015N/A@math.gl/core classes were created as part of luma.gl v4, as a set of class wrappers for gl-matrix for luma.gl and deck.gl frameworks.

References and credits​

See References and credits for contributor acknowledgments, upstream libraries, scientific references, dataset credits, and third-party notices.

License​

MIT license. Derived kernels retain their upstream notices.

Selected modules include Apache-2.0 or ISC licensed upstream code. Optional datasets can have separate licenses; see each module's attribution and distributed notices.

Package code uses permissive licenses. Dataset licenses and attribution are documented separately.