Interactive optimiser visualiser implementing six optimisers across five loss surfaces. Includes a cross-language benchmark layer comparing Adam step performance in C, JAX, WebAssembly, and JavaScript.
Key Finding
- WASM was expected to win in the browser; JavaScript did.
- Live Demosaddle-fawn.vercel.app
- SourceMarcosAsh/Saddle
- StackC, JAX, WebAssembly, JavaScript
Technical Details
The visualiser renders real-time 3D loss surfaces using Plotly.js and animates six optimisation algorithms simultaneously: SGD, Adam, AdaHessian, RMSprop, L-BFGS, and a native C implementation of Adam compiled to WebAssembly. Users can switch between five canonical loss surfaces and tune hyperparameters through an interactive control panel.
The benchmark layer measures wall-clock time for each optimiser step across four language targets, revealing that JavaScript V8 JIT compilation outperforms the WebAssembly runtime for this workload profile.