We present a new algorithm for computing invariant manifolds. The algorithm uses two main theoretical results, presented in the appendices: formulae for the evolution of a second order local approximation of a bundle of trajectories (which we call a fat trajectory), and a proof of the existence and a constructive means of locating points where k (the dimension of the manifold) trajectories diverge. Invariant manifolds can be defined as the image under the flow of a (k-1)-dimensional manifold of starting points. The algorithm uses local approximations at points spaced along trajectories starting on the manifold of starting points to partially cover the invariant manifold. To finish the covering it then iteratively interpolates and constructs fat trajectories starting at the interpolation points. Unlike other methods, the resulting algorithm does not use an adaptively refined front, and it allows errors to be controlled via the integration method used to find the fat trajectory and the width of the fat trajectory (which controls the interpolation error). As an example, we apply the algorithm to compute the stable manifold of the origin in the Lorenz system.