Zaka Tabish
Playground

Watch the models think

Four small, real systems running live in your browser right now. Not screenshots. This is the same instinct I bring to the job: don't just ship the black box, show the people who rely on it how it actually works.

Draw & predict

A neural network that learns to read your handwriting while you watch

This trains a small neural network on 1,797 real handwritten digits, live, in your browser, using ConvNetJS, the same library behind Adam Harley's well known MNIST visualizer. Watch the layers light up on every forward pass, then watch the gradient sweep back through them on every backward pass. The hidden layers are editable: add or remove perceptrons and the network rebuilds and retrains from scratch.

Getting this to read your handwriting, rather than just the dataset's, took the three things that usually matter more than network size. Every digit is randomly shifted, rotated and rescaled before each pass, so thirty epochs means thirty different views of it rather than the same one thirty times. What you draw is framed on its centre of mass, the way the training images were, so the answer doesn't depend on where or how big you drew. And each prediction is averaged over seven small variations of your drawing, which stops the answer flickering between two digits while you are still mid-stroke.

Those changes are measured, not assumed. Against the previous version of this demo — 32 → 16 units, plain SGD, fourteen epochs, no augmentation — accuracy on clean held-out digits went from 93.3% to 96.7%. On the same held-out digits shifted, rotated and rescaled the way a hand would, it went from 44.8% to 82.3%. Almost all of that comes from the augmentation; the averaging earns its place on steadiness rather than on accuracy.

Draw as big as you can, filling most of the canvas.

Hidden layer 1 64
Hidden layer 2 32

Training on 1,797 handwritten digits…

0% · loss …

Press Retrain to re-split the data and train a fresh network from new random weights. The held-out accuracy moves by a point or two each time, which is the honest answer to “how good is this model”: a range, not a number.

This is how I'd bring a black box model into a form your team can actually inspect. I show it thinking, not just its answer. On interpretability and trust
Live training

How a neural network actually learns

Pick a dataset, then press train and watch a tiny network reshape its decision boundary in real time. Gradient descent, visualized on a problem simple enough to see all of it at once.

Epoch 0 · Loss

Click the canvas to drop a point of the selected class, then train again.

That's how I'd approach optimizing your workflows too, one measured update at a time, watching the fit improve until the boundary is right. On iterative optimization
How it works

What MCP actually does with your existing software

I built one of these for Nokia's diagnostics lab. See the full case study on the Projects page. Press play to see how a Model Context Protocol server lets an AI model call your real tools (Jira, test pipelines, a database) without you rewriting any of them.

    This is exactly the pattern I'd use to wire your team's AI tools into the systems you already run. No rebuild required. On integrating AI into existing software
    Reinforcement learning

    From flailing to winning: reinforcement learning, checkpoint by checkpoint

    A tiny policy network learned to play Pong from nothing but a win/lose signal, trained offline with policy gradient RL (REINFORCE) over 30,000 rallies. These are genuine saved checkpoints from that training run, not a scripted animation. Pick one and watch the same network at different points in its training.

    win rate rallies trained

    Pick a checkpoint to watch the trained policy play.

    That's the same arc I'd want for your process, rough and manual on day one, measurably better on every iteration after. On continuous improvement