By interpolating the bone transformations per frame, you can animate a model. Take the vertex weights from each bone, and then use their transforms to influence the transform on the vertex itself. This allows you to transform an entire model by summing a few transforms, rather than needing to store the transform for every vertex. I take the per frame transform and send this to the shader, where the vertex position is moved based on the attached bones. My major contribution to this was doing the rigging for the model, while me and a team member used code from a prior class that we shared.