Abstract
A Monte Carlo algorithm that rapidly generates the scattered intensity function for complex heterogeneous particles is described. The heterogeneous particles are built from any number and orientation of simple building blocks, which include ellipsoidal shells, hollow ellipsoidal cylinders, ellipsoidal helices, triangular prisms, rectangular prisms, and semi-ellipsoidal shells. Applications are discussed such as real proteins and their complexes, polysaccharides, void effects on I(q), Guinier range estimation, and calculation of Stuhrmann plots.