  Given a finite set of local constraints, we seek a cellular automaton (i.e.,
a local and parallel algorithm) that self-stabilises on the configurations that
satisfy these constraints. More precisely, starting from a finite perturbation
of a valid configuration, the cellular automaton must eventually fall back to
the space of valid configurations where it remains still. We allow the cellular
automaton to use extra symbols, but in that case, the extra symbols can also
appear in the initial finite perturbation. For several classes of local
constraints (e.g., $k$-colourings with $k\neq 3$, and North-East deterministic
constraints), we provide efficient self-stabilising cellular automata with or
without additional symbols that wash out finite perturbations in linear or
quadratic time, but also show that there are examples of local constraints for
which the self-stabilisation problem is inherently hard. We also consider
probabilistic cellular automata rules and show that in some cases, the use of
randomness simplifies the problem. In the deterministic case, we show that if
finite perturbations are corrected in linear time, then the cellular automaton
self-stabilises even starting from a random perturbation of a valid
configuration, that is, when errors in the initial configuration occur
independently with a sufficiently low density.
