node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org ยป



A combine module providing some generic mathematical functions, specifically biased towards graphics and visualization. Can be used as both a server and client-side library.

The server-side implementation swaps in native C++ implementations in some cases for improved performance.


  • Vector-3 library
  • Perlin noise (3D)
  • Ranged random numbers
  • Linear interpolation

Client-side Usage

The build sub-directory contains client-side versions of the library. The methods are accessible under the global namespace variable pusher.math within the browser.

To build a client-side file from the latest code, run:

node tools/buildClientFile.js

to generate a client-side compatible version of the script. The file will be written to ./build/pusher.math-<version>.js.


See the examples sub-directory of the module.

Unit Tests

Unit testing uses nodeunit. Be sure to run npm install --dev prior to running the unit tests.

npm test


The benchmarks use ```benchmarkjs. Be sure to runnpm install --dev`` prior to running the benchmarks.

node run-benchmarks.js


Licensed under the MIT license.