Draw: Click and drag on the grid (Right-click to erase)
3D Controls: • Left button + drag = rotate • Right button + drag = move • Scroll wheel = zoom
Interactive Visualization of a Neural Network
This application shows a compact Multi-Layer Perceptron (MLP) trained on MNIST. Draw a digit and observe how activations propagate through all fully connected layers in real time.
python training/mlp_train.py to train the MLP (includes Apple Metal acceleration if available).exports/mlp_weights.json, which the visualizer loads at startup.training/mlp_train.py.The network is intentionally compact for smooth real-time rendering. You can retrain with other layer sizes—just keep the architecture lightweight for a responsive 3D view.
Controls how many of the strongest incoming weights per target neuron are displayed simultaneously; high values may slow down rendering.
Hides connections with low absolute weights; 0 shows all connections.
Adjusts the radius of connection cylinders; higher values make all lines thicker.
Smaller values produce finer strokes; larger values fill the grid faster.
Determines how strongly a brush stroke increases pixel brightness.