We present the N-body simulation techniques in EXP. EXP uses empirically-chosen basis functions to expand the potential field of an ensemble of particles. Unlike other basis function expansions, the derived basis functions are adapted to an input mass distribution, enabling accurate expansion of highly non-spherical objects, such as galactic discs. We measure the force accuracy in three models, one based on a spherical or aspherical halo, one based on an exponential disc, and one based on a bar-based disc model. We find that EXP is as accurate as a direct-summation or tree-based calculation, and in some ways is better, while being considerably less computationally intensive. We discuss optimising the computation of the basis function representation. We also detail numerical improvements for performing orbit integrations, including timesteps.