CycleGAN: Cycle-Consistency Loss Live

This simulator trains a genuine, tiny CycleGAN on a 2D canvas in your browser — two generator networks (G: A→B, F: B→A) and two discriminator networks — with real backpropagation running every animation frame, mapping between a 3×3-pixel "X" toy-image domain and a 3×3-pixel "O" toy-image domain that share no paired examples. A live cycle-consistency loss term (‖F(G(a))−a‖ + ‖G(F(b))−b‖) keeps the two generators acting as approximate inverses of each other; drop its weight to zero — or use the one-click ablation toggle — and watch the reconstructed images drift away from their originals and the loss curve stop decreasing, a direct, numerically verified demonstration of the failure mode cycle-consistency was invented to prevent in unpaired image-to-image translation models like CycleGAN.