Overview
Library overview
Math for the shape of the world.
From vectors and matrices to coordinate systems and planetary geometry. Composable TypeScript tools for the world you’re building.
math.gl computes on the CPU with no GPU dependencies. Use its arrays and coordinate utilities with WebGL, WebGPU, or your own analysis pipeline.
math.gl is an Open Visualization, OpenJS Foundation and Linux Foundation project.
Package entry points
The grouped package entry points are:
| Package | Subpaths |
|---|---|
@math.gl/core | /expressions |
@math.gl/geometry | /culling, /lighting, /color |
@math.gl/geospatial | /crs, /projection, /terrain, /turf, /tasks |
@math.gl/earth | /sun, /timezone, /sun/stars; optional geoid and timezone datasets |
@math.gl/dggs | Grid decoding and indexing at the package root |
@math.gl/web-mercator | Map viewport and camera calculations at the package root |
@math.gl/arrow | /utf8, /geoarrow, /geoarrow-utils, /wkb |
@math.gl/tasks | Task execution at the package root |
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
| Year | Version | Description |
|---|---|---|
| 2026 | v5.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. |
| 2023 | v4.0 | ES module support. gl-matrix was removed as a runtime dependency; adapted numerical kernels remain in core. |
| 2022 | v3.6 | Code base fully rewritten in TypeScript. |
| 2020+ | v3.x | Additional geospatial modules have gradually been added to support more advanced use cases for deck.gl. |
| 2019 | v3.0 | A 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. |
| 2018 | v2.0 | The math.gl API started to mature. |
| 2017 | v1.0 | math.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. |
| 2015 | N/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. |
Attributions
See Attributions 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.