Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including gl-vec4 with all npm packages installed. Try it out:

var glVec4 = require("gl-vec4")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

gl-vec4 v1.0.1

gl-matrix's vec4, split into smaller pieces



Part of a fork of @toji's gl-matrix split into smaller pieces: this package contains glMatrix.vec4.



vec4 = require('gl-vec4')

Will load all of the module's functionality and expose it on a single object. Note that any of the methods may also be required directly from their files.

For example, the following are equivalent:

var scale = require('gl-vec4').scale
var scale = require('gl-vec4/scale')


add(out:vec4, a:vec4, b:vec4)

Adds two vec4's


Creates a new vec4 initialized with values from an existing vector

copy(out:vec4, a:vec4)

Copy the values from one vec4 to another


Creates a new, empty vec4

distance(a:vec4, b:vec4)

Calculates the euclidian distance between two vec4's

divide(out:vec4, a:vec4, b:vec4)

Divides two vec4's

dot(a:vec4, b:vec4)

Calculates the dot product of two vec4's

fromValues(x:Number, y:Number, z:Number, w:Number)

Creates a new vec4 initialized with the given values

inverse(out:vec4, a:vec4)

Returns the inverse of the components of a vec4


Calculates the length of a vec4

lerp(out:vec4, a:vec4, b:vec4, t:Number)

Performs a linear interpolation between two vec4's

max(out:vec4, a:vec4, b:vec4)

Returns the maximum of two vec4's

min(out:vec4, a:vec4, b:vec4)

Returns the minimum of two vec4's

multiply(out:vec4, a:vec4, b:vec4)

Multiplies two vec4's

negate(out:vec4, a:vec4)

Negates the components of a vec4

normalize(out:vec4, a:vec4)

Normalize a vec4

random(out:vec4, [scale]:Number)

Generates a random vector with the given scale

scale(out:vec4, a:vec4, b:Number)

Scales a vec4 by a scalar number

scaleAndAdd(out:vec4, a:vec4, b:vec4, scale:Number)

Adds two vec4's after scaling the second operand by a scalar value

set(out:vec4, x:Number, y:Number, z:Number, w:Number)

Set the components of a vec4 to the given values

squaredDistance(a:vec4, b:vec4)

Calculates the squared euclidian distance between two vec4's


Calculates the squared length of a vec4

subtract(out:vec4, a:vec4, b:vec4)

Subtracts vector b from vector a

transformMat4(out:vec4, a:vec4, m:mat4)

Transforms the vec4 with a mat4.

transformQuat(out:vec4, a:vec4, q:quat)

Transforms the vec4 with a quat


MIT. See for details.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free