Projects
Two interactive demos. No backend. No ML framework. Just JavaScript, math, and your browser.
Handwriting Recognition in the Browser
A feedforward neural network that classifies handwritten characters in real time. Built with Angular and TypeScript, with the neural network implemented from scratch — no TensorFlow, no ONNX, no ML library of any kind.
The network takes a 12×12 binary grid derived from your pen strokes as input (144 numbers), passes it through a hidden layer with the same width, and outputs a probability distribution over characters. Training runs in the browser using backpropagation with periodic `setTimeout` yields to keep the UI responsive.
Knowledge Extraction from a Neural Network
An educational project that asks: what has a network trained on MNIST actually learned? Two approaches are implemented, both in pure JavaScript:
1. Causal Index — compute the influence of each input pixel on each output by summing weighted paths through the network, then render as a heat map per digit.
2. Iterative Input Adaptation — start from random noise, apply stochastic hill climbing until the network confidently classifies the input as a target digit. A technique similar to DeepDream.
No compilation, no build step — open the HTML file and it runs.