TypeScript icon, indicating that this package has built-in type declarations

5.10.13 • Public • Published


npm version npm downloads Mastodon Follow

[!NOTE] This is one of 192 standalone projects, maintained as part of the @thi.ng/umbrella monorepo and anti-framework.

🚀 Please help me to work full-time on these projects by sponsoring me on GitHub. Thank you! ❤️

For the Clojure version, please visit: thi.ng/math-clj


Assorted common math functions & utilities.

Partially ported from Clojure version thi.ng/math-clj, c.thi.ng and thi.ng/vexed-generation.


STABLE - used in production

Search or submit any issues for this package

Breaking changes in v4.0.0

The introduction of several standard libc math functions causes a behavior change of the existing fmod() function...

  • rename fmod() => mod() to align w/ GLSL counterpart
  • add new fmod() w/ standard libc behavior (same as JS % op)
  • add remainder() w/ standard libc behavior


yarn add @thi.ng/math

ESM import:

import * as math from "@thi.ng/math";

Browser ESM import:

<script type="module" src="https://esm.run/@thi.ng/math"></script>

JSDelivr documentation

For Node.js REPL:

const math = await import("@thi.ng/math");

Package sizes (brotli'd, pre-treeshake): ESM: 4.70 KB


Usage examples

Several projects in this repo's /examples directory are using this package:

Screenshot Description Live demo Source
Basic 2D boid simulation and spatial indexing neighbor lookups Demo Source
Basic crypto-currency candle chart with multiple moving averages plots Demo Source
2D Bezier curve-guided particle system Demo Source
Animated sine plasma effect visualized using contour lines Demo Source
Worker based, interactive Mandelbrot visualization Demo Source
Animated, iterative polygon subdivisions & visualization Demo Source
Unison wavetable synth with waveform editor Demo Source
2D scenegraph & shape picking Demo Source
2D scenegraph & image map based geometry manipulation Demo Source
Simplistic SVG bar chart component Demo Source
SVG path parsing & dynamic resampling Demo Source


Generated API docs



If this project contributes to an academic publication, please cite it as:

  title = "@thi.ng/math",
  author = "Karsten Schmidt and others",
  note = "https://thi.ng/math",
  year = 2013


© 2013 - 2024 Karsten Schmidt // Apache License 2.0

Package Sidebar


npm i @thi.ng/math

Weekly Downloads






Unpacked Size

97.7 kB

Total Files


Last publish


  • thi.ng