Mandip Adhikari
← Index
Project2025

Optimal Transport Studio

A browser-native optimal-transport solver — the Sinkhorn algorithm with ε-regularization, barycenter blending, and a real-time heatmap, running entirely in a browser tab via WebGPU.

JavaScript · WebGPU · Typed Arrays · Sinkhorn

512×512
grids (262,144 points), interactive
3–8×
faster than the naive path
WebGPU
no server, no Python

What it is

Optimal transport normally runs server-side or in Python. This moves the whole computation into the browser: a WebGPU and typed-array compute path that solves ε-regularized OT and renders the result live.

  source μ ┐
           ├─▶ Sinkhorn  (ε-regularized · log-domain stable · ε-annealing)
  target ν ┘          │   WebGPU compute · typed arrays
                      ▼
            transport plan ──▶ real-time heatmap  (512×512)

Numerical stability

Sinkhorn gets unstable as ε shrinks. Log-domain stabilization plus ε-annealing keep it well-behaved at very small ε, where the transport plan is sharp enough to be useful.

Performance

The WebGPU path runs 3–8× faster than the naive implementation and holds 512×512 grids — 262,144 points — at interactive speeds, entirely client-side.