← ~/visualizations

generative-adversarial-networks

Shows a GAN training loop as a minimax game: noise z flows into the Generator G to produce fake samples G(z), both real x and fake samples are scored by the Discriminator D(x)=p(real), and the animation alternates between updating D (better separation) and updating G (better imitation). The left panel displays real vs generated points in a 2D data space with a coarse discriminator confidence field; the right panel shows the z→G→D pipeline, probabilities, and which player is being updated each half-cycle.

canvasclick to interact
t=0s

practical uses

  • 01.Image synthesis and editing (text-to-image, style transfer variants)
  • 02.Data augmentation with synthetic samples for rare classes
  • 03.Anomaly detection via discriminator/feature-space mismatch

technical notes

Self-contained Canvas2D draw function with a simple persistent state (gSkill/dSkill) updated each frame. Uses a 4–8px snapped grid for a blocky aesthetic, GREEN/GREEN_DIM on black, and a 4s cycle alternating D-step and G-step. Discriminator confidence is visualized via a coarse shaded grid; points are deterministic per frame via a lightweight xorshift PRNG for stable animation.