Ranked in descending order of viability:
-
Efficient, high-performance linear algebra library for node.js and browsers.
This is a low-level algebra library which supports basic vector and matrix operations, and has been designed with machine learning algorithms in mind.
Features:
Simple, expressive, chainable API. Array implementation with performance optimizations. Enhanced floating point precision if needed. Comprehensive unit tests. Works in node.js and browsers. Small: ~1 KB minified and gzipped.
-
sylvester the original, but predates much modern optimisation such as native arrays and asm.js
-
jStat is a statistical library written in JavaScript that allows you to perform advanced statistical operations without the need of a dedicated statistical language (e.g. MATLAB or R). Includes a tidy linear algebra library, but could be better optimized.
-
JavaScript (emscripten) port of lmfit library:
"a self-contained C library for Levenberg-Marquardt least-squares minimization and curve fitting"
Currently only linear curve fitting is implemented.
-
linalg uses native arrays because of their speed.
I needed a performance focused linear algebra module for visualizing data in 10+ dimensions, and implementing machine learning algorithms. I quickly learned that naive solutions to linear algebra operations can produce numerical errors so significant they are utterly useless for anything other than casual playtime. After that, I prioritized correctness over performance.”
Untouched since released and small community, which is sad because the code looks solid.
-
glmatrix is WebGL (therefore VERY fast), but 4-vector oriented, which is too small for us
-
numeric looks polished but has been untouched for 2 years
-
jmat is an actively developed complex matrix library, but we would probably prefer speed to complex number support.
-
random variables can be simulated very easily using the probability distributions library
- keras-js runs CNNs in the browsers
- old-school handcrafted features with tracking.js does cool stuff already
- same with jsfeat including some by EPFL and an entire linear algebra library
Suspected non-useful or abandoned
- js-objectdetect also looks decent and fast
- opencvjs partial transcompile/port of OpenCV
- blob detection
- segmentation engine
- graphcut
-
FFT options for mobile.
- webgl fft paper
- webgl fft demo. No open-source, sadly.
- MDC animates textures in webgl
-
video+WebGL:
-
CSS filters to shunt to GPU? blur+invert+opacity gives us a cheap edge detection