🌊 Normalizing Flows: Exact Density Modeling via Invertible Transforms
Explore how normalizing flows turn a simple Gaussian cloud into a complex data distribution through a chain of invertible, differentiable transforms, using the change-of-variables formula to compute exact likelihoods.
A 2D point cloud that morphs in real time as a stack of invertible coupling-layer transforms warps a simple Gaussian base distribution into a complex target data distribution, with a live readout of how the Jacobian determinant rescales density at each step.
🔬 What It Demonstrates
A 2D point cloud that morphs in real time as a stack of invertible coupling-layer transforms warps a simple Gaussian base distribution into a complex target data distribution, with a live readout of how the Jacobian determinant rescales density at each step.
🎮 How to Use
Choose a target data distribution, add or remove coupling layers with the depth slider, and press play to watch the Gaussian cloud flow layer by layer into the target shape while the log-likelihood readout updates in real time.
💡 Did You Know?
Because every flow layer is exactly invertible, you can run a trained normalizing flow backward on a real data point to recover its latent code precisely, then forward again to reconstruct the exact original sample with zero reconstruction error.
Watch a Gaussian point cloud warp through a sequence of invertible layers into a complex target shape, tracking the running log-determinant along the way.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install