HomeMachine Learning & Neural NetworksCluster Analysis: Gaussian Mixture Model

Cluster Analysis: Gaussian Mixture Model

Watch Expectation-Maximization fit a Gaussian Mixture Model live: soft responsibilities repaint each point every E-step, covariance ellipses reshape every M-step, and the log-likelihood climbs monotonically to convergence.

Machine Learning & Neural Networks3DAdvanced60 FPS
cluster-analysis ↗ Open standalone

This simulator fits a Gaussian Mixture Model to a live 2D point cloud using the real Expectation-Maximization algorithm — the same soft-clustering method behind speaker diarization, anomaly scoring and density estimation. Each frame alternates an E-step, which recomputes every point's fractional responsibility toward each Gaussian component, and an M-step, which re-estimates that component's mean, variance and weight from those responsibilities. Points are coloured by blending the cluster colours in proportion to their responsibilities, so overlapping regions genuinely look mixed rather than hard-assigned, and each component is drawn as a covariance ellipse that visibly grows, shrinks and rotates in place as the fit tightens. A running log-likelihood readout demonstrates EM's core guarantee: it never decreases, iteration after iteration, until the fit converges.

⚙ Under the hood

Fit a live Gaussian Mixture Model with real Expectation-Maximization: watch soft responsibilities repaint every point each E-step, covariance ellipses reshape each M-step, and the log-likelihood climb monotonically to convergence.

Three.jsmachine learningclusteringGaussian mixture modelexpectation-maximizationunsupervised learning

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)