M-Code Inspired
WebAssembly Powered

Everything You Need. In Your Browser.

From M-Code syntax to WebAssembly performance, interactive visualization to complete privacy — a full numerical computing platform that runs entirely client-side.

0+
Functions
0
Packages
100%
Private

M-Code: Familiar, But Better

Inspired by MATLAB syntax, redesigned for modern computing. No OOP — just clean functional style with Julia-inspired multiple dispatch.

M-Code Inspired Syntax

Write familiar M-Code with vectors, matrices, and element-wise operations. No installation required.

x = linspace(0, 2*pi, 100);
y = sin(x) .* exp(-x/5);

Type System & Multiple Dispatch

Julia-inspired functional dispatch. Define typed functions — the runtime picks the best match.

function a = area(r: Circle)
 a =  pi * r.radius^2
end

function a = area(s: Square)
 a =  s.side^2
end

Operator Overloading

Define custom operators for your types. Addition, multiplication, comparison — all overloadable.

function +(a: Vec2, b: Vec2)
  Vec2(a.x+b.x, a.y+b.y)
end

Dual Indexing

1-based indexing with () for MATLAB feel, 0-based with [] for classical style. Your choice.

A(1)   % first element
A[0]   % also first element

Just Strings

No messy char arrays. Real strings that work the way you expect, with built-in interpolation.

name = "Alice";
greeting = "Hello, ${name}!";

Just Arrays

No array/cell array/table confusion. One array type that handles everything cleanly.

data = [1, 2, 3];
mixed = ["a", 1, true];

Structs & Objects

Define typed structs with validated fields, or use lightweight object literals for quick structured data.

struct Point
  x: Number
  y: Number
end
p = Point(3, 4);

String Interpolation

Easy and common string injection with template syntax built right into the language.

x = 42;
disp("The answer is ${x}");

0+ Functions. 7 Packages.

A comprehensive function library powered by WebAssembly, from core math to symbolic computation.

Core Functions

72 functions

Essential functions for array creation, mathematics, aggregation, and manipulation. Always available.

zerosoneseyemagiclinspace+67 more

Linear Algebra

24 functions

Matrix decompositions, solvers, products, norms, and other linear algebra operations.

eigeigheigvalshsvdqr+19 more

Fourier Analysis

14 functions

Fast Fourier Transform, inverse transforms, frequency utilities, and window functions for spectral analysis.

fftifftfft2ifft2fftn+9 more

Data Visualization

40 functions

M-Code-style plotting functions for inline Chart.js visualizations.

plotloglogsemilogxsemilogybar+35 more

Polynomial Functions

100 functions

Polynomial operations across power, Chebyshev, Legendre, Hermite, HermiteE, and Laguerre bases with fitting, evaluation, calculus, arithmetic, and conversion utilities.

polyvalpolyval2dpolyval3dpolyderpolyint+95 more

Symbolic Mathematics

10 functions

MATLAB-compatible symbolic mathematics functions for creating symbolic variables, solving equations, expanding expressions, and more. Powered by SymEngine via symngwasm.

symsymssolvesubsexpand+5 more

3D Visualization (VTK)

18 functions

Advanced 3D visualization functions powered by VTK.js for volumetric data, FEM meshes, and scientific visualization.

vtk.polydatavtk.volumevtk.isosurfacevtk.femgridvtk.sphere+13 more

Professional-Grade Editor & Debugger

A full-featured code editor with debugging, breakpoints, and a live workbench that tracks every variable.

Syntax Highlighting
CodeMirror 6 with M-Code grammar
Intelligent Autocomplete
Context-aware function and variable suggestions
Real-time Linting
Catch errors as you type with inline diagnostics
Parameter Hints
Function signatures and argument documentation
Debugger with Breakpoints
Set breakpoints and pause execution
Step-through Execution
Step in, step over, and step out controls
Live Workbench
Always-visible variable inspector tracking all variables in real-time
analysis.m
Paused
1
A = rand(100, 100);
2
b = rand(100, 1);
3
 
4
% Solve the linear system
x = A \ b;
6
residual = norm(A*x - b);
7
disp("Residual: ${residual}");
Workbench
A=[100x100 double]
b=[100x1 double]
x=[100x1 double]just updated

WebAssembly Performance

Matching native SSE performance entirely in the browser with SIMD vectorization and multi-threaded execution.

*with Ryzen 9950X

0
GFLOPS
0
Parallel Threads
128
bit SIMD

100% Private.

By Design.

All code executes locally in your browser
No data ever leaves your device
No server-side processing or telemetry
Your code and data stay on your machine, except if you use our optional cloud storage

Rich Visualization

From 2D line plots to 3D volumetric rendering — interactive visualization built right into the notebook.

2D/3D Charts

Powered by Plotly.js
  • Line plots & scatter plots
  • Histograms & bar charts
  • 3D surface & mesh plots
  • Contour plots & heatmaps
  • Interactive zoom & pan

VTK.js 3D Rendering

Scientific 3D Visualization
  • Volumetric data rendering
  • Finite element meshes
  • Point clouds & geometry
  • Custom color maps
  • Real-time manipulation

Interactive Notebook Environment

A familiar notebook experience designed for numerical computing, right in your browser.

Interactive Cells

Run code cell-by-cell with instant output. Iterate rapidly on your computations.

Markdown + KaTeX

Rich text cells with GitHub-flavored markdown and LaTeX math rendering for documentation.

Variable Persistence

Variables persist across cells for iterative workflows. Build up complex computations step by step.

Start Exploring

Open the notebook and start computing — no installation, no setup, completely free.