A real 3–5–5–3 feedforward network computes an actual forward pass on every wave, not a decorative pulse. For each layer l, every neuron computes a weighted sum of the previous layer's activations, adds a bias, then squashes it through the chosen activation function:
z[l][j] = Σ_i W[l][j][i]·a[l-1][i] + b[l][j] + biasOffset
a[l][j] = f(z[l][j]) where f = sigmoid / ReLU / tanh
output probabilities = softmax(z[last layer])
Weights use Xavier-uniform initialization (±√(6/(fan_in+fan_out))) so the numbers stay well-scaled regardless of activation choice. Dragging x1–x3 or the bias/activation controls changes the real numbers flowing through the network; "Randomize weights" redraws a fresh W and re-runs the pass. The wave animation you see is literally that computation unfolding hop by hop — neuron glow is the actual activation magnitude, and pulse colour encodes the sign of each weighted contribution (blue = positive, orange = negative).
- Output pane — softmax(z) over the 3 output neurons, i.e. the classifier's class probabilities for the current input.
- Confidence trail — the winning class's probability over the last several waves, so you can see how sensitive the prediction is to small input changes.