Equana

Equana Language
WebAssembly Powered

Everything You Need. In Your Browser.

From Equana 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

Equana: Scientific Computing for the Web

Designed for modern computing. No OOP — just clean functional style with multiple dispatch.

Equana Syntax

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

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

Type System & Multiple Dispatch

Typed functional dispatch. Define typed functions — the runtime picks the best match.

function a = area(c: Circle) {
  a = pi * c.radius^2
}

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

Operator Overloading

Every operator maps to a named function. Define add(a: Vec2, b: Vec2) and + just works for your type.

function r = add(a: Vec2, b: Vec2) {
  r = Vec2(a.x + b.x, a.y + b.y)
}
v = Vec2(1.0, 2.0) + Vec2(3.0, 4.0)

Familiar, Julia-Inspired Syntax

Concise, math-friendly syntax with implicit multiplication and arrow functions — write formulas the way you already read them.

let square = x -> x^2
println(square(4))
y = 2x + 3x^2

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 — constructors check types at construction time.

struct Point {
  x: Float64
  y: Float64
}
p = Point(3.0, 4.0)

String Interpolation

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

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

0+ Functions. 20 Packages.

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

Math

30 functions

Mathematical functions: trigonometry, rounding, exponentials, logarithms, and utilities.

absacosasinatanatan2+25 more

Arithmetic

9 functions

Basic arithmetic operations: addition, subtraction, multiplication, division, and more.

adddecrementdivincrementmod+4 more

Comparison

6 functions

Relational operators for comparing values.

eqgegtlelt+1 more

Logical

3 functions

Boolean logic operators.

andnotor

Arrays

29 functions

Array creation, manipulation, and higher-order functions.

arangeargmaxargmincumsumdelete+24 more

Strings

10 functions

String manipulation and search functions.

containsendswithincludesjoinlowercase+5 more

I/O

4 functions

Input/output and string conversion functions.

parseprintprintlnstring

Types

4 functions

Type introspection and conversion functions.

boolisatypenametypeof

Type Conversion

18 functions

Numeric type casting functions for all supported dtypes.

complex128complex256complex64epsfinfo+13 more

Complex Numbers

8 functions

Complex number construction and utilities.

abs2angleciscomplexconj+3 more

Sets

3 functions

Set-theoretic operations on arrays.

intersectsetdiffunion

Statistics

3 functions

Descriptive statistics: variance, standard deviation, median.

medianstdvar

Linear Algebra

14 functions

Matrix operations, decompositions, and solvers (BLAS/LAPACK).

choleskydetdoteiggemm+9 more

Special Functions

9 functions

Gamma, beta, error, and Bessel functions.

besselibesseljbesselkbesselybeta+4 more

NDArray Operations

65 functions

Element-wise operations, reductions, and introspection for N-dimensional arrays.

absacosaddallocand+60 more

Polynomials

9 functions

Polynomial arithmetic, calculus, evaluation, and fitting.

polypolyaddpolyderpolydivpolyfit+4 more

Sparse Matrices

40 functions

Sparse matrix creation, manipulation, and iterative solvers.

amdbicgbicgstabcgscolamd+35 more

Plotting

24 functions

Charts and figures: line, scatter, bar, histogram, pie, 3D surfaces, and figure control.

axisbarclfclosefigure+19 more

Fourier Analysis

5 functions

Discrete Fourier transforms: fft and ifft for real and complex vectors.

fftfftfreqfftshiftifftifftshift

Timing

3 functions

Performance measurement and benchmarking.

tictimeittoc

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 Equana 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.eq
Paused
1
A = rand(100, 100)
2
b = rand(100)
3
 
4
# Solve the linear system
x = A \ b
6
residual = norm(A * x - b)
7
println("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.