jsxgraph is a free, open source business intelligence & reporting project written in JavaScript and released under LGPL-3.0. It has 1,449 GitHub stars, 208 forks and 98 open issues, and was last pushed 20 hours ago. On this registry it ranks #59 of 77 tracked projects in Business Intelligence & Reporting, with 5 head-to-head comparisons available.

What is jsxgraph?

JSXGraph is a cross-browser JavaScript library for interactive geometry, function plotting, charting, and data visualization that runs directly in a web browser, aimed at developers, teachers, and researchers who need to embed interactive mathematical figures in a page.

What it is

JSXGraph is a JavaScript library for interactive math visualizations in the web browser. It is implemented completely in JavaScript and does not rely on any other library. For rendering it uses SVG, canvas, or the older VML, so it degrades across browser generations without requiring a plug-in. The library is developed at the Lehrstuhl für Mathematik und ihre Didaktik and the Center of Mobile Learning with Digital Technology, University of Bayreuth, Germany.

The concrete problem it solves is embedding interactive geometry and function plotting in a web page without pulling in a rendering framework, a plug-in, or a heavyweight charting stack. It replaces the bundle of browser plug-ins and external dependencies that older interactive geometry approaches required, and it ships as two static assets, jsxgraphcore.js and jsxgraph.css, that can be served from a CDN or a local copy. Special care has been taken to optimize performance, the library supports multi-touch events, and it runs on all major browsers.

Key capabilities

  • Renders through SVG, canvas, or VML with no other library and no browser plug-in required.
  • Creates figures through a board API: JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-8, 8, 8, -8]}) followed by board.create('point', [1, 3], {name: 'point'}).
  • Distributes jsxgraphcore.js as the minified build and jsxgraphsrc.js as the non-minified build, the latter recommended for developing content.
  • Loads data through optional file readers that are included separately from the core files.
  • Responds to multi-touch events for interaction on touch devices.
  • Builds from source with npm install and npm run buildCore, which writes jsxgraphsrc.js and jsxgraphcore.js into the distrib folder.
  • Enforces code quality with npm run eslint, npm run test, and npm run check-format.

Who uses it and how

  • Moodle sites add it through the filter_jsxgraph filter plug-in.
  • STACK assessment ships with JSXGraph already included, so question types can carry interactive figures.
  • MediaWiki installations use a plug-in kept in the plugins folder of the repository.
  • Jupyter users work with it through the jsxgraph-magic package published on PyPI.
  • Developers embedding boards in ordinary HTML pages use the hundreds of examples published at jsxgraph.org/share and in the project wiki.

Getting started

Include jsxgraphcore.js and jsxgraph.css, plus any required file readers, from a CDN or a local copy in the HTML file. Building from source requires node.js, npm install, and npm run buildCore.

How it compares

The provided facts list no paid products that JSXGraph replaces, and they name no comparable tool, so on this registry it stands alone in its niche of in-browser interactive geometry and function plotting. Its licensing position is a dual one: the README states GNU LGPL version 3 or later, or the MIT License, while the registry metadata records LGPL-3.0, and the MIT text lives at LICENSE.MIT.

When to use it — and when not to

A self-hoster operates only static assets, since the library is entirely client-side and needs no database, storage service, or SMTP. Teams that need server-rendered charts, statistical dashboards, or a hosted SaaS with a support contract should not pick it, because it offers neither. The README excerpt is short on release history and some links in it are truncated, and the licence field and the README disagree on whether the terms are LGPL-only or dual LGPL and MIT, so anyone with strict licence review should confirm the terms before adopting.

project readme (upstream, from github) — read inline

JSXGraph

License: MIT License: LGPL GitHub Release GitHub Release Date

JavaScript library for interactive math visualizations in the web browser.

About

JSXGraph is a cross-browser library for interactive geometry, function plotting, charting, and data visualization in a web browser. It is implemented completely in JavaScript, does not rely on any other library, and uses SVG, canvas, or even the venerable VML. JSXGraph is easy to embed and has a small footprint. No plug-ins are required! Special care has been taken to optimize the performance.

JSXGraph supports multi-touch events and runs on all major browsers.

JSXGraph is developed at the Lehrstuhl für Mathematik und ihre Didaktik and the Center of Mobile Learning with Digital Technology, University of Bayreuth, 95447 Bayreuth, Germany

Links

<script charset="UTF-8"
 src="https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraphcore.js"></script>
<link rel="stylesheet"
 type="text/css" href="https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraph.css">

or

<script charset="UTF-8"
 src="//cdnjs.cloudflare.com/ajax/libs/jsxgraph/[versionnumber]/jsxgraphcore.js"></script>
<link rel="stylesheet"
 type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/jsxgraph/[versionnumber]/jsxgraph.css">

Please report bugs to our issue tracking system found at https://github.com/jsxgraph/jsxgraph/issues

Usage

Include

  • jsxgraphcore.js and
  • jsxgraph.css and,
  • if required, one or more file readers

from a CDN or a local version in your HTML file.

HTML template:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>JSXGraph template</title>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <link href="https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraph.css" rel="stylesheet" type="text/css">
    <script src="https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraphcore.js" charset="UTF-8"></script>
  </head>

  <body>
  <div id="jxgbox" class="jxgbox" style="max-width:800px; aspect-ratio: 1/1;"></div>
  <script>
    var board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-8, 8, 8, -8]});
    var p = board.create('point', [1, 3], {name: 'point'});
  </script>

  </body>
</html>

For developing content, it is recommended to include jsxgraphsrc.js (jsxgraphcore.js is the minified version of jsxgraphsrc.js). For further usage instructions please consult our wiki especially our tutorials or the API reference docs.

Build and develop JSXGraph

  1. Clone this repository or download the zip file.
  2. To build and develop JSXGraph you need node.js v0.6+. First, install all dependencies required to build JSXGraph using npm in the JSXGraph root directory: $ npm install. This will create a new subdirectory node_modules in the JSXGraph root directory which holds all tools and libraries required to build jsxgraphcore.js.
  3. To build JSXGraph run $ npm run buildCore. This will output an non-minified version jsxgraphsrc.js and the minified version jsxgraphcore.js into the folder distrib.
  4. Develop JSXGraph:
  • Edit the source files in the folder src
  • Write unit tests in folder test
  • Run $ npm run eslint and $ npm run test to check for errors
  • Run $ npm run check-format to check the formatting of the source code
  • Submit a pull request

Plug-ins

License

JSXGraph is free software dual licensed under the GNU LGPL or MIT License.

You can redistribute it and/or modify it under the terms of the

  • GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version

or

JSXGraph is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License and the MIT License along with JSXGraph. If not, see and .

ITEMS Cofunded by the Erasmus+ programme of the European union

Frequently asked questions

Is jsxgraph free to use?

jsxgraph is open source under the LGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does jsxgraph do?

JSXGraph is a cross-browser library for interactive geometry, function plotting, charting, and data visualization in a web browser.

What is jsxgraph written in?

jsxgraph is primarily written in JavaScript. Its source is publicly available at https://github.com/jsxgraph/jsxgraph, and it has 1,449 GitHub stars.