Our method differs from previous work by introducing a novel algorithm to prune both hair-hair pairs and hair particles to improve performance by allowing parallelization while still producing good results. We chose the inaccurate yet efficient penalty force model to locally solve contacts for performance reasons instead of handling contacts globally, such as in continuum methods or solving exact Coulomb friction. Although penalty forces can cause instabilities, using a semi-implicit integration method combined with tapering spring constants during contact release produces stable results.