A comprehensive Node.js scientific computation framework with plugin system, CLI interface, and extensive API for scientists, engineers, and researchers. Features domain-specific plugins for astrophysics and bioinformatics, LaTeX export, and interactive examples.
- Complex Numbers: Arithmetic operations, square root, trigonometric functions
- Linear Algebra: Matrix multiplication, determinant calculation, Gaussian elimination
- Calculus: Numerical derivatives (central difference), integrals (Simpson's rule, trapezoid)
- Root Finding: Newton-Raphson method with numerical/analytical derivatives
- ODE Solvers: Euler and 4th-order Runge-Kutta for initial value problems
- Numerical Differentiation & Integration: Flexible step-size control
- Gradient: Numerical gradient of scalar fields
- Divergence: Vector field divergence computation
- Curl: Curl operator for 3D vector fields
- Linear Regression: Least squares with R² calculation
- Polynomial Fitting: Arbitrary degree fitting with normal equations
- Circuit Analysis: Ohm's law solver, RLC impedance calculations with complex numbers
- Stoichiometry: Molar mass parser, theoretical yield calculations, chemical reactions
- Normal Distribution: PDF and CDF with configurable mean/std dev
- Poisson Distribution: PMF for rare event modeling
- Binomial Distribution: PMF for counting successes
- Plugin System: Extensible architecture for domain-specific formulas
- Astrophysics plugin: Orbital mechanics, black holes, cosmology
- Bioinformatics plugin: Sequence analysis, population genetics
- LaTeX Export: Convert equations, matrices, and results to LaTeX format
- CLI Interface: Command-line access to all toolkit functionality
- Unit Conversion: Dimensional analysis with automatic unit conversion
- Code Quality: ESLint (v8) + Prettier formatting
- Testing: Jest with 100+ test cases and coverage reporting
- CI/CD: GitHub Actions with Node.js 16/18/20 matrix
- Documentation: TypeDoc API docs, comprehensive tutorials, example scripts
npm install scientific-toolkitFor global CLI use:
npm install -g scientific-toolkitconst toolkit = require('scientific-toolkit');
// Complex numbers
const a = new toolkit.core.Complex(2, 3);
const b = new toolkit.core.Complex(4, -1);
console.log(a.mul(b).toString()); // 11.000000+10.000000i
// Plugins for domain-specific formulas
const { plugins } = toolkit;
const manager = new plugins.PluginManager();
manager.register(plugins.builtin.astrophysics);
// Astrophysics: orbital velocity
const v = manager.executeFormula('astrophysics', 'orbitalVelocity', 1.989e30, 1.496e11);
console.log(v); // ~29,815 m/s
// LaTeX export
const { latex } = toolkit;
const latexExporter = latex.LaTeXExporter;
console.log(latexExporter.formatResult('v', v, 'm/s', 2));
// $ v = 29815.00 \, \text{m/s} $# Complex number operations
scientific-toolkit complex add 1 2 3 4
scientific-toolkit complex mul 2 3 4 -1
# Matrix operations
scientific-toolkit matrix det "[[1,2],[3,4]]"
# Numerical methods
scientific-toolkit calculus integral "Math.sin(x)" 0 3.14159 1000
# Probability
scientific-toolkit probability normal-pdf 0 0 1
# Units
scientific-toolkit convert 36 km/h m/sRun practical examples for scientists and engineers:
node examples/orbital-mechanics.js
node examples/bioinformatics-analysis.js
node examples/numerical-methods.js
node examples/engineering-analysis.jsSee examples/README.md for detailed documentation.
Complete API reference:
npm run docsGenerates TypeDoc documentation in docs/api/.
npm install
npm run lint # ESLint + Prettier
npm run format # Auto-fix formatting
npm test # Jest with coverage
npm run coverage # Generate coverage report
npm run docs # Generate TypeDoc API docsconst manager = new plugins.PluginManager();
manager.register(plugins.builtin.astrophysics);
manager.executeFormula('astrophysics', 'orbitalVelocity', M, r);
manager.executeFormula('astrophysics', 'escapeVelocity', M, R);
manager.executeFormula('astrophysics', 'schwarzschildRadius', M);
manager.executeFormula('astrophysics', 'dopplerRedshift', lambda_0, v);
manager.executeFormula('astrophysics', 'stellarTemperature', L, R);const manager = new plugins.PluginManager();
manager.register(plugins.builtin.bioinformatics);
manager.executeFormula('bioinformatics', 'gcContent', sequence);
manager.executeFormula('bioinformatics', 'transcribeDNA', dnaSeq);
manager.executeFormula('bioinformatics', 'reverseComplement', seq);
manager.executeFormula('bioinformatics', 'hardyWeinbergFrequencies', p);const { plugins } = toolkit;
const { Plugin, PluginManager } = plugins;
const myPlugin = new Plugin('myPlugin', '1.0.0', 'My domain formulas', {});
myPlugin.registerFormula('myFormula', (x, y) => x + y * 2, {
description: 'My custom formula',
params: [{ name: 'x' }, { name: 'y' }],
returns: 'x + 2y',
});
const manager = new PluginManager();
manager.register(myPlugin);
const result = manager.executeFormula('myPlugin', 'myFormula', 5, 3); // 11Convert calculations to publication-ready LaTeX:
const { latex } = toolkit;
const exp = latex.LaTeXExporter;
// Expressions
console.log(exp.expressionToLatex('sqrt(x) + pi*r^2'));
// Results
console.log(exp.formatResult('E', 3.14159, 'J', 5));
// Matrices
const matrix = [
[1, 2],
[3, 4],
];
console.log(exp.matrixToLatex(matrix, 'bmatrix'));
// Equations
console.log(exp.createEquation('E = mc^2', 'equation', 'einstein'));
// Documents
const content = 'My calculations...';
console.log(
exp.createDocument(content, {
title: 'Scientific Report',
author: 'Jane Doe',
})
);- CI Workflow (
.github/workflows/ci.yml)- Runs on PR and push to
main - Tests on Node.js 16, 18, 20
- Coverage upload to Codecov
- Runs on PR and push to
- Publish Workflow (
.github/workflows/publish.yml)- Runs on GitHub release
- Publishes to npm registry
NPM_TOKEN: npm publish automation token
Follow clean, atomic commit patterns:
feat(plugins): add plugin system with astrophysics and bioinformaticsfeat(latex): implement LaTeX export for equations and resultstest: add integration tests for plugins and LaTeX exportdocs: add examples and API documentationci: configure GitHub Actions for docs deployment
- ODE Solver Tutorial: Solving differential equations
- Regression Fitting Tutorial: Curve fitting workflows
- Examples Directory: Practical use cases for scientists and engineers
See CONTRIBUTING.md for guidelines.
See CODE_OF_CONDUCT.md.
MIT License - see LICENSE for details.