HomeCybersecurityByzantine-Robust Federated Learning Defense (2D)

Byzantine-Robust Federated Learning Defense (2D Vector-Field View)

Interactive 2D federated-learning security simulator: watch malicious clients send poisoned gradient updates toward a shared global model, then compare a naive FedAvg mean against a Byzantine-robust coordinate-wise median defense that filters the attack out, with a live vector field plus a round-by-round distance/impact chart.

Cybersecurity2DAdvanced60 FPS📱 Mobile-adapted⇄ 3D version
2d-exp-ml-security ↗ Open standalone

Federated learning trains one shared model from many clients' local gradient updates without ever centralizing their raw data — but that also means the server must trust updates it cannot inspect. This 2D simulator renders six clients arranged around a central global model: each round every client sends a local update vector, one or more can be set malicious and send a poisoned update scaled away from the shared true optimum, and the server aggregates all six into the next model position. A draggable, zoomable vector-field view shows every gradient arrow live, while a companion strip chart tracks the model's distance from the true optimum and the measured poisoning impact on the aggregate round by round. Switch the aggregation rule between a naive mean — which a single unbounded malicious update can drag anywhere — and a Byzantine-robust coordinate-wise median, which outvotes a minority of poisoned updates instead of averaging them in.

⚙ Under the hood

Interactive 2D federated-learning security simulator: watch malicious clients send poisoned gradient updates toward a shared global model on a draggable, zoomable vector field, then compare a naive FedAvg mean against a Byzantine-robust coordinate-wise median defense that filters the attack out, with a live distance/impact strip chart.

federated learningML securityByzantine robustnessmodel poisoninggradient aggregationAI defense

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)