node package manager



Homepage - Download - Demonstrations - Documentation

Build Status Dependency Status devDependency Status NPM version Coverage Status

MathLib.js is a JavaScript library for mathematical computations. It can handle circles, complex numbers, expressions, functions, lines, integers, matrices, permutations, points, polynomials, rational numbers, sets, and vectors.

There is a SVG and Canvas renderer for 2D plotting. 3D plotting is supported with Three.js.

Further it can parse Content MathML and write Content MathML, Presentation MathML and LaTeX.

Test Suite

MathLib has an extensive QUnit test suite with more than 2500 tests. Crossbrowser tests are automated with Sauce Labs' Open Sauce and are run by Travis on every commit.

Getting Started

In the browser

Download the production version or the development version.

Alternatively you can use Bower:

bower install MathLib

or npm:

npm install MathLib

Include MathLib in your web page:

<script src="path/to/MathLib.min.js"></script>
// Your code goes here

Alternatively you can use the AMD, CommonJS or ES6 modules contained in the build directory.

If you want to use the plotting functionality you also need to download the MathLib.css or the MathLib.min.css file and link to it in the head of your document:

<link rel="stylesheet" href="path/to/MathLib.min.css" charset="utf-8">


Building MathLib

Open your Terminal, clone MathLib

git clone git://

Enter the directory

cd MathLib

and run

npm install

to install the development dependencies (For this you need to have Node.js installed).


grunt help

to get an overview of the available grunt tasks.

Making Changes

Make your changes to the files in the src directory. Do not edit the files in the build directory, these files will be generated via grunt.

Please maintain the current coding style and stick to the style guide. New functionality should always be added with proper testing and documentation.

Release History

  • v0.7.0: AMD, CommonJS, ES6 modules
  • v0.6.0: Conics module
  • v0.5.0: removed MathML module and improved Expression module
  • v0.4.0: Typescript, better plotting
  • v0.3.0: grunt integration
  • v0.2.0: Improved function and MathML modules
  • v0.1.0: Initial release


Copyright (c) 2012-2014 Alexander Zeilmann
Licensed under the MIT license.