The document describes a tutorial on generalized principal component analysis (GPCA) which presents a method for clustering data points that lie in multiple subspaces of unknown and possibly different dimensions. The tutorial covers the basic theory and algorithms of GPCA, including applications to problems in computer vision such as image and video segmentation, motion segmentation, and face recognition. Advanced statistical methods for robust GPCA in the presence of noise and outliers are also discussed.