diff --git a/docs/API.md b/docs/API.md
index bb2ac0cd..ddc6cdb7 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -1,5 +1,5 @@
-# Affineplane API Documentation v2.2.0
+# Affineplane API Documentation v2.3.0
Welcome to affineplane API reference documentation.
@@ -3463,6 +3463,7 @@ Aliases: [affineplane.vector2](#affineplanevector2)
- [affineplane.vec2.average](#affineplanevec2average)
- [affineplane.vec2.copy](#affineplanevec2copy)
- [affineplane.vec2.create](#affineplanevec2create)
+- [affineplane.vec2.cross](#affineplanevec2cross)
- [affineplane.vec2.difference](#affineplanevec2difference)
- [affineplane.vec2.dot](#affineplanevec2dot)
- [affineplane.vec2.fromArray](#affineplanevec2fromArray)
@@ -3569,6 +3570,24 @@ Create a vector object `{ x, y }`.
Source: [create.js](https://github.com/axelpale/affineplane/blob/main/lib/vec2/create.js)
+
+## affineplane.vec2.cross(v, w)
+
+The magnitude of cross product of two 2D vectors. While in 3D,
+the cross product returns a perpendicular vector, in 2D we must
+settle for a scalar result, the length of that 3D vector.
+
+**Parameters:**
+- *v*
+ - a [vec2](#affineplanevec2)
+- *w*
+ - a [vec2](#affineplanevec2)
+
+**Returns:**
+- a number
+
+Source: [cross.js](https://github.com/axelpale/affineplane/blob/main/lib/vec2/cross.js)
+
## affineplane.vec2.difference(v, w)
@@ -3911,8 +3930,10 @@ Aliases: [affineplane.vector3](#affineplanevector3)
- [affineplane.vec3.average](#affineplanevec3average)
- [affineplane.vec3.copy](#affineplanevec3copy)
- [affineplane.vec3.create](#affineplanevec3create)
+- [affineplane.vec3.cross](#affineplanevec3cross)
- [affineplane.vec3.diff](#affineplanevec3diff)
- [affineplane.vec3.difference](#affineplanevec3difference)
+- [affineplane.vec3.dot](#affineplanevec3dot)
- [affineplane.vec3.equal](#affineplanevec3equal)
- [affineplane.vec3.fromArray](#affineplanevec3fromArray)
- [affineplane.vec3.fromPolar](#affineplanevec3fromPolar)
@@ -4013,6 +4034,24 @@ Source: [copy.js](https://github.com/axelpale/affineplane/blob/main/lib/vec3/cop
Source: [create.js](https://github.com/axelpale/affineplane/blob/main/lib/vec3/create.js)
+
+## affineplane.vec3.cross(v, w)
+
+The cross product of two 3D vectors. Returns a vector perpendicular
+to the given vectors. In other words, the result will be normal
+to the plane span by the given vectors.
+
+**Parameters:**
+- *v*
+ - a [vec3](#affineplanevec3)
+- *w*
+ - a [vec3](#affineplanevec3)
+
+**Returns:**
+- a [vec3](#affineplanevec3)
+
+Source: [cross.js](https://github.com/axelpale/affineplane/blob/main/lib/vec3/cross.js)
+
## affineplane.vec3.diff(v, w)
@@ -4040,6 +4079,22 @@ Aliases: [affineplane.vec3.diff](#affineplanevec3diff)
Source: [difference.js](https://github.com/axelpale/affineplane/blob/main/lib/vec3/difference.js)
+
+## affineplane.vec3.dot(v, w)
+
+Dot product of two vectors.
+
+**Parameters:**
+- *v*
+ - a [vec3](#affineplanevec3)
+- *w*
+ - a [vec3](#affineplanevec3)
+
+**Returns:**
+- a number
+
+Source: [dot.js](https://github.com/axelpale/affineplane/blob/main/lib/vec3/dot.js)
+
## affineplane.vec3.equal(v, w)
diff --git a/lib/version.js b/lib/version.js
index c61c63d8..f2a966eb 100644
--- a/lib/version.js
+++ b/lib/version.js
@@ -1,2 +1,2 @@
// Generated by genversion.
-module.exports = '2.2.0'
+module.exports = '2.3.0'
diff --git a/package.json b/package.json
index 00621273..dd2b1a70 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "affineplane",
- "version": "2.2.0",
+ "version": "2.3.0",
"description": "Affine plane geometry library",
"keywords": [
"affine",