
v3.2 TypeScript 
v3.0 WGS84 & Ellipsoid 
Release Date: Jan 7, 2020
@math.gl/geoid
 New module
Geoid
class calculates the height offset (aka "undulation") from the pure ellipsoid for a given lng/lat (using sherical harmonics).Geoid
instances can be initialized with PGMencoded earth gravity model coefficient files from standard sources.@math.gl/polygon
Polygon
instance.modifyPolygonWindingDirection()
to modify polygon array winding direction inplace.Release Date: Oct 9, 2020
@math.gl/proj4
 New module
Release Date: July 18, 2020
Typescript
.d.ts
files) are now exported for all math.gl modules.@math.gl/polygon
 New module
Release date: Dec 16, 2019
@math.gl/webmercator
@math.gl/webmercator
npm submodule.@math.gl/webmercator
module is an evolution of the now archived viewportmercatorproject
repository.Release date: Aug 8, 2019
The 3.0 release brings support for geospatial math, culling, performance improvements, and some API consolidation.
@math.gl/geospatial
A new module (developed in collaboration with the Cesium engineering team) providing WebGLframeworkindependent geospatial math classes and algorithms:
Ellipsoid
and constant Ellipsoid.WGS84
for working with WSG84 coordinates@math.gl/culling
A new module (developed in collaboration with the Cesium engineering team) providing WebGLframeworkindependent classesthat support geometric intersection calculations (primarily intended to support frustum culling operations):
AxisAlignedBoundingBox
OrientedBoundingBox
BoundingSphere
CullingVolume
@math.gl/core
Transform API Consolidation
The API for transformations (i.e. multiplying vectors with matrices or quaternions) has been extended and made more orthogonal:
transform*
methods are now available on all Vector
classes, in addition to on the Matrix
classes. Among other things, this enables transformations without using Matrix
classes.transform
, transformAsPoint
, transformAsVector
).Vector
classes (transformByMatrix3
, transformByMatrix2
, transformByMatrix2x3
and transformByQuaternion
). Simplifies using the most efficient transformation for the job.Matrix classes
Matrix*.setColumn()
and Matrix*.getColumn()
Matrix*.toString()
Matrix4.frustum()
now supports infinite far
plane (parity with Matrix4.perspective
, which already supported this).Utility Functions
toRadians
and toDegrees
exactEqual
Performance Improvements (and Website Benchmarks)
A benchmarking example has been added to the website that makes it easy to assess the performance of the math.gl library on your own browser. The math.gl library has been carefully tuned based on these benchmarks and performance of the library has been significantly improved over version 2.x.
Release date: Jan 29, 2019
Matrix3
scale
factor support to Matrix3
and Matrix4
glmatrix@3.0.0
package as dependency instead of forked glmatrix packages.Release date: Sep 20, 2018
@babel/runtime
to reduce bundle sizeequals
function fix on arraysRelease date: June 25, 2018
Experimental exports are now exported with a leading underscore (_), instead of as members of the experimental
namespace.
The change was made to make it possible for treeshaking bundlers to remove unused experimental exports from applications.
Release date: May 4, 2018
lerp
utilityPose
classRelease date: April 16, 2018
Matrix4.orthographic()
 To simplify switching between perspective and orthographic views, math.gl now offers an additional method for creating orthographic projection matrix, that takes the same parameters as Matrix4.perspective()
, with the addition of one additional parameter, focalDistance
. See Matrix4.orthographic
({fovy, aspect, focalDistance, near, far})
math.gl has been tuned to have approximately 20% smaller footprint when bundled in applications.
math.gl classes now pass large parts of the THREE.js test suite, which should make it easier to reuse code written for the THREE.js math library.
Release date: Jan 9, 2018
Initial release.