The program relax -- improving and adding some new twists to model-free analysis. Model-free analysis is a technique for studying the pico to nanosecond dynamics of individual atoms of a macromolecule. It is used to convert the R_1 and R_2 relaxation rates and steady-state NOE value into physically interpretable numbers. Through parametric restrictions a number of model-free models are created. Starting with an initial estimate of the Brownian rotational diffusion tensor the data analysis steps are: optimisation of each model-free model (with the diffusion tensor fixed), selection of the best model, and then optimisation of the diffusion tensor. Using the optimised diffusion tensor as a starting point these three steps are iterated until convergence. The program relax (http://nmr-relax.com) is designed to implement every component of model-free analysis from the initial input of peak intensities to the final presentation of results. This includes relaxation curve-fitting for obtaining the R_1 and R_2 rates (using Monte Carlo simulations for error analysis); calculation of the NOE and its error; optimisation of the model-free parameters, diffusion parameters, or both simultaneously; and model selection. Reduced spectral density mapping is also implemented. All results can be visualised by the creation of Molmol macros, 2D Grace plots, or 3D OpenDX maps. The commonly used software packages Modelfree and Dasha can be used as drop-in optimisation engines. The program relax, released under the GPL open source licence, has been written as a flexible, modular collection of data analysis tools. One improvement relax offers is in optimisation. The Lorentzian spectral density functions, their linear recombinations to obtain the relaxation rates, the ratio of two rates to obtain the NOE, and the quadratic chi^2 equation itself cause convolutions in the model-free chi-squared space. Providing numerous high quality minimisation algorithms and enabling high precision optimisation, relax allows the single minimum to be reached in all situations. By comparing results a number of optimisation failures are identified in Modelfree and Dasha: the singular matrix failure of the Levenberg-Marquardt minimisation algorithm, low precision, the inability to slide along limits, and a bug in the Modelfree code. Noise can destroy the true minimum of certain model-free models creating a new minimum at infinite correlation times. The program relax implements a new mathematical modelling step between optimisation and model selection in which these failed models are removed -- model elimination. For model selection all of the advanced techniques in d'Auvergne and Gooley (2003) JBNMR, 25, 25-39 are available. Finding the dynamics of the entire protein is much more complex than optimising the model-free parameters as the values are intricately linked to the Brownian rotational diffusion of the molecule, mathematically through the autocorrelation function and statistically through model selection. A new methodology is presented which approaches the problem from the reverse direction -- rather than starting with the diffusion tensor this procedure begins by optimising the model-free parameters free of any global parameters, selecting between the model-free models, and finally optimising the diffusion tensor. This methodology avoids all the problems of current approaches.