vector_math
A vector math library for 2D and 3D applications, supporting 2D, 3D, and 4D matrices.
2.4.2
7.8M downloads/mo
#71 most downloaded on pub.dev
flutter/core-packages
What this package is like to depend on
Last release 25 days ago
29 Jul 2026
Ships unpredictably
gaps range from 2 weeks to 2.6 years
Most releases are documented
notes for 34 of 42 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
48 releases · first in 2012
4 releases in the last 12 months
see the full history below
Release timeline
48 releases · Oct 2012 to Jul 2026Releases
latest 48-
2.4.229 Jul 2026 -
2.4.122 Jul 2026Release notes
Open source →Summary
- Documents the public
PlaneAPI invector_mathand
vector_math_64. - Removes the file-level
public_member_api_docsignore for both
Planeimplementations. - Adds a
CHANGELOG.mdentry for the docs update.
Part of flutter/flutter#186827
- Documents the public
-
2.4.003 Jun 2026Release notes
Open source →- Removes the deprecated
SimplexNoiseclass. - Optimizes the
identityconstructors on theMatrixclasses. - Updates metadata to reflect the move from google/vector_math.dart to flutter/core-packages, which is the new source of truth for this package.
- Updates source and metadata to follow Flutter team package conventions and analysis options.
- Updates minimum supported SDK version to Dart 3.10.
- Removes the deprecated
-
2.3.018 Mar 2026Release notes
Open source →- Add
leftTranslateByVector2method toMatrix4. Equivalent to theleftTranslateset of methods, that multiplies this matrix by a translation matrix from the left. - Added
Matrix4.leftMultiplymethod. - Add
translateByVector2method toMatrix4. - Require
sdk: ^3.7.0.
- Add
-
2.2.022 May 2025Release notes
Open source →-
Performance of functions that take
dynamicarguments improved. -
Most of the members that take
dynamicarguments are deprecated. New members with non-dynamicarguments added.Deprecated members:
-
Matrix4.translateInstead use:
Matrix4.translateByDouble,Matrix4.translateByVector3,Matrix4.translateByVector4. -
Matrix4.leftTranslateInstead use:
Matrix4.leftTranslateByDouble,Matrix4.leftTranslateByVector3,Matrix4.leftTranslateByVector4. -
Matrix4.scaleInstead use:
Matrix4.scaleByDouble,Matrix4.scaleByVector3,Matrix4.scaleByVector4. -
Matrix4.scaledInstead use:
Matrix4.scaledByDouble,Matrix4.scaledByVector3,Matrix4.scaledByVector4.
-
-
-
2.1.515 Apr 2025Release notes
Open source →- Fixed
operator -()of Quaternion (Contributed by tlserver) - Fixed
Matrix3.rotationYdirection (Contributed by tlserver, moritzblume) - Added an operator== to Quaternion so that two instances of quaternions can be evaluated for equality.
- Require Dart 3.1
- Fixed
-
2.1.421 Sep 2022 -
2.1.318 Aug 2022Release notes
Open source →operator ==overrides no longer take nullable arguments. This is only visible for classes that implement the interfaces defined in this package which no longer need to also widen the argument type.- Deprecate
SimplexNoise(see https:github.com/google/vector_math.dart/issues/270 for more information).
-
2.1.201 Feb 2022 -
2.1.121 Sep 2021 -
2.1.003 Feb 2021Release notes
Open source →- Stable release for null safety.
- Improve performance of Matrix4.decompose by reusing objects.
-
2.1.0-nullsafety.503 Nov 2020 pre-releaseNothing published for this version
-
2.1.0-nullsafety.423 Oct 2020 pre-releaseNothing published for this version
-
2.1.0-nullsafety.322 Sep 2020 pre-releaseNothing published for this version
-
2.1.0-nullsafety.222 Jul 2020 pre-releaseNothing published for this version
-
2.1.0-nullsafety.117 Jul 2020 pre-releaseNothing published for this version
-
2.1.0-nullsafety08 Jul 2020 pre-releaseNothing published for this version
-
2.0.823 Jul 2018 -
2.0.725 Apr 2018 -
2.0.620 Mar 2018Release notes
Open source →- Fixed angleTo for vectors that do not have unit length
- Added Matrix4.tryInvert.
-
2.0.506 Jul 2017 -
2.0.406 Feb 2017Release notes
Open source →- Added Matrix4.isIdentity()
- Added Matrix4.isZero()
- Added Matrix3.isIdentity()
- Added Matrix3.isZero()
- Added Vector2.angleTo and Vector2.angleToSigned
-
2.0.317 May 2016 -
2.0.217 May 2016 -
2.0.125 Apr 2016 -
2.0.015 Mar 2016Release notes
Open source →- Remove call chaining, methods don't return this anymore. You can use the method cascade operator instead.
- Remove dependency on quiver package
-
1.4.701 Feb 2016 -
1.4.626 Jan 2016 -
1.4.513 Jan 2016 -
1.4.429 Dec 2015Release notes
Open source →- Updated dependencies.
- Moved benchmark code into
benchmark/ - Updated
vector_math_64.
-
1.4.325 Feb 2014Release notes
Open source →- Add color conversion routines (Contributed by Oliver Sand)
- More collision and geometry routines (Contributed by Oliver Sand)
- More tests (Contributed by Oliver Sand)
- v 1.4.3 pub release
-
1.4.224 Jan 2014Nothing published for this version
-
1.4.2+129 Jan 2014Nothing published for this version
-
1.4.107 Jan 2014Release notes
Open source →- Better mesh generators (contributed by Brandon Jones)
- Fix bug in ray v. triangle intersection test (contributed by @AMagill)
-
1.3.519 Jul 2013Release notes
Open source →- Class names now start with upper case, following Dart style guide.
- Performance audit.
- New vector_math_operations library.
- New vector_math_lists library.
- Added Aabb2 and fleshed out Aabb3 (thanks to Laszlo Korte)
- Added Matrix solve methods (thanks to Laszlo Korte)
- Added Methods needed for Three.dart (thanks to Anders Forsell)
-
1.3.312 Jul 2013Nothing published for this version
-
1.3.228 Jun 2013Nothing published for this version
-
1.3.126 Jun 2013Nothing published for this version
-
1.3.027 May 2013Nothing published for this version
-
1.1.026 Apr 2013 -
0.9.717 Mar 2013Release notes
Open source →- Refactor generated constructor code into small functions.
- Refactor generated operator* code into small functions.
- Fix typo in quaternion code.
-
0.9.612 Mar 2013Release notes
Open source →- Update to latest String library.
- Fix holding references in matrix constructor.
- Replace double type with num in rotationY, and rotationZ.
-
0.9.522 Feb 2013Release notes
Open source →- Remove remaining double type tests and replace them with num.
- Don't throw in the default matrix and vector constructors.
-
0.9.421 Feb 2013Release notes
Open source →- Remove unnecessary dart:scalarlist import.
- Now that dart2js is fixed, rename negate_ back to negate.
- Fix library imports in test suites.
- Flexible constructor fix added to the generator.
- Tested library under dart2js
-
0.9.320 Feb 2013Release notes
Open source →- Revert to using a single library!
- Public API reverted to taking nums instead of doubles.
- Fixed all warnings/errors introduced by M3.
- drone.io integrated tests.
- Fixed bug in rotation construction.
- Fixed bug in orthographic matrix construction.
- External contribution by fkleon fixing flexible constructors.
- External contribution by donny-dont adding a missing cast .toDouble().
-
0.9.211 Dec 2012Nothing published for this version
-
0.9.108 Nov 2012Nothing published for this version
-
0.9.018 Oct 2012Release notes
Open source →- Pub: Dart Vector Math now fully supports the pub package management system!
- API++: Minor changes to the API everywhere. The changes improve the aesthetics and performance of the library.
- Faster: Lots of performance tweaks resulting in the library getting faster and generating less garbage.
- 2D Cross Product: The Box2D Dart port requires a 2D cross product.
- Library Split: Two libraries, one for browser applications and console applications.