math.gl is a JavaScript class library for 3D and geospatial math. It provides traditional 3D library classes for vectors, matrices etc, as well as additional, optional modules that address different domains.
math.gl
: Basic 3D math classes (vectors, matrices etc) and utilities (equals
, toRadians
etc).@math.gl/geospatial
- support for geospatial math, primarily WGS84 and Web Mercator.Classes for gl-matrix - math.gl classes are built on top of gl-matrix
. gl-matrix
has a reputation for being the most performant and battle-tested JavaScript math library around.
Array-Based - math.gl classes (like Vector3
, Matrix4
) are subclasses of the built-in JavaScript Array
which enables applications to use them interchangeably with plain (or typed) arrays.
Debug Friendly - math.gl offers optional error checking after every math operation which makes quick work of locating coding errors and bad input data. Printing support for objects (toString
) also simplifies debugging.
Documentation - If you are new to 3D programming it can be hard to know where to start. math.gl comes with articles to show you the big picture and get you up-to-speed on the mathematical concepts and the corresponding classes.
Size Conscious - math.gl is published as multiple modules to let applications cherry-pick required functionality, and is optimizes dependencies for tree-shaking to make sure you only pay for (bundle) what you use.
math.gl is fully supported on:
es5
distribution shuold work (with performance caveats).However, Internet Explorer < 10 will not work. If your application needs to support non-evergreen browsers, an option could be to use e.g. gl-matrix
directly.
math.gl was inspired by and built upon some of the most proven open source JavaScript math libraries:
gl-matrix
- math.gl classes use gl-matrix under the hoodMIT license. The libraries that the core math.gl
module are built on (e.g. gl-matrix) are also all open source and MIT licensed.
The @math.gl/geospatial
and @math.gl/culling
include Cesium-derived code which is Apache2 licensed.