Mathigon Open Source

Help us build the future of education!

JavaScript Libraries

These libraries power Mathigon, and maybe they are also useful for your own projects:

core.js

JavaScript utility function and classes, including array and string helper functions, type checking and event classes.

fermat.js

Powerful mathematics, statistics and geometry library, containing everything from number theory to random numbers, expression parsing and linear algebra classes.

boost.js

Simplifying browser APIs – from DOM manipulation to web components, event handling, animations, routing, multi-threading and AJAX requests.

Open Educational Resources

All our textbook chapters are open source. You can browse the code on GitHub, or run your own local server to preview changes or additions (instructions). Every chapter consists of a few different components, which are documented here:

Markdown

Mathigon’s content is written in a special flavour of Markdown that makes it very easy to add interactivity, styling and custom markup.

Content Guidelines

Guidelines about the tone, style, design and format for Mathigon’s courses.

Step Functions

Every step in a chapter can be linked to custom JavaScript code that sets up interactivity, events or personalisation.

Contribute to Mathigon

We welcome additions, corrections or other contributions from the community! Please contact us if you have any questions, or ideas what you want to work on.

To make any changes you need to create a GitHub account. Then you can send us Pull Requests with your changes, which we'll review and deploy. If you are unfamiliar with Git, start by reading about how to set up Git on your computer, and how to contribute code to public repos.

Please email us if you want to help translate parts of Mathigon into other languages. This requires translating a copy of the markdown file that corresponds to the course. You can see a live example and the source code.

Work at Mathigon

Mathigon is hiring! At mathigon.org/careers, you can learn more about our team and available positions. Please email us if you have any questions.